Php 查询多个mysql行并在之后分离为变量?
我试图从数据库中选择多行,然后将这些行分隔为数组值,以便在整个代码中使用它们 这就是我现在拥有的Php 查询多个mysql行并在之后分离为变量?,php,mysql,Php,Mysql,我试图从数据库中选择多行,然后将这些行分隔为数组值,以便在整个代码中使用它们 这就是我现在拥有的 $result = mysql_query("SELECT url, image, placement FROM advert WHERE user='1'") or die(mysql_error()); //This grabs 3 rows with placement name equal to 'sideadtop','sideadmiddle','sideadbottom' ($
$result = mysql_query("SELECT url, image, placement FROM advert
WHERE user='1'") or die(mysql_error());
//This grabs 3 rows with placement name equal to 'sideadtop','sideadmiddle','sideadbottom'
($row = mysql_fetch_array($result, MYSQL_NUM));
$keytop = array_search('sideadtop', $row);
$sideadtop['url'] == $row[$keytop]['url'];
$sideadtop['image'] == $row[$keytop]['image'];
$keymiddle = array_search('sideadmiddle', $row);
$sideadmiddle['url'] == $row[$keymiddle]['url'];
$sideadmiddle['image'] == $row[$keymiddle]['image'];
我正在尝试获取每个广告放置值的url和图像值。我不确定mysql查询的输出是如何发送到php的。它是作为多维数组发送还是仅作为数组发送
我应该调用单独的MySQL查询,还是有一种简单的方法来调用多行,然后将它们分开?调用MySQL\u fetch\u assoc/MySQL\u fetch\u数组将获得一行数据。然后,您可以迭代此操作,以获取所有行 我倾向于使用mysql\u fetch\u assoc,以实现性能的小幅度提高 例如
我还会考虑您希望结果数据的结构如何,但您应该了解要点。
mysql\u fetch.*
将只获取一行。我想你想要的是:
$result = mysql_query("SELECT url, image, placement FROM advert WHERE user='1'")
or die(mysql_error());
$adverts = array();
while(($row = mysql_fetch_assoc($result))) {
$adverts[$row['placement']] = $row;
}
它将创建一个如下所示的数组:
Array(
'sideadtop' => Array(
'url' => ...,
'image' => ...,
'placement' => ...
),
'sideadmiddle' => Array(...),
'sideadbottom' => Array(...)
)
您可以使用$adverts['sideadtop']
,$adverts['sideadmidle']
等访问单个广告
在我看来,这是一种比为每个元素创建变量更好的方法。(a)您没有分配任何内容。作业通过
=
完成。(b) 这段代码似乎不起作用:$row
只包含结果集中的一行。它是一个一维数组,其中每个条目表示该行的一列。因此,$row[$keytop]['url']
永远无法工作。请告诉我们您的数据库结构以及$row
的结构。谢谢Felix,这正是我需要的。我不知道我可以将列的id放入数组中。这很好用。@Tianbo84:不客气:)如果您还不太熟悉数组,我建议您阅读。这给出了所有可能性的一个很好的概述。
Array(
'sideadtop' => Array(
'url' => ...,
'image' => ...,
'placement' => ...
),
'sideadmiddle' => Array(...),
'sideadbottom' => Array(...)
)