データベース内容が表示されない

このQ&Aのポイント
  • データベースの内容が表示されない状況について質問します。該当するデータがない場合や記述ミスがないか確認しましたが、tiikiやsyokuの情報が表示されない現象が起きています。再検索のリンクは表示されていますが、データの表示に問題があるようです。
  • データベースの内容が表示されない状況に困っています。検索結果は表示されますが、tiikiやsyokuなどの情報が表示されず、空白のままです。再検索のリンクは正常に表示されていますが、表示されない問題について解決方法を教えてください。
  • 質問です。データベースの内容が表示されない状況についてですが、再検索のリンクは表示されますが、tiikiやsyokuの情報が表示されず、空白のままです。該当するデータがない場合や記述ミスがないか確認しましたが、表示されない原因がわかりません。解決方法を教えてください。
回答を見る
  • ベストアンサー

データベース内容が表示されない

<br>検索結果<br> <?php if($num_rows== 0){ $message="該当するデータはありませんでした"; } else $message=$num_rows ."件ヒットしました"; echo $message; ?> <br> <?php while($row = mysql_fetch_array($result));?> <br> <?php echo"{$row['tiiki']}"; ?> <?php print"<td>{$row['syoku']}</td>"; ?> <?php print"<td>{$row['koyou']}</td>"; ?> <?php print"<td>{$row['kai']}</td>"; ?> <br> <a href="html.html">再検索</a> とすると、三件ヒットしました、などは表示されますが、肝心のtiiki,syoku等の情報が表示されず、空白のままです。記述ミス等ありますでしょうか??

noname#142312
noname#142312
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • duron
  • ベストアンサー率77% (73/94)
回答No.1

<?php while($row = mysql_fetch_array($result));?> ↑これだとこの一行のみのループになります ループさせたい部分までカッコで括ってください。 <?php while($row = mysql_fetch_array($result)){ ?> <?php echo"{$row['tiiki']}"; ?> <?php print"<td>{$row['syoku']}</td>"; ?> <?php print"<td>{$row['koyou']}</td>"; ?> <?php print"<td>{$row['kai']}</td>"; ?> <?php } ?>

noname#142312
質問者

お礼

非常に助かりました。ありがとうございます。

関連するQ&A

  • 検索結果を改行させるには??

    <br>検索結果<br> <?php if($num_rows== 0){ $message="該当するデータはありませんでした"; } else $message=$num_rows ."件ヒットしました"; echo $message; ?> <br><table border=1><tr><td>地域</td><td>職種</td><td>雇用形態</td><td>会社名</td><br> <?php $tr['tiiki'] = ''; $tr['syoku'] = ''; $tr['koyou'] = ''; $tr['kai'] = ''; while($row = mysql_fetch_array($result)){ $tr['tiiki'] .= "<td>".htmlspecialchars($row['tiiki'], ENT_QUOTES)."</td>"; $tr['syoku'] .= "<td>".htmlspecialchars($row['syoku'], ENT_QUOTES)."</td>"; $tr['koyou'] .= "<td>".htmlspecialchars($row['koyou'], ENT_QUOTES)."</td>"; $tr['kai'] .= "<td>".htmlspecialchars($row['kai'], ENT_QUOTES)."<td>"; } ?> <table> <tr><?php print $tr['tiiki'];?><?php print $tr['syoku'];?><?php print $tr['koyou'];?><?php print $tr['kai'];?></tr> </table> このソースだと 東京 神奈川 製造 建築 派遣 バイト 山田鞄 後藤組 のようにごちゃ混ぜになります。 「東京 製造 派遣 山田鞄 神奈川 建築 バイト 後藤組」 こんな感じに表示させるにはどうすれば良いですか??

    • 締切済み
    • PHP
  • データベース表示結果のデザイン

    データベースの全件検索結果の表示のデザインをしたいと考えているのですがうまくいきません。 PHPのソースは以下の通りです。 <?php mysql_connect('localhost','root','******'); mysql_select_db('AAAAAAAA'); $sql= "select * from ??????"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row["renban"]; echo " "; echo $row["tourokubi"]; echo " <br />"; echo $row["title"]; echo " "; echo $row["A"]; echo "-"; echo $row["B"]; echo " "; echo $row["C"]; echo " "; echo $row["D"]; echo " "; echo $row["E"]; echo " "; echo $row["F"]; echo " "; echo $row["G"]; echo "</p><hr />"; } } ?> この検索結果の1つ1つのデータをテーブルで囲んでechoで呼び出したA~Gまでの項目を<tr>や<td>で区切って表のような形にしたいのですがどのようにすればいいでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPで同じページに似た内容のデータベースを表示

    PHPで同じページに同じデータベース(table)から別の条件でリストを表示させています。 もっと簡単でスマートな方法はないか、ご質問させていただきます。 【表示例】 <鈴木さん> 鈴木たろう 090-0000-0000 鈴木まさゆき 080-0000-0000 鈴木あきこ 03-0000-0000 <佐藤さん> 佐藤まさる 090-0000-0000 佐藤ともみ 080-0000-0000 佐藤けいこ 03-0000-0000 【PHP】 <?PHP $sql = "SELECT name, tel FROM table"; $sql .= " WHERE name LIKE '%鈴木%'"; $recordSet = mysql_query($sql); $rows = mysql_num_rows($recordSet); if($rows){ while($row = mysql_fetch_array($recordSet)) { $table .= "".$row['name'].""; $table .= " ".$row['tel']."<br>"; $table .= "\n"; } } echo "<鈴木さん><br>"; echo $table; mysql_free_result($recordSet); ?> <?PHP $sato_sql = "SELECT name, tel FROM table"; $sato_sql .= " WHERE name LIKE '%佐藤%'"; $sato_recordSet = mysql_query($sato_sql); $sato_rows = mysql_num_rows($sato_recordSet); if($sato_rows){ while($sato_row = mysql_fetch_array($sato_recordSet)) { $sato_table .= "".$sato_row['name'].""; $sato_table .= " ".$sato_row['tel']."<br>"; $sato_table .= "\n"; } } echo "<佐藤さん><br>"; echo $sato_table; mysql_free_result($sato_recordSet); ?> 上記のように、同じデータベース(table)から、 「鈴木さん」「佐藤さん」それぞれ条件を設定して表示していますが、 もっと簡単に短いコードで表示させることは可能でしょうか。 また、可能であれば、それを何と呼べば(検索すれば)宜しいのでしょうか。 お願い致します。

    • ベストアンサー
    • PHP
  • エラーが出ます。myswl

    <?php $_POST['form']; $db_server = "mysql84.heteml.jp"; $db_username = "******"; $db_password = "******"; $mysql = mysql_connect($db_server, $db_username, $db_password); if ($mysql) { $table_name= "kensaku"; $mysql= ""; mysql_select_db($table_name, $mysql); mysql_set_charset("ECU"); $sql = "SELECT kai, tiiki, syoku, kei FROM kensaku" . "WHERE tiiki = '" . mysql_real_escape_string($tiiki) . "'"; $result = mysql_query($sql); if ($result) { $data_count = mysql_num_rows($result); for($i = 0; $i < $data_count; $i++) { $row = mysql_fetch_row($result); $j = 0; $data[$i]['kai'] = $row[$j++]; $data[$i]['tiiki'] = $row[$j++]; $data[$i]['syoku'] = $row[$j++]; $data[$i]['koyou'] = $row[$j++]; } mysql_free_result($result); } else { $error['top'] = "データベースのエラーです。" . mysql_error(); } mysql_close($mysql); } if (isset($error)) { echo $error['top']; } else { for($i = 0; $i < $data_count; $i++) { echo $data[$i]['kai'] . "|" . $data[$i]['tiiki'] . "|" . $data[$i]['syoku'] . "|" . $data[$i]['koyou'] . "<br />"; } } ?> 書き忘れとかあればおしえてください。

    • 締切済み
    • PHP
  • PEARのPagerの設定の仕方

    初心者です。 ホームページでDBを利用しているのですが、データ量が多くなるのでページ送り機能をつけたいのでどうすればいいか探していたところ、PEARのPagerを使えばできるとわかりました。 しかしどうもうまくいきません。 Pagerのフォルダもきちんとアップロードしてやってみたのですがうまくいきません。 やりたいのは登録数300件のデータベースの検索結果で、10件ごとにページ送りします。ページ送りは検索結果の最下部におきたいです。 以下のソースのどこに加えればいいか教えていただけないでしょうか。 何度も試してみたんですが、ページ送りしてくれないのです。 よろしくお願いいたします。 <?php extract($_POST); 検索項目のフォーム×3 if($sig=="kb"){ mysql_connect('ほにゃらら','データベース名','パスワード'); mysql_select_db('データベース名'); 検索区分 //クエリの作成 $sql = "select * from データベースの項目 where "; if($wxxx<>""){ 省略 } //本検索 $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ print "検索結果なし"; exit; } else { echo "<b>", $rows, "</b>件HITしました<br />\n"; while($row = mysql_fetch_array($result)){ print("<table>"); print("<tr><td scope='row' rowspan='3'>".$row[""]."</font></td><td>タイトル</td>"); print("<td>".$row["title"]."</td></tr>"); print("<tr><td>項目A<td><td>".$row["koumokua"]."</td></tr>"); print("<tr><td>項目B</td><td>".$row["koumokub"]."</td></tr>"); print("</table>");} } } ?>

    • 締切済み
    • PHP
  • 検索結果の画像が表示されない

    <?php $con=mysql_connect(""); if(!$con){ echo ("MYSQLに接続失敗"); exit(); } else { echo ("#1=$con"); } mysql_query("SET NAMES eucjpms") or die("can not SET NAMES eucjpms"); $db=mysql_select_db(""); if(!$db) { echo ("DB選択失敗"); } else{ echo("DB選択OK!"); } $jyusyo=$_POST["jyusyo"]; $jyusyonum=array("豊岡市","養父市","朝来市","神戸市","姫路市"); $query = "select name,jyusyo,kakaku,gazou from ocdda where"; if($jyusyo != "") { $query = $query . " jyusyo like '%$jyusyo%' "; } $result = mysql_query($query); $num_rows=mysql_num_rows($result); if($num_rows== 0){ $message="該当データ無し"; } else $message=$num_rows ."件あります"; echo $message; while($row = mysql_fetch_array($result)){ // Loop through the array of score data, formatting it as HTML echo '<table>'; $i = 0; { // Display the score data echo '<tr><td class="scoreinfo">'; echo '<span class="kakaku">' . $row['kakaku'] . '</span><br />'; echo '<strong>会社名:</strong> ' . $row['name'] . '<br />'; echo '<strong>住所:</strong> ' . $row['jyusyo'] . '</td>'; if (is_file(GW_UPLOADPATH . $row['gazou']) && filesize(GW_UPLOADPATH . $row['gazou']) > 0) { echo '<td><img src="' . GW_UPLOADPATH . $row['gazou'] . '" alt="images" /></td></tr>'; } else { echo '<td><img src="' . GW_UPLOADPATH . 'ie.jpg' . '" alt="images" /></td></tr>'; } $i++; } echo '</table>'; mysqli_close($dbc); ?> <?php } ?> こちらでは表示されないのですが、 <?php require_once('appvars.php'); require_once('connectvars.php'); // Connect to the database $dbc = mysqli_connect(""); // Retrieve the score data from MySQL $query = "SELECT * FROM "; $data = mysqli_query($dbc, $query); // Loop through the array of score data, formatting it as HTML echo '<table>'; $i = 0; while ($row = mysqli_fetch_array($data)) { // Display the score data echo '<tr><td class="scoreinfo">'; echo '<span class="kakaku">' . $row['kakaku'] . '</span><br />'; echo '<strong>会社名:</strong> ' . $row['name'] . '<br />'; echo '<strong>住所:</strong> ' . $row['jyusyo'] . '</td>'; if (is_file(GW_UPLOADPATH . $row['gazou']) && filesize(GW_UPLOADPATH . $row['gazou']) > 0) { echo '<td><img src="' . GW_UPLOADPATH . $row['gazou'] . '" alt="image" /></td></tr>'; } else { echo '<td><img src="' . GW_UPLOADPATH . 'unverified.gif' . '" alt="Unverified kakaku" /></td></tr>'; } $i++; } echo '</table>'; mysqli_close($dbc); ?> こちらでは画像が表示されます。同じ階層でほぼ同じソースなのに何故前者のコードは画像が表示されないのでしょうか?

    • 締切済み
    • PHP
  • 検索結果を出すためには?(phpとmysql利用で)

    ある画像を押したら、検索結果が出る方法がわかりません。 たとえば、「A」「B」「C」の画像を作成しておき、「A」の画像を押したときにMYSQLで作成したデータベースの中から「A」だけ出す方法がわかりません。(画像からリンクする方法はわかります) 「A」という画像を押すと「akekka.php」を出すように作成したのですが、できません。知恵を貸してください。 <?php $sql= "select * from jyusyo where fuk = '愛媛県'"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>\n"; exit; } else { echo "<table border=\"1\">\n"; echo "<tr>\n"; echo "<th>詳細</th>\n"; echo "<th>登録日<br></th>\n"; echo "<th>府県名<br></th>\n"; echo "<th>住所<br></th>\n"; echo "<th>名前</th>\n"; echo "</tr>\n"; while($row = mysql_fetch_array($result)){ $id = $row["id"]; echo "<tr>"; echo "<a href=\"meisai.php?id=$id\">",$id,"</a>\n"; echo "</td><td>"; echo $row["sho"]; echo "</td><td>"; echo $row["day"]; echo "</td><td>"; echo $row["fuk"]; echo "</td><td>"; echo $row["jyu"]; echo "</td><td>"; echo $row["nam"]; echo "</td></tr>"; } echo "</table>\n"; } ?>

  • MySQLからのデータをページに10件ずつ表示したい

    はじめて質問させて頂きます。今回質問する内容に類似した質問が過去にかなりの件数がありましたが、どうしても解らず質問させて頂く事をお許し願います。 「名前のキーワード」と「年齢の幅」を入力するフォームから成る「form.html」とそのデータを受け取る「search.php」があります。 「search.php」は「名前」と「年齢」のデータが500件ほど格納されているデータベース名「database」からデータを取ってきて、10件ごとに表示をしたいのですが、うまく表示されません。私が書いた「form.html」と「search.php」は以下の通りです。 「form.html」---------------------------- <html> <head> <title>名前と年齢を検索するフォーム</title> </head> <body> <form method="post" action="search.php"> <input type="text" name="name"> <input type="text" name="age_min"> 歳 ~ <input type="text" name="age_max" > 歳 <input type="submit" name="submit" value="検索"> </form> </body> </html> ---------------------------------------- 「search.php」(SELECT文に名前には「あいまい検索」を、年齢には「BETWEEN」を使っています)--------------------------------- <? if (isset($_GET['pos'])){ $offset = $_GET['pos']; } else { $offset = 0; } $ln = 10; //DB接続 $conn = mysql_pconnect ("localhost", "username", "password") or die ('接続できませんでした'); mysql_select_db ("database",$conn); //クエリ生成 $sql = "select name,age from search where name like '%$name%' and age between '$age_min' and '$age_max' limit $offset,$ln"; $res = mysql_query($sql); $num_rows = mysql_num_rows($res); if($num_rows == 0) $message = "該当するデータはありません"; else $message = $num_rows . "件ヒットしました"; echo "検索結果<br>"; echo "$message"; //SELECTで取得したレコードを出力 while($row = mysql_fetch_array($res)){ echo "<table border='1' cellpadding='0' cellspacing='0'>"; echo "<tr>"; echo "<td>".$row[name]."</td>"; echo "<td>".$row[age]."</td>"; echo "</tr>"; echo "</table>"; } //[前へ]リンクの設定 $next_pos = $offset-$ln; if ($next_pos >= 0) { echo("<a href= ".$_SERVER['PHP_SELF']."?pos=$next_pos>[前へ]</a>"); } //[次へ]リンクの設定 $next_pos =$offset+$ln; $sql = "select * from search where name like '%$name%' and price between '$price_min' and '$price_max' limit $next_pos,$ln"; $res =mysql_query($sql); if (mysql_num_rows($res) > 0) { echo("<a href= ".$_SERVER['PHP_SELF']."?pos=$next_pos>[次ヘ]</a><br>"); } ?> ---------------------------------------------------------------- うまく表示されないというのは具体的に言いますと、例えば 検索結果が何百件あると想定される場合でも、いつも「10件ヒットしました」と表示され、その上[次ヘ]をクリックしても「該当するデータはありません」と表示されてしまいます。ちなみにエラー等は出ません。私が書いた上のコードは私なりに色々な参考ページを参照してのものなのですが。 どなたか、上のコードでおかしい箇所などご指摘頂けましたら、幸いでございます。どうぞアドバイスの程よろしくお願い致します。

  • MySQLからのデータをページに10件ずつ表示したい(訂正)

    先ほど同じ質問をしたのですが、訂正箇所があったので改めて質問致します。管理人様、前回の質問を削除頂きますようお願い致します。 「名前のキーワード」と「年齢の幅」を入力するフォームから成る「form.html」とそのデータを受け取る「search.php」があります。 「search.php」は「名前」と「年齢」のデータが500件ほど格納されているデータベース名「database」からデータを取ってきて、10件ごとに表示を したいのですが、うまく表示されません。私が書いた「form.html」と「search.php」は以下の通りです。 「form.html」---------------------------- <html> <head> <title>名前と年齢を検索するフォーム</title> </head> <body> <form method="post" action="search.php"> <input type="text" name="name"> <input type="text" name="age_min"> 歳 ~ <input type="text" name="age_max" > 歳 <input type="submit" name="submit" value="検索"> </form> </body> </html> ---------------------------------------- 「search.php」(SELECT文に名前には「あいまい検索」を、年齢には「BETWEEN」を使っています)--------------------------------- <? if (isset($_GET['pos'])){ $offset = $_GET['pos']; } else { $offset = 0; } $ln = 10; //DB接続 $conn = mysql_pconnect ("localhost", "username", "password") or die ('接続できませんでした'); mysql_select_db ("database",$conn); //クエリ生成 $sql = "select name,age from search where name like '%$name%' and age between '$age_min' and '$age_max' limit $offset,$ln"; $res = mysql_query($sql); $num_rows = mysql_num_rows($res); if($num_rows == 0) $message = "該当するデータはありません"; else $message = $num_rows . "件ヒットしました"; echo "検索結果<br>"; echo "$message"; //SELECTで取得したレコードを出力 while($row = mysql_fetch_array($res)){ echo "<table border='1' cellpadding='0' cellspacing='0'>"; echo "<tr>"; echo "<td>".$row[name]."</td>"; echo "<td>".$row[age]."</td>"; echo "</tr>"; echo "</table>"; } //[前へ]リンクの設定 $next_pos = $offset-$ln; if ($next_pos >= 0) { echo("<a href= ".$_SERVER['PHP_SELF']."?pos=$next_pos>[前へ]</a>"); } //[次へ]リンクの設定 $next_pos =$offset+$ln; $sql = "select name,age from search where name like '%$name%' and age between '$age_min' and '$age_max' limit $next_pos,$ln"; $res =mysql_query($sql); if (mysql_num_rows($res) > 0) { echo("<a href= ".$_SERVER['PHP_SELF']."?pos=$next_pos>[次ヘ]</a><br>"); } ?> ----------------------------------------------------------------------------------- うまく表示されないというのは具体的に言いますと、例えば 検索結果が何百件ある場合でも、いつも「10件ヒットしました」と表示され、その上[次ヘ]をクリック しても「該当するデータはありません」と表示されてしまいます。ちなみにエラー等は出ません。私が書いた上のコードは私なりに色々な参考ページを 参照してのものなのですが。どなたか、上のコードでおかしい箇所などご指摘頂けましたら、幸いでございます。どうぞアドバイスの程よろしくお願い致します。

  • phpとmysqlの検索システムを作成しているのですが

    半角英数字で検索すると、ちゃんと検索できるのですが、日本語や全角で検索しようとすると 接続ID=Resource id #2データベースを選択しました Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\php.php on line 54 検索結果 該当するデータはありませんでした 名前 メーカー Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\php.php on line 69 と出てしまいます。 phpのソース <html> <head> <title>検索結果</title> <meta http-equiv="Content-Type" content="text/html;charset=eucjp"> </head> <body> <?php $con=mysql_connect("","root",""); if(!$con){ echo ("MYSQL接続に失敗しました"); exit(); } else { echo ("接続ID=$con"); } mysql_query("SET NAMES sjis") or die("can not SET NAMES sjis"); $db=mysql_select_db("a05"); if(!$db) { echo ("データベースを選択できませんでした"); } else{ echo("データベースを選択しました"); } $name=$_POST["name"]; $meka=$_POST["meka"]; $mekanum=array("ミズノ","ヨネックス","ブリヂストン"); $meka=$mekanum[$meka]; $query = "select name,meka from test where"; if($name != "") { $query = $query . " name like '%$name%' "; } if($meka != ""){ $query = $query . " and meka like '%$meka%' "; } $result = mysql_query($query); $num_rows=mysql_num_rows($result); ?> <br>検索結果<br> <?php if($num_rows== 0){ $message="該当するデータはありませんでした"; } else $message=$num_rows ."件ヒットしました"; echo $message; ?> <br><table border=1><tr><td>名前</td><td>メーカー</td></tr><br> <?php while($row = mysql_fetch_array($result)):?> <tr><td><?php echo "$row[name]"; ?></td><td><?php echo "$row[meka]"; ?></td></tr> <? endwhile; ?> </table> <a href="html.html">再検索</a> </body> </html> htmlのソース <html> <head> <title>検索</title> <meta http-equiv="Content-Type" content="text/html;charset=eucjp"> </head> <body> <form method="POST" action="php.php"> <table border> <tr> <td height="30"><font size="5">&nbsp;ラケット名</font> <td height="30">&nbsp;<input type="text" name="name" size="40" maxlength="255"> </td></tr> </table> <table border> <tr> <tr> <td>メーカー</td> <td> <input type="radio" name="meka" value="ミズノ">ミズノ<br> <input type="radio" name="meka" value="ヨネックス">ヨネックス<br> <input type="radio" name="meka" value="ブリヂストン">ブリヂストン<br> <br> </td> </tr> </table> </SELECT> </td> </table> <input type="submit" name="submit" value="検索"> <input type="reset" value="条件クリア"> </tb> </body> </html> 分かる方がいたら教えていただきたいです、助言や指摘などありましたら、よろしくお願いします。

専門家に質問してみよう