• 締切済み

sqlite3 検索、一行づつ増やして表示

sqlite3接続で商品番号と数量を入力して検索表示させ小計を実行するphpで一行表示はOKなのですが、続けて検索させ一行ごと増やしていきたいのですがうまくできません!ご教授お願い致します。 <?php $kazu = $_POST['kazu']; $pdo = new PDO('sqlite:db/syouhin.db'); $st = $pdo->query("SELECT * FROM oder WHERE id='" . $_POST["ban"] . "' "); while ($row = $st->fetch()) { $id = htmlspecialchars($row['id']); $name = htmlspecialchars($row['name']); $kin = htmlspecialchars($row['kin']); $kei = number_format("$kin"*"$kazu"); echo "<tr><td>$id</td><td>$name</td><td>$kazu</td><td>$kin</td><td>$kei</td><tr>"; } sqlite_close; ?>

  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>続けて検索させ一行ごと増やしていきたい セッションで前のデータをとっておくか、 一度検索した結果をhiddenでidを再送して毎回全id分を拾ってくるか

murakami5656
質問者

お礼

ありがとうございます。

関連するQ&A

  • sqlite3 group byがわかりません!!

    テーブル番号を入力すると、各テーブルごとの商品 数量 小計が表示されるようにしたいのですが、各テーブルの合計が表示できません。ご教授お願い致します! <?php $ban = $_POST['ban']; $kazu = $_POST['kazu']; $tno = $_POST['no']; //テーブル番号 $pdo = new PDO('sqlite:db/syouhin.db'); $st = $pdo->query("SELECT * FROM list WHERE tno='" . $_POST["no"] . "' "); while ($row = $st->fetch()) { $tno = htmlspecialchars($row['no']); $id = htmlspecialchars($row['id']); $name = htmlspecialchars($row['name']); $kin = htmlspecialchars($row['kin']); $kazu = htmlspecialchars($row['kazu']); $kei = htmlspecialchars($row['kei']); echo "<td>$id</td><td>$name</td><td>$kin</td><td>$kazu</td><td>$kei</td><tr>"; } $st = $pdo->query('SELECT sum(kei) as kei FROM list group by tno');//←tno( テーブル番号カラム名 if ($row = $st->fetch()) { $tno = htmlspecialchars($row['tno']); $gokei = number_format($row['kei']); echo '¥'."$gokei"; }

    • ベストアンサー
    • PHP
  • sqlite3接続でフィールドの合計を

    sqlite3接続でフィールド(kei)の合計を求めたのですが、できません!初心者なものでよろしくご教授お願い致します。 $pdo = new PDO('sqlite:db/syouhin.db'); $st = $pdo->query("SELECT sum(kei) *FROM list "); while ($row = $st->fetch()) { $kei = htmlspecialchars($row['kei']); echo "<td>$kei</td>"; }

    • ベストアンサー
    • PHP
  • mysql

    phpでmysqlのテーブルからデータを引っ張ってくる構文なのですが $pdo = new PDO("mysql:dbname=データベース名", "root", "root"); $st = $pdo->query("SELECT * FROM テーブル名"); while ($row = $st->fetch()) { $name = htmlspecialchars($row['テーブル名']); $price = htmlspecialchars($row['price']); echo "<tr><td>$name</td><td>$price 円</td></tr>"; 上記のデバックに手こずっております。 自分の知りたいところはカタカナ、漢字の使われているところが正しいのか知りたいです。 またもっと楽な方法があれば教えて頂きたいです。 馬鹿でスミマセンがよろしくお願いします。

    • ベストアンサー
    • MySQL
  • PDOでDB

    PDOでDBを表示させ修正ボタンを押し別ウインドウが開き選んだデータの修正を行いたいのですがupdate2.phpでエラ-メッセージが出ます。どうやったら直りますか 下記のメッセージです Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\WWW\test\htdoes\update2.php on line 4 レコードを修正しました。 ちなみに 番号 int プライマリ-キ- 氏名 varchar 住所 varcharです 下記はソースです 一覧画面 <HTML> <HEAD> <TITLE>一覧画面</TITLE> </HEAD> <BODY> <table border="1"> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> <th>操作</th> </tr> <?php $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); $st = $pdo->query("SELECT * FROM tbl_test"); while ($row = $st->fetch()) { $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); echo "<tr><td>$ID</td><td>$NAME</td><td>$ADDR</td><td><a href='update.php?番号=$ID'>修正</a></td></tr>"; } ?> </table> </BODY> </HTML> アップデートの入力フォーム update.php <?php $ID = htmlspecialchars($_GET['番号']); $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); $st = $pdo->prepare("SELECT * FROM tbl_test WHERE 番号=?"); $st->execute(array($ID)); $row = $st->fetch(); $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); ?> <form action="update2.php" method="post"> 番号<br> <?php echo $ID ?><br> 氏名<br> <input type="text" NAME="NAME" value="<?php echo $NAME ?>"><br> 住所<br> <input type="text" NAME="ADDR" value="<?php echo $ADDR ?>"><br> <input type="submit"> </form> アップデートの処理 update2.php <?php $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); $st = $pdo->prepare("UPDATE tbl_test SET 番号=?,氏名=?,住所=?WHERE 番号=?"); $st->execute(array($_POST['NAME'], $_POST['ADDR'])); ?> レコードを修正しました。 アップデートの処理 update2.phpで 最初のエラーが出ます

  • mysql

    phpの関数 $pdo = new PDO("mysql:dbname=yoyaku_status", "root", ""); $st = $pdo->query("SELECT * FROM yoyaku"); while ($row = $st->fetch()) { $name = htmlspecialchars($row['status']); echo "<tr><td>$name</td><td> </td></tr>"; } MySQLからデータを引っ張ってきて画面に表示まではできたのですが 画面に表示したものが文字化けして表示されてしまい対応に困っています。 文字化けの対応策に header("Content-Type: text/html; charset=UTF-8"); というものがありますが、それも試してみたのですが上手くいかず... 文字化けの原因になりうる物は何かありますでしょうか? いきなりの質問でスミマセン。

    • ベストアンサー
    • MySQL
  • php データベース更新

    番号 int プライマリーキー 氏名  varchar 住所 varchar 一覧画面に修正というボタンをつくりボタンクリックすると入っているデータがテキストボックスで表示され入力できるようにした。 番号は主キーなので表示のみにして編集できないようにした ソース GETで番号をとりupdate2.phpにわたす update.php <?php $ID = htmlspecialchars($_GET['番号']); $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); $st = $pdo->prepare("SELECT * FROM tbl_test WHERE 番号=?"); $st->execute(array($ID)); $row = $st->fetch(); $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); ?> <form action="update2.php" method="post"> 番号<br> <?php echo $ID ?><br> 氏名<br> <input type="text" SIZE = "50" NAME="NAME" value="<?php echo $NAME ?>"><br> 住所<br> <input type="text" SIZE = "130"NAME="ADDR" value="<?php echo $ADDR ?>"><br> <input type="submit"> </form> アップデートphpは下記のとおり update2.php <?php $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); $st = $pdo->prepare("UPDATE tbl_test SET 氏名=?,住所=?WHERE 番号=?"); $st->execute(array($_POST['ID'],$_POST['NAME'], $_POST['ADDR'])); ?> レコードを修正しました。 だかupdate2.phpでエラ-がおきて先に進めません

    • ベストアンサー
    • PHP
  • PHP-SQLiteに於いて、複数列の検索方法を教えてください

    SQLiteの複数列の検索 SQLiteの勉強を始めたばかりなのですが、 複数列の検索方法が解らなくて、 色々調べましたが解らなかったので質問させてください。 データベースの中が |ID  |  氏名  |  住所       |  電話番号 |----|-------|--------------|--------------- |1  |山田   |埼玉県******** |03******** |2  |田中   |東京********** |03******** |3  |佐藤   |千葉県******** |090******** |4  |佐々木  |埼玉県******** |090******** ----------------------------------------------------- 期待する動き 例1) 住所:埼玉県 と検索すると 山田,埼玉県********,03******** 佐々木,埼玉県********,090******** と表示される 例2) 名前:山田 住所:埼玉県 と検索すると 山田,埼玉県********,03******** と表示される ※ユーザーからはどの項目を検索対象とされるか解らない。 test.phpの内容 //フォームからID取得 $search_id = $_POST['id']; //フォームから氏名取得 $search_user_name = $_POST['search_user_name']; //フォームから住所取得 $search_home_address = $_POST['search_home_address']; //フォームから電話番号取得 $search_tel_num = $_POST['search_tel_num']; //フォームからの入力データを格納 $chk_data = "$search_id,$search_user_name,$search_home_address,$search_tel_num"; //比較する列名配列変更用カウント変数 $i = 0; //比較する列名 $chk_db_line = array("id", "user_name", "home_address", "tel_num"); //データベース列名格納 $all_data = "id,user_name,home_address,tel_num"; //ユーザーが入力した検索項目をカンマ区切りで配列に格納 foreach($chk_line as $chk_ln){ //ユーザーが入力した検索項目をチェック if( ($chk_ln === "") || ($chk_ln === NULL) ){ //比較する列名配列変更用カウント変数インクルメント $i++; //ユーザーが入力した検索項目をチェックし値が入っている場合 }else{ //sqlite文の$query = WHERE以降を変数に代入 //ユーザーが入力した検索項目の個数は可変のため $sqlite_str .= $chk_db_line[$i]. " LIKE ". "'%". $chk_ln. "%' "; //比較する列名配列変更用カウント変数インクルメント $i++; } } //設定項目がなければ検索しない if(!$sqlite_str){ echo "検索項目が設定されていません。"; //設定項目あれば検索する }else{ //データベースオープン if($db = sqlite_open('./db/Personal_data')){ //検索 $query = "SELECT ".$all_data ." FROM tb1_personal_data WHERE ".$sqlite_str; $result = sqlite_query($db, $query); //検索結果表示 while($info = sqlite_fetch_array($result)){ echo "<tr>"; echo "<td>氏名</td><td align='left'>{$info['user_name']} </td>"; echo "</tr>"; echo "<tr>"; echo "<td>氏名</td><td align='left'>{$info['home_address']} </td>"; echo "</tr>"; echo "<tr>"; echo "<td>氏名</td><td align='left'>{$info['tel_num']} </td>"; echo "</tr>"; } //データベースクローズ sqlite_close($db); } } とすると、単体検索は成功しましたが、複数検索を行うとエラーが表示される 検索フォームから検索 例1) 住所:埼玉県 と検索すると 山田,埼玉県********,03******** 佐々木,埼玉県********,090******** と表示される 成功 例2) 名前:山田 住所:埼玉県 と検索すると Warning: sqlite_query() [function.sqlite-query]: near "home_address": syntax error in Warning: sqlite_fetch_array() expects parameter 1 to be resource, boolean given in とエラー表示が出ます。 そもそも考え違いをしていたらすいません。 どなたかよろしくお願いします。

    • ベストアンサー
    • PHP
  • php pdo データベース

    前に書き込んだのが状況がわかったので再度書きます update.phpでGETで取った番号のデータを表示します 番号は主キーなので変更できないように表示のみにします update.phpのフォームをuptate2.phpに送ります <?php $ID = htmlspecialchars($_GET['番号']); $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); $st = $pdo->prepare("SELECT * FROM tbl_test WHERE 番号=?"); $st->execute(array($ID)); $row = $st->fetch(); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); ?> <form action="update2.php" method="post"> 番号<br> <?php echo $ID ?><br> <input type="hidden" name="ID" value="<?php echo $ID; ?>"> 氏名<br> <input type="text" SIZE = "50" NAME="NAME" value="<?php echo $NAME ?>"><br> 住所<br> <input type="text" SIZE = "130"NAME="ADDR" value="<?php echo $ADDR ?>"><br> <input type="submit"> </form> アップデ-トphp update2.php <?php $pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin"); $st = $pdo->prepare("UPDATE tbl_test SET 氏名=?,住所=?WHERE 番号=?"); $st->execute(array($_POST['ID'],$_POST['NAME'], $_POST['ADDR'])); ?> レコードを修正しました。 今の現状 エラーが出ないでレコードを修正しました。と表示されるがレコードが修正されていない どこがいけないと思いますか?

    • ベストアンサー
    • PHP
  • PDOでMySQL接続した際の文字化けについて

    http://ponk.jp/php/basic/php_mysql すいません。データベースを初めて勉強中なのですが、上記のサイトに書いてあるように文字をphpで表示させた場合日本語が???に文字化けします。いろいろググってみたのですが解決できず先に進めません・・。 照合順序などはutf8_general_ciとなっていまして、phpの方も<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />とutf-8が指定してありますので問題ないと思います。 考えられる原因というのはどんなものがありますか? テーブル表 CREATE DATABASE men; USE men; CREATE TABLE udon(name TEXT, price INT); INSERT INTO udon VALUES('たぬきうどん', 340); INSERT INTO udon VALUES('てんぷらうどん', 440); INSERT INTO udon VALUES('カレーうどん', 420); INSERT INTO udon VALUES('うどん定食', 520); 表示プログラム <table border="1"> <tr><th>名前</th><th>価格</th></tr> <?php $pdo = new PDO("mysql:dbname=men", "root"); $st = $pdo->query("SELECT * FROM udon"); while ($row = $st->fetch()) { $name = htmlspecialchars($row['name']); $price = htmlspecialchars($row['price']); echo "<tr><td>$name</td><td>$price 円</td></tr>"; } ?> </table>

    • ベストアンサー
    • MySQL
  • 検索機能

    mysqlで検索フォームを作成しています 入力してデータに該当したら検索結果が出るのですが 該当者がいないときはテーブルの表のみ出力してしまう 該当者なしと入力フォーム側に表示したいです また ''''''を入力するとSQLになるのですが mysql_real_escapeを使えば出なくなります どうしたらいいですか <html> <body> <?php //データベースに接続 if (!$con = mysql_connect("localhost", "root", "admin")) { echo "接続エラー" ; exit ; } //データベースを選択 if (!mysql_select_db("db_test", $con)) { echo "データベース選択エラー" ; exit ; } //フォームで送られてきた条件を元にSELECT文を作成 $sql = "select * from tbl_test where (氏名 LIKE '%{$_GET['name']}%') or (住所 LIKE '%{$_GET['name']}%')"; //SELECT文を実行 if (!$res = mysql_query($sql)) { echo "SQLエラー<BR>" ; exit ; }else{ } //検索結果表示 echo "<table border=1>" ; echo "<tr> <th>番号</th> <th>氏名</th> <th>住所</th> <th>操作</th> </tr>" ; while($row = mysql_fetch_array($res)) { $ID = htmlspecialchars($row['番号']); $NAME = htmlspecialchars($row['氏名']); $ADDR = htmlspecialchars($row['住所']); echo "<tr> <td>$ID</td> <td>$NAME</td> <td>$ADDR</td> <td><a href='edit.php?番号=$ID'>修正</a> <a href='delete.php?番号=$ID'>削除</a></td></tr>"; if ($_GET) { // データがGETされていたら $event = isset($_GET['event']) ? $_GET['event'] : ''; // 取得 } } echo "</table>" ; //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; ?> </body> </html>

    • ベストアンサー
    • MySQL

専門家に質問してみよう