2

これがデータベースから値を取得するための私のコードです

    $query = "SELECT * FROM t_contact
                      WHERE id = {$project_details_id} LIMIT 1";
     $all_post_info1 = mysql_query($query, $connection);
     confirm_query($all_post_info1);
     $project_details = mysql_fetch_array(show_project_details($project_details_id));

     foreach ($project_details as $fieldname) {
        echo $fieldname . "</br>";
     }

function confirm_query($confirm_result) {

    if (!$confirm_result) {
        die("Database query failed1: " . mysql_error());
    }
}

そして、フィールドごとに2回出力を取得します。私のデータベースには27の列があり、54の出力があります。たとえば、データベースに名前、電子メールの列があり、私の出力は次のように表示されます

name
name
email
email 

このコードの何が問題なのか教えてください。

4

5 に答える 5

2

MYSQL_BOTH(デフォルト)を使用すると、結合インデックスと数値インデックスの両方を含む配列を取得できます。

これは、$project_details実際には次のように見えるためです。

$project_details = array(
  [0] => 'name',
  [name] => 'name',
  [1] => 'email',
  [email] => 'email'
);

通話で指定MYSQL_ASSOCしてみてください。mysql_fetch_array

于 2013-01-11T15:09:13.550 に答える
1

代わりにこれを試してください:

$query = "SELECT * FROM t_contact
                        WHERE id = {$project_details_id} LIMIT 1";
$all_post_info1 = mysql_query($query, $connection);
confirm_query($all_post_info1);

while($data = mysql_fetch_assoc($all_post_info1))
{

print_r($data);

}

mysql_fetch_assocは連想配列を返します。これは、キーがクエリのフィールドに関連付けられている配列を意味します。mysql_fetch_arrayは、フィールドと数値キー値を含む配列を返すため、double変数を返します。mysql_fetch_arrayを使用することはめったにありません。ほとんどの場合、mysql_fetch_assocがその方法です。

于 2013-01-11T15:11:34.563 に答える
0

foreachを使用する代わりに、whileを使用する必要があります。例として:

while($row = db_fetch_array($all_post_info1)) {
    echo $row[field_name];
}

それがあなたを助けることを願っています。

于 2013-01-11T15:09:35.790 に答える
0

mysql_fetch_array()デフォルトでは、インデックス付き形式と関連形式の両方でキーが返されます。

MYSQL_ASSOCパラメータを使用して、関連付けられたバージョンのみを取得します。

$project_details = mysql_fetch_array(show_project_details($project_details_id), MYSQL_ASSOC);

慣例として、 mysql関数は非推奨であり、たとえばPDOの使用を検討する必要があることも思い出してください。

于 2013-01-11T15:09:37.673 に答える
0

この行を変更します。

$project_details = mysql_fetch_array($project_details_id);

この行で:

$project_details = mysql_fetch_array($project_details_id, MYSQL_ASSOC);
于 2013-01-11T15:10:12.533 に答える