2017-04-01 26 views
0
<?php 
include_once "removed.php"; 

$user = $conn -> real_escape_string($_SESSION['username']); 

$query = "SELECT * FROM REMOVED WHERE removed ='$user' AND removed='1'"; 
$result = $conn -> query($query); 

if(!$result){ 
    die($conn -> error); 
} 

else { 
    $row = $result -> num_rows; 

    for ($i = 0; $i < $row; ++$i) 
    { 
    $result -> data_seek($i); 
    $row = $result -> fetch_array(MYSQLI_ASSOC); 
    ?> 
    <h4><?= $row['Group_name'];?></h4> 
    <?php 
    } 
} 
mysqli_close($conn); 
?> 

このコードでは、私は1つの問題を与えました。これは$ rowデータを持つ<h4>要素を作成します。ただし、空の<h4>要素も作成します。PHP - for文は2番目の空の要素を作成します

クロームインスペクタが示しています

<h4> content that I want </h4> 
<h4></h4> 

私はテスト目的のためにデータベース内の1つのエントリを持っています。

+0

はい私は重要なmysqlクエリ情報を取り出していました。ファイル全体が正しいデータで実行されます。 –

+0

私はあなた自身の 'for'を作成するのではなく' fetch'をループします。私はPHPにとどまり、 '

'を 'echo'と連結します。 – chris85

+0

error_reportingが有効になっていますか? –

答えて

0
for ($i = 0; $i < $row; ++$i) 
    { 
    $result -> data_seek($i); 
    while ($row = $result -> fetch_array(MYSQLI_ASSOC)){ 
     ?> 
     <h4><?= $row['Group_name'];?></h4> 
     <?php 
    } 
    } 

while文を追加すると、問題がソートされ、正しい要素が1つだけ表示されます。 2番目の要素は読み込まれません。私はまだforループがどのように空の2番目の要素を作成し終わったのかわからないので、むしろ奇妙です。あなたのforループ内の条件は、このような$rowとして、それに使用される任意の変数を含む反復を、評価され、「まで」

+0

forループを失う –

+0

'while'ループは、' $ row'が 'null'になるまでインクリメントします。その時点で、* outer *ループの' $ i <$ row'チェックは失敗します。私の答えは '$ row'を使って別の値に格納しようとしています。内側の使い方は外側の使い方を邪魔しています。 – meagar

1

。ループ外で$rowからnum_rowsに設定すると、ループ内のその値がfetch_assocで上書きされ、ループがnum_rowsを超えて続行します。

行数を維持し、それぞれ行をロードするには、別の変数を使用する必要があります。

$num_rows = $result -> num_rows; 

for ($i = 0; $i < $num_rows; ++$i) { 
    $row = ... 
} 
+0

ああ、ちょうどこれもタイプしていました。 –

関連する問題