0

データベースから SKU を取得してページを作成するページがあります。URL の例: http://example.com/index.php?sku=1234567

このような URL を読み込むと、何も表示されません。出力したテーブルも表示されませんecho。以下は私のコードです:

$sku = $_GET['sku'];
$result = mysqli_query($conn, "SELECT productname, price, producturl, productimg, productdesc, sku FROM table WHERE sku=" . $sku);
while ($row = mysqli_fetch_array($result)) {
echo '<h3>test</h3>';

            echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><h4>'.$row["sku"].'</h4></td>
    <td><h3>'.$row["productname"].'</h3></td>
    <td rowspan="2"><img src="'.$row["productimg"].'" width="100%" alt="productimg"/></td>
  </tr>
  <tr>
    <td colspan="2" rowspan="2"><p>'.$row["productdesc"].'</p></td>
  </tr>
  <tr>
    <td><a class="button" href="'.$row["producturl"].'">View Product</a>    <a class="alert button" href="">No Match</a>    <a class="alert button" href="">Match</a></td>
  </tr>
</table>';
}

私は自分のデータベースに接続しており、そこに<?php?>タグがあります。この行を削除すると、遊んでいるときに気づきました:

while ($row = mysqli_fetch_array($result)) {

また、終了を削除すると、}機能しますが、データは表示されず、テーブルのみが表示されます。ここで何が起こっているのかわかりません。

4

4 に答える 4

2

単純。あなたのmysqli_query呼び出しはレコードを返しません。レコードが見つからないか、エラーがあります。コードをもう少し堅牢にします。

$sku = $_GET['sku'];
if ($result = mysqli_query($conn, ...)) {
    if (mysqli_num_rows($result) == 0) {
        echo "no skus found";
    } else {
        while ($row = mysqli_fetch_array($result)) {
            echo '<h3>test</h3>';
            ...
        }
    }
} else {
    echo "something went wrong: ".mysqli_error();
}

(補足として、パラメータ化されたクエリを使用してください。SQL インジェクションにさらされています。MySQLi はこれに対する魔法の弾丸ではありません。入力を検証/サニタイズする必要があります。)

于 2013-07-17T14:34:03.207 に答える
0

mysqli から i を削除しなければならなかった問題を解決できましたが、別のサイトで同じコードを使用しているため、サーバーまたはデータベースに関係している可能性があります。ここにコードがあります」

<?php
     $sku = $_GET['sku'];
       $objConnect = mysql_connect("host address","username","password") or die(mysql_error() . 'this is true death...');
    $objDB = mysql_select_db("database");
    $result = 'SELECT sku, productname, price, producturl, productimg, productdesc FROM table1 WHERE sku="' . $sku . '"';
$result = mysql_query($result);
while ($row = mysql_fetch_array($result)) {
    echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><h4>'.$row["sku"].'</h4></td>
    <td><h3>'.$row["productname"].'</h3></td>
    <td rowspan="2" width="30%"><img src="'.$row["productimg"].'" width="100%" alt="productimg"/></td>
  </tr>
  <tr>
    <td colspan="2" rowspan="2"><p>'.$row["productdesc"].'</p></td>
  </tr>
  <tr>
    <td><a class="button" href="'.$row["producturl"].'">View Product</a>    <a class="alert button" href="">No Match</a>    <a class="alert button" href="">Match</a></td>
  </tr>
</table>';
}
?>
于 2013-07-18T07:33:12.720 に答える