Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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 搜索数组以查找相应的值_Php_Arrays - Fatal编程技术网

Php 搜索数组以查找相应的值

Php 搜索数组以查找相应的值,php,arrays,Php,Arrays,全部,, 我试图编写一个sql语句,如下所示: $sql = "Select id, rating from ratings"; $result = mysql_query($sql); $resultset = mysql_fetch_array($result) $sql = "SELECT id, rating FROM ratings WHERE id = '$myID'"; 所以resultset会有数据库结果(有时会有50多个结果)。我试图做的基本上是在数组中搜索一个值,如果它在

全部,, 我试图编写一个sql语句,如下所示:

$sql = "Select id, rating from ratings";
$result = mysql_query($sql);
$resultset = mysql_fetch_array($result)
$sql = "SELECT id, rating FROM ratings WHERE id = '$myID'";
所以resultset会有数据库结果(有时会有50多个结果)。我试图做的基本上是在数组中搜索一个值,如果它在id列中找到该值,它将回显与该行关联的评级

做这件事的好方法是什么

谢谢

foreach($resultset as $result){
  if($result['id'] == $searchId){
    echo $result['rating']."\r\n";
  }
}
其中$searchId是您正在搜索的id


其中,$searchId是您正在搜索的id。

在sql语句中使用Where子句仅返回所需的行

$sql = "Select id, rating from ratings Where id = '<the id you want>'";
$sql=“选择id,从id=''的评级中进行评级”;

在sql语句中使用WHERE子句仅返回所需的行

$sql = "Select id, rating from ratings Where id = '<the id you want>'";
$sql=“选择id,从id=''的评级中进行评级”;

如果您只关心特定的ID评级行,则无需获取所有ID评级,请将SQL更改为如下所示:

$sql = "Select id, rating from ratings";
$result = mysql_query($sql);
$resultset = mysql_fetch_array($result)
$sql = "SELECT id, rating FROM ratings WHERE id = '$myID'";
其中,
$myID
是要获取的特定行的ID值

编辑:如果要获取多个ID,可以使用如下查询:

$sql = "SELECT id, rating FROM ratings WHERE id IN (value1,value2,...)

如果您只关心一个特定的ID评级行,则无需获取所有这些行,请将SQL更改为如下所示:

$sql = "Select id, rating from ratings";
$result = mysql_query($sql);
$resultset = mysql_fetch_array($result)
$sql = "SELECT id, rating FROM ratings WHERE id = '$myID'";
其中,
$myID
是要获取的特定行的ID值

编辑:如果要获取多个ID,可以使用如下查询:

$sql = "SELECT id, rating FROM ratings WHERE id IN (value1,value2,...)


如果您找到了结果,最好以一个中断结束循环;)你的情况总是很糟糕true@Hannes,不,这取决于$searchId@Isiscode你是对的,但是当你找到想要的项目时,你可以休息一下,以避免像matzino建议的那样遍历数组中的所有项目:P@user1048676:
mysql\u fetch\u array
仅将结果集的第一行作为关联数组返回(就像您找到的一样)。
mysql\u query
返回实际的结果集。您必须在结果集上循环:
while($row=mysql\u fetch\u array($result))
如果您找到了结果,最好以中断结束循环;)您的条件总是true@Hannes,不,这取决于$searchId@Isiscode你是对的,但是,当您找到想要的项时,您可以暂停,以避免像matzino建议的那样遍历数组中的所有项:P@user1048676:
mysql\u fetch\u array
仅将结果集的第一行作为关联数组返回(就像您找到的那样)
mysql\u query
返回实际结果集。您必须在结果集上循环:
while($row=mysql\u fetch\u array($result))
只需使用where。。。只要用在。。。我只想调用数据库一次,因为我想搜索50次这样的值。我想我应该尝试在一次调用中从数据库获取数组中的所有数据,而不是每次都检查数据库。我认为这样会更快。@user1048676如果您想查找一个值(具有给定ID的特定值)50次,您仍然希望在查询中使用WHERE子句。谢谢,我知道这一点。我基本上有另一个foreach循环,其中包含我需要在数据库中看到的值。我不想对数据库进行50次不同的调用来搜索一个新的ID。我想我只需要获取所有数据,然后在数组中循环即可。它可能比多次访问数据库更快。是的,但是如果您知道ID,您仍然可以只获取WHERE to fetch多个值中带有IN子句的ID。让我为您更新答案。我只想调用数据库一次,因为我想搜索50次这样的值。我想我应该尝试在一次调用中从数据库获取数组中的所有数据,而不是每次都检查数据库。我认为这样会更快。@user1048676如果您想查找一个值(具有给定ID的特定值)50次,您仍然希望在查询中使用WHERE子句。谢谢,我知道这一点。我基本上有另一个foreach循环,其中包含我需要在数据库中看到的值。我不想对数据库进行50次不同的调用来搜索一个新的ID。我想我只需要获取所有数据,然后在数组中循环即可。它可能比多次访问数据库更快。是的,但是如果您知道ID,您仍然可以只获取WHERE to fetch多个值中带有IN子句的ID。让我为你更新答案。