0

csv に変換された Excel シートがあり、それをコードで mysql にインポートします。Excelでは、最初の行にAとBがあります

出力が得られますが、動作しますが、データを正しく表示できません。

私が表示しようとしている方法は、AB、ブレーク、AB などです。contact_id 順になっているのですが、double while を試してみると、AAAAAA と 1 B しか取得できません。

これは、これを達成しようとしたコードです。double while を試してみましたが、Google で調べたところ、double while が機能していないことに気付きました。mysql JOIN でも機能させることができず、foreach 関数で機能したことがありません。

$data = dbquery("SELECT contact_id, contact_first, contact_last, contact_email FROM contact_info WHERE contact_first='A)' ORDER BY contact_id ASC");
$data2 = dbquery("SELECT contact_id, contact_first, contact_last, contact_email FROM contact_info WHERE contact_first='B)' ORDER BY contact_id ASC");


    while ($userdata = dbarray($data)) {


   echo "<li><ul class='ulcla'>";
   echo "<h1>".$userdata['contact_first']."</h1>"; 
   echo "<li>".$userdata['contact_last']."</li>";
   echo "</ul><br>";
   while ($userdata = dbarray($data2)) {
   echo "".$userdata['contact_id']." - ".$userdata2['contact_first']." - ".$userdata2['contact_last']." - ".$userdata2['contact_email']."";
   echo "<br>"; 
    }
    echo "</ol></div>";   

      }

どうすればそのようにデータをループできますか?

4

3 に答える 3

0

for innner while ループwhile ($userdata = dbarray($data2)) {に 変更 while ($userdata2 = dbarray($data2)) {

$data = dbquery("SELECT contact_id, contact_first, contact_last, contact_email FROM contact_info WHERE contact_first='B)' ORDER BY contact_id ASC");
$data2 = dbquery("SELECT contact_id, contact_first, contact_last, contact_email FROM contact_info WHERE contact_first='B)' ORDER BY contact_id ASC");


    while ($userdata = dbarray($data)) {


   echo "<li><ul class='ulcla'>";
   echo "<h1>".$userdata['contact_first']."</h1>"; 
   echo "<li>".$userdata['contact_last']."</li>";
   echo "</ul><br>";
   while ($userdata2 = dbarray($data2)) {
   echo "".$userdata2['contact_id']." - ".$userdata2['contact_first']." - ".$userdata2['contact_last']." - ".$userdata2['contact_email']."";
   echo "<br>"; 
    }
    echo "</ol></div>";   

      }
于 2013-02-12T08:26:50.987 に答える
0

A と B がそれぞれ同じ量である場合、出力から 2 つの配列を作成し、単純な for ループを使用してキーを処理できます。したがって、$userdata[$x] と $userdata2[$x] をエコーできます。ここで、$x はループ反復子です。

複数のループ、特にネストされたループを使用しないようにしてください。

于 2013-02-12T07:59:23.233 に答える
0
while ($userdata = dbarray($data)) {
    //your stuff
    while ($other_userdata = dbarray($data2)) {
        //your other stuff
    }
}
于 2013-02-12T08:03:15.900 に答える