0

実行されるたびに3つのランダムな行を返すMySQLクエリがあります。各行を配列に格納し、行の各列を配列の異なる部分にします。うまくいけば、私は明確です。これがImのこれまでのところです。

$result = mysql_query("SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3");
$row = mysql_fetch_array($result);

これに伴う問題は、すべてが$ resultに格納されることであり、一度そこにある別の列を参照する方法がわかりません。私はこれを行っているので、最終的に、指定したランダムなエントリを9つの異なるDIVに出力できます。

4

3 に答える 3

2

試す:

$array = Array();

$result = mysql_query("SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3");
while ($row = mysql_fetch_array($result)) {
    $array[] = $row;
}
于 2012-10-07T22:21:18.460 に答える
1

を使用$row['COLUMNAME']して列の値を取得できます。
COLUMNAMEでは大文字と小文字が区別されることに注意してください。

例えば:

$result = mysql_query("SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3");
while($row = mysql_fetch_array($result)) {
    echo 'Name: ' . $row['NAME'] . '<br/>';
    echo 'Author: ' . $row['AUTHOR'] . '<br/>';
}

また、php.netのマニュアルページにある大きな赤い通知を読んでください
。この拡張機能の使用はお勧めしません。
代わりに、MySQLiまたはPDO_MySQL拡張機能を使用する必要があります。詳細については、MySQL:APIガイドの選択および関連するFAQも参照してください。

于 2012-10-07T22:25:09.907 に答える
0

mysql_は非推奨になっているため、プリペアドステートメントの使用を検討してください。また、不注意または経験が浅く、クエリ文字列を適切にエスケープしない場合は、SQLインジェクションの影響を受けやすくなります。

mysqli_を使用した解決策は次のとおりです。

$link = mysqli_connect("localhost", "user", "password", "database") or die(mysqli_error($link));
$stmt = mysqli_stmt_init($link);
$query = 'SELECT NAME,AUTHOR,CITY FROM TESTIMONIALS ORDER BY RAND() LIMIT 3';
$arrTestimonials = array();   

if (mysqli_stmt_prepare($stmt, $query)) {
    mysqli_stmt_bind_result($stmt, $out_name, $out_author, $out_city);
    mysqli_stmt_execute($stmt);

    while (mysqli_stmt_fetch($stmt)) {
        $arrTestimonials[]['name'] = $out_name;
        $arrTestimonials[]['author'] = $out_author;
        $arrTestimonials[]['city'] = $out_city;
    }
} // error preparing statement 

配列は次のように構成されます。

Array
(
    [0] => Array
        (
            [name] => Name 1
            [author] => Author 1
            [city] => City 1
        )

    [1] => Array
        (
            [name] => Name 2
            [author] => Author 2
            [city] => City 2
        )

    [2] => Array
        (
            [name] => Name 3
            [author] => Author 3
            [city] => City 3
        )

)   
于 2012-10-07T22:40:32.197 に答える