繁体   English   中英

PHP MySQL查询到数组帮助

[英]PHP MySQL query to array help

我需要拉这样的查询

$result = mysql_query("
SELECT id, bid, text, link, orderid  
FROM blast_sl 
WHERE buuid = $bid 
ORDER BY orderid");

returns:
1,1,test1,http://test1.com,1
2,1,test2,http://test2.com,2

我需要的是再先进一点

mysql_fetch_array

因此,当该查询运行时,它将填充页面上的不同位置。 我将无法在页面中运行任何循环,因此我需要像这样进行设置。

$result[1][3] 

so $result [orderid][text]

这将拉动第一行的第一项。

test1

and $result[2][3] 

会拉

test2

谁能帮我吗?

$data = array();
while($row = mysql_fetch_assoc()) {
   $data[$row['id']] = $row;
}

会给你

$data = array(
    1 => array('id' => 1, 'bid' => 1, 'text' => 'test1', 'link' => 'http://test1.com', 'orderid' => 1,
    2 => array('id' => 2, .....),
    ...
)

您可以按照任何方式构建该数组,这只是一个示例。

您需要做的就是将数据提取到一个巨大的结果数组中:

$result = mysql_query("
SELECT id, bid, text, link, orderid  
FROM blast_sl 
WHERE buuid = $bid 
ORDER BY orderid");

$results=array();
while ($row=mysql_fetch_row($result))
{
    $results[$row[0]]=$row;
    // Uncomment next line to make $result[1][3] return 3rd rather than 4th item
    // array_unshift($results[$row[0]],''); // Adds a dummy value at the start of the array
}
$result=$results; //copy back into the $result var

而且你应该很好走。 请记住,数组将被索引为0而不是1。如果您确实需要$result[1][3]返回第3个元素而不是第4个元素,则需要进行一些奇特的循环和计数才能将其排序

您可以将参数MYSQL_NUMmysql_fetch_array函数中,这将允许您按索引引用记录列。

while($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf("ID: %s  Name: %s", $row[0], $row[1]);  
}

然后,创建数组

 while($row = mysql_fetch_array($result, MYSQL_NUM)) {
        $result [] =  $row;  
 }

$result[2][3] 

我想这就是你想要的。

mysql_query("SELECT orderid, text FROM blast_sl ORDER BY orderid");

抱歉,不是,但是我不确定您想要什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM