mysql选择单列作为PHP中的单维数组

问题描述 投票:4回答:5

我从我的mysql数据库中选择了一个列:

$savedSQL = 'SELECT can_id FROM savedsearches WHERE user_id = "'.mysql_real_escape_string($user_id).'" AND insertTime >= "'.$lastSigTime.'"';
$savedQuery = mysql_query($savedSQL);

我想将值作为单个维度,枚举数组返回,使得array [0] = row1,array [1] = row2等。

当我把它放入这样的数组:

while($savedResult = mysql_fetch_array($savedQuery))
    {   $savedArray[] = $savedResult;   }

它将它作为多维数组返回,以便数组[0] [0] = row1,array [1] [0] = row2等。

我想添加这样的东西:

while($i=0;$i<count($savedArray);$i++)
{
 $newSavedArray[$i] = $savedArray[$i][0]
}

但有没有更简单,更有效的方法来实现这一目标?

php mysql sql arrays
5个回答
10
投票

你很近。您只需要访问$savedResult[0]来检索您的列,并将其附加到$savedArray

while($savedResult = mysql_fetch_array($savedQuery)) {
  $savedArray[] = $savedResult[0];
}

2
投票
while($savedResult = mysql_fetch_array($savedQuery)) {   
     $savedArray[] = $savedResult['can_id'];   
} 

1
投票

尝试

$savedArray[] = $savedResult['can_id'];

代替

$savedArray[] = $savedResult;

1
投票

这是一个mysqli和没有循环的方法。它将您的所有代码仅限于两行。

$r = mysqli_query($c,'SELECT can_id FROM savedsearches WHERE user_id = "'.mysql_real_escape_string($user_id).'" AND insertTime >= "'.$lastSigTime.'"');
$savedArray = array_column(mysqli_fetch_all($r,MYSQLI_ASSOC),"can_id");

0
投票

当你最初得到mysql的结果时,你可以将两个while循环的内容合并为一个:

while($result = mysql_fetch_array($savedQuery)) {
    $savedArray[] = $result[0]; // or $result['can_id']
}
© www.soinside.com 2019 - 2024. All rights reserved.