学校の課題で、PHP & MySQLを使ってウェブを作っています。
BBTapahtumaテーブルからJas_nroをキーにデータを抽出して、Tap_nroとTap_nimiを降順に出力します。
実行してもエラーはでません。現在BBTapahtumaには10件、該当Jas_nroのレコード数は5件(Tap_nro:10-8-7-6-1)ですが、表示されるのは4件(Tap_nro: 8-7-6-1)で、一番初めにくるべきデータが出てきません。where Jas_nro=$no を外し全レコード抽出(Tap_nro: 9-8-7-6-5-4-3-2-1)したり、order by Tap_nro desc を外して昇順(Tap_nro: 6-7-8-10)にしても、やはり1件目に当たるデータが出力されません。
$_SESSION['no']=$noは「1」が入っており、MySQL consoleで「select * from BBTapahtuma where Jas_nro=1 order by Tap_nro desc;」を実行すると、5件出てくるのでその次の出力の方に誤りがあるのだと思います。
テーブルは下記の3項目。テーブルを閉じた後に Lisa (別ページへのリンクボタン)があります。
Tap_nro, Tap_nimi, Lisatietoja(各データの詳細へのリンクボタン)
ソースは次の通りです。どこに間違いがあるのか見つけられません。よろしくお願いいたします。
<?php
$host="localhost";
$user="xxxx";
$password="xxxx";
$dbname="bb";
$yhteys = mysqli_connect($host, $user, $password, $dbname);
$no = $_SESSION['no'];
$sql = "select * from BBTapahtuma where Jas_nro=$no order by Tap_nro desc";
if(!$tulos=mysqli_query($yhteys, $sql))
{
echo "error";
exit;
}
if(!$row=mysqli_fetch_array($tulos, MYSQLI_BOTH))
{
echo "tiedot eivat ole tietokannassa.";
}
echo "<table border=0>";
echo "<tr><td>Numero   </td><td>Tapahtuman nimi   </td><td></td></tr>";
while($row=mysqli_fetch_array($tulos, MYSQLI_BOTH)){
echo "<tr>";
echo "<td>". $row['Tap_nro'] ."</td>";
echo "<td>". $row['Tap_nimi'] ."</td>";
echo "<form action='omatkeikkatiedot11.php' method='POST'>";
echo "<span class='button'><input type=hidden name=Tap_nro value=". $row['Tap_nro'] .">";
echo "<td><input type=submit name=lisa id=lisa value='Listietoja'></td></form></span></tr>";
}
echo "</table>";
echo "<br><br>";
echo "<form action=omatkeikkatiedot2.php method=POST>";
echo "<div class='button'><input type=hidden name=Jas_nro value=". $row['Jas_nro'].">";
echo "<input type=submit name='Lisaa' id='laheta' value ='Lisaa'>";
echo "</div></form>";
?>
No.1ベストアンサー
- 回答日時:
if(!$row=mysqli_fetch_array($tulos, MYSQLI_BOTH))
{
echo "tiedot eivat ole tietokannassa.";
}
ここでデータポインタが進んでいるからでしょう。
ループ処理の前にポインタを先頭に戻してもよいですが、結果の有無を調べるだけならmysqli_num_rows()で件数を取得、判定すればよいかと思います。
ありがとうございます。
ご指摘のあった箇所を外したら正常の件数が出力されたので、データがない分に関しては、別の判定方法に置き換えました。
これで、先に進めます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
switch()文で値の大小比較
-
Dosブロンプトでtabを出力したい
-
shシェルスクリプト 空白行の...
-
phpでcookieがうまく保存されない
-
PHPで値を表示する「echo」「pr...
-
バッチファイルでpingの結果を...
-
バッチファイルで、全てのウィ...
-
ウイルスもどき
-
bashの関数の引数にスペースが...
-
PHPで訪問回数を表示するカウン...
-
PHPにて変数をテキストファイル...
-
$_POST,$_GETの値が空...
-
pdftkを使った処理をバッチファ...
-
PHPでの分岐
-
全角を半角にして、整数か小数...
-
PHPでのパスワード制限のセキュ...
-
小数点以下0の非表示
-
syntax error, unexpected 'ech...
-
1週間カレンダー
-
配列の値を可変変数を用いて取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
phpでcookieがうまく保存されない
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
syntax error, unexpected 'ech...
-
findstrのerrorlevel
-
バッチファイルで、全てのウィ...
-
PHPで訪問回数を表示するカウン...
-
PHP一覧表示した項目にリンクを...
-
DBのハッシュ化したパスワード...
-
小数点以下0の非表示
-
Windowsのsetコマンドでの小数...
-
オブジェクトの中身の判定(PHP)
-
bashの関数の引数にスペースが...
-
PHPでのパスワード制限のセキュ...
-
RSSにdiv,ul classを付けたいの...
-
pdftkを使った処理をバッチファ...
-
ゼロとNULLを区別して number_f...
-
コマンドプロンプト フォルダ内...
おすすめ情報