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

このQ&Aのポイント
  • テーブル番号を入力すると、各テーブルごとの商品 数量 小計が表示されるようにしたいのですが、各テーブルの合計が表示できません。
  • ご教授お願い致します!
  • PHPのsqlite3でgroup byを使ってテーブルごとの合計を表示したい
回答を見る
  • ベストアンサー

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
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

こっちのSQL文の話かな?(両方のSQL文の関係がわからない)。 >$st = $pdo->query('SELECT sum(kei) as kei FROM list group by tno'); テーブルNoも取得しないと(というか取得しない列でgroup byってMySQLだと指定できたんだっけ) $st = $pdo->query('SELECT tno, sum(kei) as kei FROM list group by tno');

murakami5656
質問者

お礼

$st = $pdo->query('SELECT tno,sum(kei) as kei FROM list group by tno having tno =$tno');で表示できました。ありがとうございました。 ちなみに $st = $pdo->query('SELECT tno,sum(kei) as kei FROM list group by tno having tno =×××'); ×××の部分を変数指定にできないのでしょうか?

関連するQ&A

  • 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
  • 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
  • 複数行のレコードを他のテーブルに保存?

    $st = $pdo->query("SELECT * FROM list WHERE tno='" . $_POST["tno"] . "' ");で摘出した複数行のレコードを他のテーブルに保存したいのですが、うまくいきません。よろしくご教授お願い致します。

    • ベストアンサー
    • 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
  • 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 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
  • WordPressの独自テーブルへの入力フォーム

    WordPressのデータベースに独自のテーブル(wp_abc)を作りました。 カラムは「code(indexです)」「name」と「address」の3つです。 このテーブルにデータを入力するフォームを作りたいです。 これまでWordPressではないSQLへのデータ入力は次のようにしていました。 ●入力画面(insert.php) <?php function connect() { return new PDO("mysql:dbname=xxxxx;host=yyyyy","zzzzz","password", array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`")); } $error = $name = ''; $pdo = connect(); if (@$_POST['submit']) { $code = $_POST['code']; $name = $_POST['name']; $address = $_POST['address']; if (!$name) $error .= '名前が入力されていません。<br>'; if (!$error) { $pdo->query("INSERT INTO abc(name,address) VALUES('$name','$address')"); header('Location: index.php'); exit(); } } ?> <?php if ($error) echo "<span class=\"error\">$error</span>" ?> <form action="insert.php" method="post"> <table> <tr> <th>名前</th> <td><INPUT type="text" name="name" value="<?php echo $name ?>"></td> <th>住所</th> <td><INPUT type="text" name="address" value="<?php echo $address ?>"></td> </tr> </table> <p><input class="submit" type="submit" name="submit" value="登録"></p> </form> ●管理画面(index.php) <?php function connect() { return new PDO("mysql:dbname=xxxxx;host=yyyyy","zzzzz","password", array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`")); } $pdo = connect(); $st = $pdo->query("SELECT * FROM wp_abc"); $abc = $st->fetchAll(); ?> <?php foreach ($abc as $row) { ?> <table> <tr>  <th>名前</th> <td><?php echo ($row['name']) ?></td> </tr> <tr>  <th>住所</th> <td><?php echo ($row['address']) ?></td> </tr> </table> <?php } ?> ※※※※※ 単純にmysql:dbname=xxxxx;host=yyyyy","zzzzz","password",の部分をWordPressのデータベースのものに置き換えましたが、うまくいきません。 どこが悪いのかご指摘いただければありがたいです。 また、他に正しい方法がありましたら教えていただけないでしょうか。 何卒よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう