Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql结果数组搜索_Php_Mysql - Fatal编程技术网

Php Mysql结果数组搜索

Php Mysql结果数组搜索,php,mysql,Php,Mysql,我在bd上看到了这个专栏 $result = mysql_query("SELECT short FROM textos"); 我试图根据它返回的数组只回显其中一个结果: $col = mysql_fetch_assoc($result); echo "<b>Short:</b>".$col[1]."<br/>"; $col=mysql\u fetch\u assoc($result); echo“Short:”.$col[1]。“”; 显然,这个$c

我在bd上看到了这个专栏

$result = mysql_query("SELECT short FROM textos");
我试图根据它返回的数组只回显其中一个结果:

$col = mysql_fetch_assoc($result);

echo "<b>Short:</b>".$col[1]."<br/>";
$col=mysql\u fetch\u assoc($result);
echo“Short:”.$col[1]。“
”;

显然,这个$col数组不能通过这种方式访问。应该怎么做?感谢访问第一个元素,请使用
$col[0]['short']

如果您只想以任何方式输出一个元素,您可以向MySQL查询添加
LIMIT 1


查询后,您应该检查结果数组是否已设置,否则php将抛出一个错误,说明未设置
$col[0]['short']

要访问第一个元素,请使用
$col[0]['short']

如果您只想以任何方式输出一个元素,您可以向MySQL查询添加
LIMIT 1


在查询之后,您应该检查结果数组是否已设置,否则php将抛出一个错误,说明未设置
$col[0]['short']]

这已经在上面的注释中说明过了,所以这里只做一点解释

mysql\u fetch\u assoc
为您检索一个显示为关联数组的结果行(其中键是字段名,值是字段值)。您的查询只返回一个字段(即
short
),但它仍然不会使您的行成为单个标量值—它仍然是一个数组,只有一个元素

因此,您需要将其称为
$row['short']
,或者在示例中称为
$col['short']

请记住,查询可能不会返回任何结果-您可以通过检查返回的值是否不是数组而是标量
false
,了解到这一点,例如

if ($col === false) {
    echo 'Error occured<br/>';
} else {
    echo "<b>Short:</b>".$col['short']."<br/>";
}
if($col==false){
echo“出现错误
”; }否则{ echo“Short:.$col['Short'].“
”; }

LIMIT
像注释建议的那样放入查询也是一个好主意,因为当您实际上只需要一行数据时,您不会返回潜在的大量数据。尽管如此,结果仍然是一个多维数组,因此该部分不会改变。

这已经在上面的评论中说明过,所以这里只做一点解释

mysql\u fetch\u assoc
为您检索一个显示为关联数组的结果行(其中键是字段名,值是字段值)。您的查询只返回一个字段(即
short
),但它仍然不会使您的行成为单个标量值—它仍然是一个数组,只有一个元素

因此,您需要将其称为
$row['short']
,或者在示例中称为
$col['short']

请记住,查询可能不会返回任何结果-您可以通过检查返回的值是否不是数组而是标量
false
,了解到这一点,例如

if ($col === false) {
    echo 'Error occured<br/>';
} else {
    echo "<b>Short:</b>".$col['short']."<br/>";
}
if($col==false){
echo“出现错误
”; }否则{ echo“Short:.$col['Short'].“
”; }

LIMIT
像注释建议的那样放入查询也是一个好主意,因为当您实际上只需要一行数据时,您不会返回潜在的大量数据。尽管如此,结果仍然是一个多维数组,因此该部分不会改变。

有三个mysql_fetch函数用于获取行:

  • mysql\u fetch\u array()获取一个包含两个索引(数字和关联)的数组
  • mysql\u fetch\u num()获取具有数字索引的数组
  • mysql\u fetch\u assoc()获取具有关联索引的数组
在您的示例中,对于函数mysql\u fetch\u array(),您将得到一个与此类似的数组:

$statement='selectshortfromtextos';
$result=mysql\u result($statement);
如果($结果){
while($row=mysql\u fetch\u assoc($result)){
var_dump($row);//或echo“Short:”$row['Short']。“
”或您希望对上述语句的行执行的其他操作 } }
有三个mysql\u获取函数用于获取行:

  • mysql\u fetch\u array()获取一个包含两个索引(数字和关联)的数组
  • mysql\u fetch\u num()获取具有数字索引的数组
  • mysql\u fetch\u assoc()获取具有关联索引的数组
在您的示例中,对于函数mysql\u fetch\u array(),您将得到一个与此类似的数组:

$statement='selectshortfromtextos';
$result=mysql\u result($statement);
如果($结果){
while($row=mysql\u fetch\u assoc($result)){
var_dump($row);//或echo“Short:”$row['Short']。“
”或您希望对上述语句的行执行的其他操作 } }
$col[0]['short'],您可以在查询中添加
LIMIT 1
,您应该检查结果数组是否已设置。看起来您需要的是mysql_fetch_数组:,第一个索引是0,而不是1基本调试已就绪,并将立即显示答案。当你没有得到你想要得到的值,或者没有定义数组键时,用
var\u dump($col)
$col[0]['short']检查结构,你可以将
LIMIT 1
添加到查询中,你应该检查结果数组是否被设置。看起来你需要用mysql\u fetch\u数组代替:,第一个索引是0,而不是1。基本调试在这里是有序的,并且会立即给出答案。当您没有得到期望得到的值,或者数组键未定义时,请使用
var\u dump($col)
检查结构,谢谢!!很好的解释。但我最终得到了一个错误:未定义offet:0。我运行了var_dump,得到了数组中想要的文本,但为了响应它,我遇到了这个问题。你知道为什么吗?嗯?我可能已经老了,但是iirc mysql_fetch_assoc得到的是一行(带有关联索引),而不是一个行数组。iRas,是的,你完全正确!我现在为答案被接受而感到羞愧。我现在就编辑。安德烈,我已经编辑了我的答案-对不起,