-2

我想输出查询的结果,以便格式与以下内容相同:

$links = array(
'Link 1' => '/link1',
'Link 2' => '/link2'
);

所以查询是

$query = "SELECT * FROM link";
$result = mysql_query($query, $connection) or die(mysql_error());
$row = mysql_fetch_assoc($result)

需要输出的字段有:

$row['link_title'] and $row['url']
4

3 回答 3

1

这可能比期望或必要的要复杂一些,但这对您有用吗:

$a = 0;
while ($row = mysql_fetch_assoc($result)) {
    foreach ($row as $k => $v) {
        // Assumes table column name is 'link_title' for the link title
        if ($k == 'link_title') {$title[$a] = $v;} 
        // Assumes table column name is 'url' for the URL
        if ($k == 'url') {$url[$a] = $v;}
    }
    $a++;
}
$i = 0;
foreach ($title as $t) {
    $links[$t] = $url[$i];
    $i++;
}
print_r($links);

正如@Class 所说,如果link_title'永远不会重复,那么您可以执行以下操作:

while ($row = mysql_fetch_assoc($result)) {
    $array[$row['link_title']] = $row['url'];
}

由于link_title' 是唯一的两个进程输出:

Array ( 
    [Moxiecode] => moxiecode.com 
    [Freshmeat] => freshmeat.com 
)

数据库表+内容:

id | link_title |     url       |
---+------------+---------------|
1  | Moxiecode  | moxiecode.com |
---+------------+---------------|
2  | Freshmeat  | freshmeat.com |
于 2013-01-29T02:33:41.783 回答
0

您是否正在寻找这样的东西:

$links = array();
while(foo){
    $links[$row['link_title']] = $row['url'];
}

或者,如果标题与上面的示例相同,您可以使用可能导致覆盖的

$link = array();
$title = array()
while($row = mysql_fetch_assoc($result)){
    array_push($title, $row['link_title']);
    array_push($link, $row['url']);
}

$links = array_combine($title, $link);

也使用 PDO 或 mysqli 函数 mysql 已弃用。这是PDO的教程

编辑:示例:http ://codepad.viper-7.com/uKIMgp我不知道如何使用数据库创建示例,但它足够接近。

于 2013-01-29T02:16:46.297 回答
0

你想呼应数组的结构吗?

foreach ($Array AS $Values => $Keys)
{
 echo "Array Key: <b>". $Keys ."</b>  Array Value:<b>". $Values ."</b>";
}

这将呼应您的示例数组的结构

于 2013-01-29T03:16:58.250 回答