0

テーブルを削除し、新しいデータを何度も繰り返して、ループが最初に余分な空の結果を追加している理由を理解しようとしました。ループに使用しているコードは次のとおりです。

    $sql = "SELECT * FROM `addresses` WHERE `company_name` = '$pro_company'";
    $query = $mysqli->query("$sql");    
        while($array[] = $query->fetch_object());
            array_pop($array);
            foreach($array as $listing) :
                echo $listing->Taddress . " ";
                echo $listing->Tcity. " ";
                echo $listing->Tstate . " ";
                echo $listing->Tzip . " ";
                echo " <a href='edit.php?pid=". $listing->PID . "'>edit</a> |";
                echo " <a href='delete.php?pid=". $listing->PID . "'>delete</a>";
                echo "</a><br />";
        endforeach;

このループから得られる結果は以下のとおりです。

       edit | delete
       14220 Parrott Ext. TestCity AL 84106 edit | delete

私はmysqliステートメントを学習しようとしているので、何か足りないものがあると確信しています。

よろしくお願いします。

4

2 に答える 2

0

投げる

print_r($array);die;

foreach の前に、出力を見てください。これにより、問題が正確にどこにあるかがわかります。

于 2013-03-14T17:33:27.430 に答える
0

ほとんどの場合、データベースに値のない行があります。最初にそれを確認してください。あなたが思っているよりも頻繁に起こります(とにかく私にとって)

可能な解決策として、値が存在することを確認するためにエコーする前に追加の条件を追加できます

foreach($array as $listing) :
   if($listing->Taddress){
     echo $listing->Taddress . " ";

個人的には、まず原因を見つけます。print_rが役立ちます

于 2013-03-14T17:38:36.737 に答える