-2

レコード内の別の値が指定した値と一致するレコードから 1 つのフィールド値を選択したいと考えています。

「SKU」は一意であり、PK ではありませんが、一意です。テーブルから 1 つのフィールド (コード) のみを選択するため、変数 $gemCode にはその 1 つの値のみが含まれている必要があります。ただし、エコーでは、以下のコードのようなものは出力されないか、フィールド「$gemCode['Code']」を指定すると、今まで見たことのない「リソース ID #8」が表示されます。

$gemCode = mysql_query("SELECT Code FROM stock WHERE SKU = 'TN-YKJI-ESWB'");

        echo "Gem Code: ".$gemCode."<br>";

このコードは、SKU 値を取得するファイルの各行に対してループしています。コードにはループが含まれていませんが (ファイルから取得された変数など)、出力は得られますが、「リソース ID #8」の番号は 8 から始まるループごとに増加します。

Gem Code: Resource id #8
Gem Code: Resource id #9
Gem Code: Resource id #10
Gem Code: Resource id #11
Gem Code: Resource id #12
Gem Code: Resource id #13
Gem Code: Resource id #14
Gem Code: Resource id #15

テーブル内のデータの後にスペースがあるため、「LIKE '%value%'」が必要になる前に問題がありましたが、チェックしたところ、問題の値にこれがないため、私のようではありません技術的に存在しない値から探しています。

私が持っていることにも言及する必要があります:

$conn = mysql_connect('localhost', 'root', '');         
mysql_select_db('amazondb', $conn);

私は本当に困惑しています。場所を選択するだけだと思っていました。

どんな助けでも大歓迎です、ありがとう - トム

4

3 に答える 3

0

データを取得する必要があります。

$gemData = mysql_query("SELECT Code FROM stock WHERE SKU = 'TN-YKJI-ESWB'");
$gemInfo = mysql_fetch_assoc($gemData);
    echo "Gem Code: ".$gemInfo['Code']."<br>";
于 2013-11-13T22:56:40.423 に答える
0

結果をデータベース化したい場合は、mysql_fetch_assoc($gemCode) を使用する必要があります。

$gemCode = mysql_query("SELECT Code FROM stock WHERE SKU = 'TN-YKJI-ESWB'");
$gemArr = mysql_fetch_assoc($gemCode);

print_r($gemArr);

しかし、「それがあなたのやり方だ」のアウトサイダーは、mysqlの代わりにmysqli_を使用することを実際に検討する必要があります。そして、あなたがPDOを学ぶことに挑戦しているなら、それを試してみるべきです (そうです、mysqli_ の上でも)。

于 2013-11-13T22:55:01.230 に答える
0

前の回答を補足すると、mysql_query()は文字列ではなくリソースを返します。

ループから mysql_query を削除し、"...WHERE SKU IN ('TN-YKJI-ESWB', 'yourSecondKey', ..., 'yourNKey')" を使用して、以下を確認することをお勧めします。

  • mysql_result()
  • mysql_fetch_row()
  • mysql_fetch_array()
  • mysql_fetch_assoc()
  • mysql_fetch_object()

php.netマニュアルで。

于 2013-11-13T23:09:07.600 に答える