※ ChatGPTを利用し、要約された質問です(原文:PHP & MySQL 抽出したデータの1番目が出力されない)
PHP & MySQL 抽出したデータの1番目が出力されない
このQ&Aのポイント
学校の課題で、PHP & MySQLを使ってウェブを作っています。
BBTapahtumaテーブルからJas_nroをキーにデータを抽出して、Tap_nroとTap_nimiを降順に出力します。
表示されるのは4件(Tap_nro: 8-7-6-1)で、一番初めにくるべきデータが出てきません。
PHP & MySQL 抽出したデータの1番目が出力されない
学校の課題で、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>";
?>
お礼
ありがとうございます。 ご指摘のあった箇所を外したら正常の件数が出力されたので、データがない分に関しては、別の判定方法に置き換えました。 これで、先に進めます。