• ベストアンサー
  • すぐに回答を!

記事のコメント数表示について

phpにて掲示板を作成しており、書く記事のタイトルの一覧が表示され、各記事のコメント数を表示させたいと思っているのですが、なかなかできません。 どなたかご教授お願いします。 コードは下記のとおりです、 $bbs_query = sprintf("SELECT * FROM `bbs` ORDER BY `reg_date` DESC"); $bbs_result = mysql_query($bbs_query, $link) or die(mysql_error()); while ($bbs = mysql_fetch_assoc($b_result)) { $comment_result = "SELECT COUNT(*) AS count(bbs_id) FROM `bbs_comment` WHERE `bbs_id` = " .$bbs["id"]. "GROUP BY bbs_id"; $tmp = $comment_result; $count = $tmp["count"]; $bbs["count"] = $count; if($bbs) { $bbsList .= "<tr>\n"; $bbsl .= "<td class=\"title\"><a href=\"topics.php?topicNo=$bbs[id]\">".$bbs["title"]."</a></td>\n"; $bbsl .= "<td>(".//****$count*****//.")</td>\n"; $bbsl .= "<td>".$bbs["name"]."</td>\n"; $bbsl .= "<td>".date("Y/m/d H:i", strtotime($bbs["reg_date"]))."</td>\n"; $bbsl .= "</tr>\n"; } } としており、コメントの数(//****$count*****//)がSと表示されます。 参考サイトはこちらです。 http://www.kent-web.com/bbs/patio/patio.cgi こちらのサイトはcgiで作成していますが、こちらのサイトの返信数という感じで表示させたいです。 お分かりの方がいらっしゃいましたら宜しくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数150
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.4
  • yuu_x
  • ベストアンサー率52% (106/202)

> コメントがある場合でないと記事が一覧が表示されないようになってしまいました。 $query = <<<__QUERY__ SELECT `id`,`name`,`title`,UNIX_TIMESTAMP(`reg_date`) AS `reg_date`, IF(`count` IS NULL, 0, `count`) AS `count` FROM `bbs`, LEFT JOIN (SELECT `bbs_id`, COUNT(`bbs_id`) AS `count` FROM `bbs_comment` GROUP BY `bbs_id`) AS `c` ON `c`.`bbs_id` = `bbs`.`id` ORDER BY `reg_date` DESC; __QUERY__; > You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BY bbs_id' at line 1 GROUP BY の前のスペースが抜けている。 せっかく sprintf を使っているならもっとうまく活用してください。

共感・感謝の気持ちを伝えよう!

質問者からの補足

度重なるご回答有難う御座います。 上記の内容でできました。 本当に有難う御座います。 また、何かありましたらご教授いただければと思います。 本当に有難う御座いました。

関連するQ&A

  • CakePHPでのコメント数表示について

    CakePHPを使って簡単な掲示板を開発しているのですが、トップページに 各トピックについたコメント数を表示させる方法で壁にぶち当たってしまっております。 データの取り出し方及び表示方法について教えて頂ければと思います。 DB構造(モデル)としては、 ==================================== ■掲示板(post.php) テーブル:posts id title contents ■コメント(comment.php) テーブル:comments id post_id comment ==================================== となっており、postsにhasMany、commentsにbelongsToで アソシエーションを貼ってあります。 コントローラー(posts_controller.php)では、 ==================================== $data = $this->Post->find('all',array('order' => array('Post.id' => 'desc'))); $this->set('data',$data); ==================================== という処理を行い、 ビュー(/posts/index.ctp)では、 ==================================== foreach($data as $val){ echo "<tr>"; echo "<td><a href='{$val['Post']['id']}'>$val['Post']['title']</a></td>"; echo "</tr>"; } ==================================== としています。 これで、トップページに行くと掲示板トピックスのタイトルの 一覧は表示できるのですが、その横についたコメント数を表示 させたいのです。 例)掲示板のタイトルです(13) 上記のように(○)とさせたいのです。 コントローラーの所でallではなくcountにすることで件数を取りだす ことができる所まではできるのですが、 $cnt = $this->Post->find('count',array('order' => array('Post.id' => 'desc'))); などとやっても本来取り出したいcommentsではなくpostsの件数を取りだす ことになってしまっています。 また、hasManyを利用すると、 Array( [0] => Array( [post] => Array( [id] => 1 [title] => 掲示板のタイトルです [contents] => 掲示板の内容です [comment] => Array( [0] => Array( [id] => 1 [post_id] => 1 [comment] => コメント1です。 [1] => Array( [id] => 2 [post_id] => 1 [comment] => コメント2です。 ・ ・ ・ となる為、ビューでの表示のさせ方にも困っております。

    • ベストアンサー
    • PHP
  • PHPでのMYSQL接続のデータ表示

    PHPのバージョンは4.2.3です。 index.php という一覧表示画面から 一意なKey文字列を受け取りそのデータに合致する データの詳細を表示する画面です。 実データ部分が表示されず困っています。 実行時のPHPのエラーも出力されないので いまいちどこが悪いのかわかりません アドバイスよろしくお願いします。 <?php require_once( "common.php" ); require_once( "const.php" ); if(! $conn = mysql_connect( 'ホスト名','ユーザー名','PASS')){ die( 'MYSQL接続失敗'); } $sql = ""; $sql .= "select * from LIVE "; $sql .= "ORDER BY Date DESC "; $sql .= "WHERE ID=".$_REQUEST[ "KEY" ]; echo $sql; mysql_select_db("DB名",$conn); $rs = mysql_query($sql, $conn); $DATE=$rs['DATE']; $TITLE=$rs['TITLE']; $PLACE=$rs['PLACE']; $ARTIST=$rs['ARTIST']; echo $DATE; echo $TITLE; echo $PLACE; echo $ARTIST; //$rec = mysql_fetch_array( $rs, MYSQL_ASSOC ); ?> <HTML> <HEAD><TITLE>ライブ予定</TITLE></HEAD> <BODY><H1 ALIGN="CENTER">ライブ予定詳細</H1> <A HREF="./">戻る</A> <TABLE BORDER="1" ALIGN="CENTER" WIDTH="100%"> <TR><TD BGCOLOR="#FFFFCC">日付</TD> <TD><?php HESC($rec['DATE']) ?></TD></TR> <TR><TD BGCOLOR="#FFFFCC">タイトル</TD> <TD><?php HESC($rec['TITLE']) ?></TD></TR> <TR><TD BGCOLOR="#FFFFCC">場所</TD> <TD><?php HESC($rec['PLACE']) ?></TD></TR> <TR><TD BGCOLOR="#FFFFCC">アーティスト</TD> <TD><?php HESC($rec['ARTIST']) ?></TD></TR> <TR><TD BGCOLOR="#FFFFCC">本文</TD> <TD></TD></TR> </TABLE> </BODY></HTML>

    • ベストアンサー
    • PHP
  • データベースから読み込んで表示させる方法について

    PHP、MySQL共に超初心者です。 説明も下手で申し訳ないのですが、どうぞご教授お願いいたします。 WEBページから小説をデータベースに登録させる管理画面をPHPで作成しております。 登録はうまくいったのですが、登録内容を一覧表示させるページで、思ったように表示させることが出来なくて困ってしまいました。 テーブルの主な内容は以下の通りです。 ■genre(ジャンル名テーブル) └【id】…数字  【genre_name】…小説のジャンル名 ■novel●●(小説を入れるテーブル。●●の部分はgenreテーブルの【id】と同じ) └【genre】…genreテーブルの【id】と同じにしてジャンル分け。  【title】…小説タイトル  【writing_date】…執筆日  【release】…0は非公開、1は公開。 やりたいことは、 【release】が1(公開)となっている【title】(小説タイトル)を、【writing_date】(執筆日)の新しい順に全て表示させ、それを【genre】ごとにまとめたテーブルに表示させる事。 (【release】が0しかないジャンルは表示させない) です。 現在、公開設定となっていない小説しかないジャンルまでもが表示されてしまっています。 (もちろん内容がないので、ジャンル名と項目名だけが不恰好に表示されてしまいます。) 結合など色々検索して試してみたのですが、解決できずにいます。 どのような方法があるか 本当に説明下手で大変申し訳ないのですが、ご助力宜しくお願いいたします。 初心者ゆえ、どこまで説明すれば良いかもわかっておりませんので、説明不足な部分は補足させていただきます。 どうぞ宜しくお願いいたします。 ■環境 MYSQL:4.0.24 PHP:5.2.6 ■プログラム <?php $genre_sql = "select * from genre"; $genre_que = mysql_query($genre_sql); while ($genre_row = mysql_fetch_array($genre_que)) { $genre_id = $genre_row['id']; $genre_id = sprintf("%02d", $genre_id); $genre_name = $genre_row['genre_name']; $novel_sql = "select * from novel$id order by writing_date desc limit 1"; $novel_que = mysql_query($novel_sql); while ($novel_row = mysql_fetch_array($novel_que)) { $novel_id = $novel_row['id']; $novel_genre = $novel_row['genre']; echo "▼".$genre_name. "<br> <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td class=\"tdTitleEdi\" width=\"90%\">タイトル</td> <td class=\"tdTitleEdi\" width=\"10%\">更新日</td> </tr>"; $title_sql = "select * from title$genre_id"; $title_que = mysql_query($title_sql); while ($title_row = mysql_fetch_array($title_que)) { $title_id = $title_row['id']; $title_name = $title_row['title_name']; $novel_sql = "select * from novel$genre_id where genre=$genre_id and title=$title_id"; $novel_que = mysql_query($novel_sql); while ($novel_row = mysql_fetch_array($novel_que)) { $novel_id = $novel_row['id']; $novel_genre = $novel_row['genre']; $novel_title = $novel_row['title']; $novel_writing_date = $novel_row['writing_date']; $novel_release = $novel_row['release']; echo "<tr>"; echo "<td class=\"tdEdiTi\">"; $novel_sql = "select * from novel$genre_id where genre=$genre_id and title=$title_id"; $novel_que = mysql_query($novel_sql); while ($novel_row = mysql_fetch_array($novel_que)) { echo $title_name; echo "&nbsp;</td>"; } } } echo "<td class=\"tdEdiLi\">"; $novel_sql = "select * from novel$genre_id where genre=$genre_id and title=$title_id order by writing_date desc limit 1"; $novel_que = mysql_query($novel_sql); while ($novel_row = mysql_fetch_array($novel_que)) { $year = mb_substr($novel_writing_date,0,4); $month = mb_substr($novel_writing_date,5,2); $day = mb_substr($novel_writing_date,8,2); echo $year. "." .abs($month). "." .abs($day); } echo "&nbsp;</td>"; echo "</tr>"; } } echo "</table>\n"; } } ?>

    • ベストアンサー
    • PHP

その他の回答 (4)

  • 回答No.5
  • yuu_x
  • ベストアンサー率52% (106/202)

FROM `bbs`, ⇒ FROM `bbs` (人のこと言えんな) > としており、コメントの数(//****$count*****//)がSと表示されます。 ちなみにそいつは SELECT の最初の S PHP では文字列を配列の様に扱える。"count" を数値にキャストした場合 0 つまり最初の文字が取り出される。

共感・感謝の気持ちを伝えよう!

  • 回答No.3
  • yuu_x
  • ベストアンサー率52% (106/202)

WHILE ⇒ WHERE (何で while て書いたんだろ。きっと下で使ってるからだ) その他所々ミスタイプがあるので修正してください。 自ら努力より、まずは良い資料と、良い師に巡り合うことだ。努力はその後でいい。 ここの掲示板を見ている限りでは特にそう思える。 >> にしたところエラーがでるため、mysql_queryを入れないようにしています。 エラーは何と出ていますか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

できました。有難う御座います。 ただ、記事に対して、コメントがある場合でないと記事が一覧が表示されないようになってしまいました。 フォロー有難う御座います。 ただできる限りは自分で努力してみたいと思います。 >>エラーは何と出ていますか。 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BY bbs_id' at line 1 とでました。

  • 回答No.2

SELECT文が2箇所にありますが、mysql_query()が1箇所しかありません。 そこら辺からなんとかしましょうよ。 質問はもちろん大切です。自分で勉強を続けることも大切です。 自らする努力が大きいほど手助けも自然とたくさん集まると思いますよ。

共感・感謝の気持ちを伝えよう!

質問者からの補足

ご回答有難う御座います。 $c_query = sprintf("SELECT COUNT(`bbs_id`) AS `count` FROM `bbs_comment` WHERE `bbs_id` = " .$bbs["id"]. "GROUP BY bbs_id"); $c_result = mysql_query($c_query, $link) or die(mysql_error()); にしたところエラーがでるため、mysql_queryを入れないようにしています。 まだ、phpは初心者のため自分で調べながら、考えてやっています。 それでもわからないからお分かりの方に教えて欲しいと思い、投稿しました。 あなたは何がしたいのかわかりませんが、そもそもここの掲示板の意味わかります? 教えてほしいから教えてgooなわけじゃないですか。 そんなことを言いたいがためにコメントしてきたのですか?

  • 回答No.1
  • yuu_x
  • ベストアンサー率52% (106/202)

function h($str) { return htmlentities($str, ENT_QUOTES, 'sjis'); } $query = <<<__QUERY__ SELECT `id`,`name`,`title`,UNIX_TIMESTAMP(`reg_date`) AS `reg_date`,`count` FROM `bbs`, (SELECT `bbs_id`, COUNT(`bbs_id`) AS `count` FROM `bbs_comment` GROUP BY `bbs_id`) AS `c` WHILE `c`.`bbs_id` = `bbs`.`id` ORDER BY `reg_date` DESC; __QUERY__; $bbs_result = mysql_query($query, $link) or trigger_error(mysql_error(), E_USER_ERROR); ?> <? while ($bbs = mysql_fetch_assoc($bbs_result)) : ?> <tr> <td class="title"><a href="topics.php?topicNo=<?=urlencode($bbs['id'])?>"><?=h($bbs['title']?></a></td> <td><?=h($bbs['count'])?></td> <td><?=h($bbs['name'])?></td> <td><?=date("Y/m/d H:i", $bbs['reg_date']))?></td> </tr> <? endwhile; ?>

共感・感謝の気持ちを伝えよう!

質問者からの補足

ご回答有難う御座います。 SELECT `id`,`name`,`title`,UNIX_TIMESTAMP(`reg_date`) AS `reg_date`,`count` FROM `bbs`, (SELECT `bbs_id`, COUNT(`bbs_id`) AS `count` FROM `bbs_comment` GROUP BY `bbs_id`) AS `c` WHILE `c`.`bbs_id` = `bbs`.`id` ORDER BY `reg_date` DESC; のところでエラーが出てしまいます。 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHILE `c`.`bbs_id` = `bbs`.`id` ORDER BY `reg_date` DESC' at line 2 おわかりになりますでしょうか?

関連するQ&A

  • 新着情報のような記事投稿をつくろうとしているのですが、POSTの受け渡し?やMySQLへのデータ登録がうまくいきません。

    やりたいこと 1、form.phpからview.phpへフォームでPOSTデータを送り、 2、view.phpでは、MySQLへの接続と、受け取ったPOSTデータを変数へ格納して、データベースへ登録する前に、プレビュー画面で確認する。 4、登録ボタンを押したら、「登録しました。」というメッセージを表示し、データベースへ登録する。 受け取ったPOSTデータをプレビュー画面にすることはできたのですが、その後の、「4」の部分が作れません。どうかアドバイスお願いいたします。 view.php ////////////////////////////////////////////////// $host = "localhost"; $conn = mysql_connect($host, "root", "root"); mysql_select_db("my_db", $conn); $date = $_POST['date']; $title = $_POST['title']; $text = $_POST['text']; $form = <<<EOM <form action="view.html" method="post"> <table> <tr> <td日付td><td>$date</td> </tr> <tr> <td>タイトル</td><td>$title</td> </tr> <tr> <td>本文</td><td>$text</td> </tr> <tr> <td><input type="submit" name="check" value="登録" /> <input type="button" name="back" value="戻る" /></td> </tr> </table></form> EOM; //ここにいろいろと書いて試してみました ----------------------------------------------- //試したこと1 $sql = "INSERT INTO topic_table(date, title, text,)VALUES('$date', '$title', '$text')"; mysql_query($sql, $conn) or die($form_a="登録できませんでした"); ($form_a="登録しました。"); ↑これだとview.phpを開いただけでデータベース登録されてしまいました。 ----------------------------------------------- 試したこと2 if($_POST['check'] == "登録"){ $sql = "INSERT INTO topic_table(date, title, text,)VALUES('$date', '$title', '$text')"; mysql_query($sql, $conn) or die($form_a="登録できませんでした"); ($form_a="登録しました。"); } ↑登録ボタンを押して、データベースに登録する、というのをif文で作ってみましたが失敗しました。(POSTデータではなくただの空白しかデータベースには登録されませんでした。)

    • ベストアンサー
    • PHP
  • どのような処理をしているのでしょうか?

    http://php.birdlab.com/download/1001 のプログラムを参考に掲示板作成の勉強をしているのですが、 以下の箇所がどのような処理をしているか分かりません。 どなたか、詳しく教えてください。よろしくお願いします。 function formCheck()の $query = "select count(*) from onebbs where id = ".$this->post['id']." and name = '".addslashes($this->post['name'])."' and comment = '".addslashes($this->post['comment'])."' and date > adddate(now(), interval -1 hour)"; $result = mysql_query($query); if ($result !== false) { if (mysql_result($result, 0, 0) == 0) { return true; }

    • ベストアンサー
    • PHP
  • DBから取得した内容を横表示

    質問します。 DBにID,NAME,IMGと言うカラム名があります。 例 ID NAME IMG 0001 PHP1 PHP1 0002 PHP2 PHP2 0003 PHP3 PHP3 データを取得し、ブラウザにて横に表示するように したいのですが、うまくいきません…。 ブラウザーイメージ 0001 0002 0003 PHP1 PHP2 PHP3 画像 画像 画像 以下がサンプルです。 <?php //DB接続 if((!$db = mysql_connect("","",""))){ die; } //DB選択 if((!mysql_select_db(""))){ die; } if(!mysql_query('set names sjis')){ echo "sjis 設定エラー"; die; } $SQL = "SELECT * FROM video_data"; if(!($rs = mysql_query($SQL))){ print mysql_error(); die; } ?> <table border="0"> <TR> <?php $count = 0;      while($item = mysql_fetch_array($rs)){ //ID表示 print "<TD>".$item['ID']."</TD>"; //名前表示 print "<TD>".$item['NAME']."</TD>"; //改行     if($count == 4){       print "</TR>";   $count = 0;     }     //IMG表示 print "<TD><img src='./test/".$item['ID'].".jpg'/></TD>"; $count++; } print "<TR>"; //コネクションクローズ mysql_close(); ?> </TABLE> どこを修正したらいいのかわかりません… 色々やっているんですが…。 わかる方が居たらヒントでもいいので 教えて下さい。よろしくお願いします。

    • ベストアンサー
    • PHP
  • 動的サイトを作ってみたのですが、うまくデータベースからデータが取得できません。。。

    よろしくお願いいたします。 趣味でゲームソフトのデータベースを作っています。 MYSQLを使って動的にデータを表示させるサイトです。 http://www.game-minzoku.jp/meisai.php?titleid=5362 例えばこのようにパラメータをつけてページを展開しているのですが、 この『?title=****』の数字をアドレスバー上で変更してほかのページを表示させようとすると、 該当データがありません。 がと出てしまいます。 これがようやくGoogleにインデックスされ始めてきましたが、自然検索から入ってもこのようなことが起こってしまって困っています。 自分で調べてはみたものの、独学で進めているため、どうやって解決したらよいか分からず困っています。 どなたかお力添えいただけますと幸いです。 問題のページのソースはこちらです。(cssなどの不要と思われる個所はけしてありますが、もし足りない箇所あればおっしゃっていただけますと幸いです) ================================================================ <?php extract($_GET); mysql_connect('****','****','****'); mysql_select_db('****'); mysql_query("set character_set_client=utf8"); mysql_query("set character_set_connection=utf8"); mysql_query("set character_set_results=utf8"); $sql = "select * from game,genre,hanbai,kaihatsu,hard where game.genreid=genre.genreid and game.hardid=hard.hardid and game.hanbaiid=hanbai.hanbaiid and game.kaihatsuid=kaihatsu.kaihatsuid and game.titleid =" . $titleid; $result = mysql_query($sql); $rows = mysql_num_rows($result); $title_name_sql = "select title from game where titleid =" . $titleid ; $res = mysql_query($title_name_sql); $title_name = mysql_result($res,0); echo "<title>"; echo "$title_name | ゲーム民族</title>"; echo "</head><body>"; echo "<a href=index.php>ゲーム民族</a>"; echo "<h1><font size=2>ゲーム民族は"; echo "$title_name"; echo "の詳細を網羅したデータベースのサイトです</font></h1>"; echo "<p><a href=index.php>TOP</a> > $title_name</p>"; echo $title_name の基本情報; if($rows == 0){ echo "<p>該当データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<a href=",$row["url"],">"; echo "<img src=",$row["img"]," alt=",$row["title"],">"; echo "</a>"; echo "<table border=1 height=40 cellpadding=2 cellspacing=2 width=800>"; echo "<tr><td>タイトル</td><td>"; echo $row["title"]; echo "</td></tr>"; echo "<tr><td>発売元</td><td>"; echo "<p><a href=\"maker.php?hanbaiid=",$row["hanbaiid"],"\">", $row["hanbai"] ,"</a></p>\n"; echo "</td></tr>"; echo "<tr><td>開発元</td><td>"; echo "<p><a href=\"developer.php?kaihatsuid=",$row["kaihatsuid"],"\">", $row["kaihatsu"] ,"</a></p>\n"; echo "</td></tr>"; echo "<tr><td>機種</td><td>"; echo $row["hard"]; echo "</td></tr>"; echo "<tr><td>発売日</td><td>"; echo $row["hatsubai"]; echo "</td></tr>"; echo "<tr><td>ジャンル</td><td>"; echo "<p><a href=\"genre.php?genreid=",$row["genreid"],"\">", $row["genre"] ,"</a></p>\n"; echo "</td></tr>"; $sql2= "select * from game,title_creater,creater,roll where game.titleid=title_creater.titleid and title_creater.createrid=creater.createrid and title_creater.rollid=roll.rollid and game.titleid = " . $row["titleid"]; $result2 = mysql_query($sql2); $rows2 = mysql_num_rows($result2); while($row2 = mysql_fetch_array($result2)){ echo "<tr><td>クリエーター</td><td>"; echo $row2["creater"]; echo $row2["roll"]; echo "</td></tr>"; } } } ?> </body></html> ================================================================ 本当に見にくい意味不明のソースで申し訳ありませんが、よろしくお願いいたします!

    • ベストアンサー
    • PHP
  • nl2br()の記入例

    PHPを始めたばかりで行きづまってしまいました。 MySQLを利用したデータの出し入れなのですが、テキストエリア内の文章の改行についてです。 input.php(入力)⇒confirm.php(確認)⇒end.php(完了) という流れなのですが、input.phpで入力した内容をconfirm.phpで確認すると文章の改行がされてなかったので色々検索した結果、nl2br()使うというところまでは解ったのですが、実際どのように書くのか解りません・・・。 例えばこのようなソースの場合、どのような記述をすればいいのでしょうか? <html> <head> <title>薬屋さん</title> </head> <body> <?php $con = mysql_connect('aaa', 'bbb', 'ccc'); if (!$con) { exit('データベースに接続できませんでした。'); } $result = mysql_select_db('ddd', $con); if (!$result) { exit('データベースを選択できませんでした。'); } $result = mysql_query('SELECT * FROM kusriya', $con); echo "<dl>\n"; while ($data = mysql_fetch_array($result)) { $id = $data['id']; $shop = htmlspecialchars($data['shop']); $address = htmlspecialchars($data['address']); $phone = htmlspecialchars($data['phone']); $comment = htmlspecialchars($data['comment']); $navi = htmlspecialchars($data['navi']); $con = mysql_close($con); if (!$con) { exit('データベースとの接続を閉じられませんでした。'); } ?> <form method="post" action="test_confirm.php"> <table> <tr> <th>ID</th><td><input type="text" name="id" /></td> </tr> <tr> <th>店名</th><td><input type="text" name="shop" /></td> </tr> <tr> <th>住所</th><td><input type="text" name="address" /></td> </tr> <tr> <th>電話</th><td><input type="text" name="phone" /></td> </tr> <tr> <th>コメント</th><td><textarea name="comment" cols="80%" rows="5"></textarea></td> </tr> <tr> <th>ルート</th><td><textarea name="navi" cols="80%" rows="5"></textarea></td> </tr> </table> <input type="submit" value="送信" /> <input type="reset" value="リセット" /> </form></body> </html> よろしくお願いします。

    • 締切済み
    • PHP
  • mysql_fetch_array取得結果を2行で

    mysql_fetch_arrayで取得した結果を、 2行で表示させるには、どうすればよいでしょうか? ※そのままだと横に長くなり過ぎるので、 複数行にして、テーブル横幅を抑えたい、です。 <現状> mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT * FROM mytable"); $body .= "<table> <tr> <th>ID</th> <th>氏名</th> </tr>"; while ($row = mysql_fetch_array($result)) { $body .= "<tr> <td></td> <td>".$row[name]."</td> <td>".$row[preid]."</td>

    • ベストアンサー
    • PHP
  • sqlから多次元配列に要素を格納するコードの書き方

    現在sqlから読み込んだ要素をentries配列に格納しようと考えているのですが、 次のように書いてしまうと長く、複雑になってしまいます。 $res_result = mysql_query( "SELECT * from {$entry_title}", $link ); while( $entry_title = mysql_fetch_assoc( $res_result ) ){}; $res_result = mysql_query( "SELECT * from {$entry_url}", $link ); while( $entry_url = mysql_fetch_assoc( $res_result ) ){}; $res_result = mysql_query( "SELECT * from {$unix_time}", $link ); while( $unix_time = mysql_fetch_assoc( $res_result ) ){}; $res_result = mysql_query( "SELECT * from {$entry_count}", $link ); while( $entry_count = mysql_fetch_assoc( $res_result ) ){}; $entries[$i++] = array( "entry_title" => $entry_title, "entry_url" => $entry_url, "unix_time" => $unix_time, "entry_count" => $entry_count, ); もっと簡潔に書く方法はないでしょうか。 どなたかご教示のほど、どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • mysqlの文字化け

    お世話になります。 phpmyadminを使用しており、php内からmysqlに接続しているのですが テーブル内の結果が「????」となり文字化けしてしまいます。 phpmyadmin上では正常に日本語データが表示されます。 テーブルの文字コード:utf_general_ci ソースは以下です。 <?php &#65374;DB接続省略&#65374; // クエリを送信する $sql = "SELECT * FROM table"; $result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql); //表示するデータを作成 while($row = mysql_fetch_array($result)) { $tempHtml .= "<tr>"; $tempHtml .= "<td>".$row["YMD"]. "</td><td>".$row["NAME"]. "</td><td>".$row["OBJECT"]. "</td>"; $tempHtml .= "</tr>\n"; } //結果保持用メモリを開放する mysql_free_result($result); // MySQLへの接続を閉じる mysql_close($link) or die("MySQL切断に失敗しました。"); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>全件表示</title> </head> <body> <h3>全件表示</h3> <?= $msg ?> <table width = "200" border = "0"> <tr bgcolor="##ccffcc"><td>YMD</td><td>NAME</td><td>OBJECT</td></tr> <?= $tempHtml ?> </table> </body> </html> よろしくお願いします。

    • 締切済み
    • PHP
  • データが表示されません

    php4とMySQLを使用しています。 select文でデータを取得したあと while($Row2 = mysql_fetch_array($result2, MYSQL_ASSOC)){ $name = $Row2['name']; $contents = $Row2['contents']; ?> <table> <tr> <td><?=$name?></td> </tr> <tr> <td><?=$contents?></td> </tr> </table> <? } ?>で表示しようとしていますが、10件中の10件目しか表示されません。 上書きされているようです。どこがおかしいでしょうか? 教えてください。お願いいたします。

    • ベストアンサー
    • PHP
  • 条件に合うデータの個数と平均の表示について

    検索条件に合うデータの個数のカウントと、平均を出したいと考えています ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー $sql1 = "select avg(score) from seiseki where name = '$Name' and day like '$Day*'"; $sql2 = "select count(score) from seiseki where name = '$Name' and day like '$Day*'"; $sql3 = "select count(score) from seiseki where name = '$Name' and day like '$Day*' and score = 1"; $res1 = mysql_query($sql1); $res2 = mysql_query($sql2); $res3 = mysql_query($sql3); echo "<table border='1'>"; echo "<tr>"; echo "<td>総数</td>"; echo "<td>{$res2}回</td>"; echo "</tr>"; echo "<tr>"; echo "<td>1の数</td>"; echo "<td>{$res3}回</td>"; echo "</tr>"; echo "<tr>"; echo "<td>平均</td>"; echo "<td>{$res1}</td>"; echo "</tr>"; echo "</table>"; ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 現在このようなプログラムで検索をかけているのですが、結果が 総数 Resource id #4回 1の数 Resource id #5回 平均 Resource id #3 というような結果が表示され、正しく表示することができません しようと考えています nameは完全一致で、dayは前方一致で検索しようと考えており、両方の条件にあったものを計算します nameにはローマ字で名前が、dayには20110110といったように日付が文字形式で scoreには1&#65374;4の数字がINTで記入されています 何か間違いがあるのか、また どのような記述をすればいいのか例などがあれば書いていただきたいです

    • ベストアンサー
    • PHP