-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 dbを使用して例を作成する方法はわかりませんが、十分に近いです。

于 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 に答える