0

そのため、MySQL クエリに問題があります。変数からのデータのリストからの最初の結果のみを表示しています。これが私が持っているものです

$Data='1,2,3'

$fetch = mysql_query("SELECT email FROM data WHERE uid IN ($Data) ");

if (mysql_num_rows($fetch)) {
    $emaildata = mysql_fetch_assoc($fetch);
    foreach($emaildata as $fetch2){
        echo $fetch2;
    }
} else {
    echo Failed;
}

これで、3 人の個別の電子メールの代わりに、3 人の最初の結果のみが取得されます。どんな助けでも大歓迎です、この全体にちょっと新しいです。

4

3 に答える 3

3

以下のように使用すると、$fetchより簡単な while ループを繰り返すことができます。

while($emaildata = mysql_fetch_assoc($fetch)){
   echo  $emaildata['email']
}

推奨事項:

1.MySQL インジェクションを防ぐ方法を学ぶ: Good Link

2.Mysql 拡張機能は、新しいコードの作成には推奨されません。代わりに、mysqli または PDO_MySQL 拡張機能を使用する必要があります。詳細: PHP マニュアル

于 2012-11-25T16:25:34.670 に答える
3

連想をフェッチする代わりに配列をフェッチし、代わりにコミュニティによって維持されなくなったものを使用mysqli_()mysql_()while代わりにループを使用し、もしあれば名前foreachを使用しますindex

while($emaildata = mysql_fetch_array($fetch)) {
     echo $emaildata; //Use index name if any
   }
}
于 2012-11-25T16:26:33.517 に答える
1

while ループを使用する必要があります。これにより、次の行がある限り反復できます。

while($row = mysqli_fetch_row($fetch)){
      echo  $row['email']
 }

注意!!!:非推奨mysqli_fetch_rowとして使用するmysql_fetch_row

于 2012-11-25T16:30:07.597 に答える