6

これは非常に簡単です。編集:質問を更新し、4番目のエコーを追加しました。

PHPコードは次のとおりです。

<?php

$ratings="3";
$item="Inception";

$query="SELECT * FROM items WHERE item = '". $item ."' LIMIT 1";

echo $query;

echo "<br />";

$result=mysql_query($query);

echo $result;

echo "<br />";

while ($row = mysql_fetch_array($result)) { 
    $item_id = $row['item_id'];
    echo $item_id;
    echo "<br />";
 }  

  $query_two = "INSERT INTO ratings (rating, item_id), VALUES (' {$ratings} ', ' {$item_id} ')";

  echo $query_two;
  $sql = mysql_query($query_two);
  mysql_close();
?>

これがすべてのエコーを含むWeb出力です。

SELECT * FROM items WHERE item = 'Inception' LIMIT 1
Resource id #7


INSERT INTO ratings (rating, item_id), VALUES (' 3 ', ' ')

$ item_idが空白になるのはなぜですか?(リソースIDの下の3行目)

4

6 に答える 6

5

コードのこの部分はそれを生成します:

$result=mysql_query($query);

echo $result;

リソースResource...タイプであるため、クエリ用の特別なハンドラーの一種であり、通常のタイプ(stringまたはintなど)とは異なるため、印刷できるものは何もありません。

クエリからデータを出力したい場合は、まずそれを取得する必要があります。

また、これらのmysql_*関数は推奨されていないことに注意してください。使用しないことをお勧めします。PHPマニュアルからのメモ:

この拡張機能の使用はお勧めできません。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。詳細については、MySQL: API ガイドの選択および関連する FAQ も参照してください。この機能の代替手段は次のとおりです。

mysqli_query()

PDO::クエリ()

于 2012-06-20T16:18:20.127 に答える
4

これは、データベースの ID とは関係ありません。

この ( Result#7) は、この結果リソースが php スクリプトの実行によって作成される 7 番目のリソースであることを示しています。

于 2012-06-20T16:17:51.087 に答える
3

また

$query_two = "INSERT INTO ratings (rating, item_id), VALUES (' {$ratings} ', ' {$item_id} ')";

する必要があります

$query_two = "INSERT INTO ratings (rating, item_id) VALUES (' {$ratings} ', ' {$item_id} ')";

の前にコンマがありますVALUES

また、それ$item_idは空白のようです。のデータがあるかどうかDBを確認してくださいitem = 'Inception'

に関しては、Result#7他の人の答えに従ってください。

于 2012-06-20T16:20:44.460 に答える
2

リソース ID は、MySQL クエリである実際のプロセス/オブジェクトから取得されます。

必要な結果を返すには:

$row = mysql_fetch_array( $query );

echo $row['item']
于 2012-06-20T16:19:01.877 に答える
2

結果リソースで何かをする必要があります。これを試して:

$result=mysql_query($query);

//echo $result;

$result_array = mysql_fetch_assoc( $result );

print_r( $result_array );

編集:質問を更新しました。

クエリを MySQL で直接実行してitem='Inception'、結果が期待どおりであることを確認する必要があります。

于 2012-06-20T16:19:40.193 に答える
1

単純な結果をエコーすることはできません。結果をたとえば配列にフェッチする必要があります。

while ($row = mysql_fetch_array($query)) {
  echo $row['a_column'] . "<br />";
}

またはオブジェクト:

while ($variable = mysql_fetch_object($query) {
 $value = $variable->a_column;
}
echo $value;

他にも方法はありますが、これは 2 つの例にすぎません

于 2012-06-20T16:22:49.673 に答える