0

ユーザーがアイテムページのアイテムをクリックすると、$ _ GETを使用して空白のページテンプレートに移動し、アイテムのブランドとモデルを渡します。

そのユーザーがクリックして空白のページにデータベースの製品の詳細を入力したときに、別のMYSQLクエリを実行したいと思います。モデル番号(一意のID)を使用して単一の行を取得し、ページに情報を入力したいと思います。私はいくつかのことを試しましたが、少し問題があります。

私の空白のアイテムページに、私は持っています

                $brand = $_GET['Brand'];
                $modelnumber = $_GET['ModelNumber'];

                $query = mysql_query("SELECT * FROM items WHERE `Model Number` = '$modelnumber'");
                $results = mysql_fetch_row($query);

                echo $results;

モデル番号の周りに''があると問題が発生すると思いますが、それがないと警告が表示されます。mysql_fetch_row()は、パラメーター1がリソースであり、ブール値のエラーが発生することを想定しています。

私のデータベースの列は次のようになります

ブランド| モデル番号| 価格| 説明| 画像

私が試した他のいくつかのことは次のとおりです

$query = mysql_query("SELECT * FROM item WHERE Model Number = $_GET['ModelNumber']");

構文エラーが発生しました。また、$ _ GETを連結してみました。これにより、mysql_fetch_row()はパラメーター1がリソースであると想定し、ブール値でエラーが発生します。

これは、私も結果を誤って表示しようとしていると私に信じさせます。データベース内のすべてのアイテムを表示する前のページのように、whereループに入れる必要があるかどうかはわかりません。これは、1つだけを表示しているためです。

4

3 に答える 3

0

あなたの「結果」は、単一の変数に対してあまりにも多くの情報を引き込んでいるようです。また、テーブルの列名にスペースを含める必要はないと思います。すべてダッシュまたはアンダースコアで埋めることをお勧めします。

これが私の提案です:

$qry = mysql_query("SELECT * FROM items WHERE Model_Number = '$modelnumber'"); //REMEMBER TO MAKE THE CHANGE "Model Number" -> "Model_Number"
while($row = mysql_fetch_array($qry)){
    $brand = $row['Brand'];
    $modelnumber = $row['Model_Number'];
    $price = $row['Price'];
    $description = $row['Description'];
    $image = $row['Image'];
}

これにより、これらのすべての変数に、テーブルにあるものは何でも入力されます。

于 2012-12-11T23:01:50.183 に答える
0

mysql_fetch_row を使用している場合は、フェッチされた行に対応する文字列の数値配列のみを返します。行がそれ以上ない場合は FALSE を返しますhttp://php.net/mysql_fetch_row

その行内のデータを取得する必要がある場合。mysql_fetch_array() を使用する必要があります

mysql_error(); も試してみてください。

 $results = mysql_fetch_row($query) or die(mysql_error());

コードによって生成されるエラー出力が表示されます

于 2012-12-11T23:09:09.627 に答える
0

まず、質問に対する最初のコメントに注目してください。PDOまたはMysqliが優先されますが、少なくともmysql_real_escape_stringなどの何らかのサニテーションを追加することは間違いありません。

第二に、あなたの質問に対する本当の答えを得る前に、あなたのエラーについてもう少し情報を得ましょう。

次のことを試してください。

$brand = mysql_real_escape_string($_GET['Brand']);
$modelnumber = mysql_real_escape_string($_GET['ModelNumber']);

$query = mysql_query("SELECT * FROM items WHERE `Model Number` = '$modelnumber'")OR die(mysql_error());
$results = mysql_fetch_row($query);

var_dump($results);

mysql_error は、舞台裏で何が起こっているかを教えてくれます。

于 2012-12-11T23:00:40.410 に答える