-2

我想从记录中的另一个值与我指定的值匹配的记录中选择一个字段值。

“SKU”是独一无二的,不是PK,而是独一无二。我从表中只选择了一个字段(代码),所以变量 $gemCode 应该只包含那个 1 值。然而,在回显中,它要么不输出任何类似于以下代码的内容,要么如果我指定了字段“$gemCode['Code'],它只会喷出我以前从未见过的“Resource 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);

我真的很难过,我认为这只是一个简单的选择。

非常感谢任何帮助,谢谢-Tom

4

3 回答 3

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);

但是,“这就是你如何做到的”,你应该真正考虑使用mysqli_而不是 mysql。而且,如果您能够应对学习PDO的挑战,您应该尝试使用它(是的,甚至超过 mysqli_)。

于 2013-11-13T22:55:01.230 回答
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_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 回答