2017-09-23 7 views
-1

誰かがwhileループを手伝ってくれますか?それはここでwhileループはデータベースと連携していません

を働いていないので、私のコードです:

$signup = "SELECT * FROM ISPD_signup WHERE ID_user = " .$id; 

そしてここでは、私のテーブルです:

私はmysqli_fetch_array($alleleden)の外にいる間を削除した場合、それが唯一の登録一種を読み出している場合します私は何も読んでいない間、それを残す。それは声明有効(の終わり)ですので、ここで

$alleleden = mysqli_query($mysqli, $signup); 

if (mysqli_num_rows ($alleleden) == 0) 
{ 
    echo "<p>Er zijn geen inschrijvingen gevonden! </p>"; 
} 
else 
{ 
    echo "<h4>Inschrijvingen: </h4>"; 
    echo "<table>"; 
    echo "<tr>"; 
    echo "<th class='hide'>ID </th>"; 
    echo "<th>Naam </th>"; 
    echo "<th>Beslissing </th>"; 
    echo "</tr>"; 

    while ($lid = mysqli_fetch_array($alleleden)); 
    { 
     echo "<tr>"; 
     echo "<td class='hide'>" . $lid['ID'] . "</td>"; 
     echo "<td>" . $lid['Naam'] . "</td>"; 
     echo "<td>" . $lid['Beslissing'] . "</td>"; 
     echo "</tr>"; 

    } 
    echo "</table>"; 
} 
+0

デバッグ時間.. var_dump($ alleleden); mysqlの結果リソースでなければなりません。あなたのクエリが間違っている場合、または適切なデータベースを使用している場合は、 –

+1

あなたのPHPコードの中で、SQLインジェクションが可能なように見えます。このような機能を用意してください。 "$ signup =" SELECT * FROM ISPD_signup WHERE ID_user = "。(int)$ id;' –

+0

@RaymondNijland私は可能な注入に同意する傾向がありますが、OPがすでに$ id =(int)$ _ GET ['id']; 'として割り当てられているかどうかはわかりません。その場合、SQLインジェクションにはオープンしていません。公正な点だが;-) –

答えて

-1

ループ

$alleleden = mysqli_query($mysqli, $signup); 

if (mysqli_num_rows ($alleleden) == 0) 
{ 
    echo "<p>Er zijn geen inschrijvingen gevonden! </p>"; 
} 
else 
{ 
echo "<h4>Inschrijvingen: </h4>";  
echo "<table>"; 
echo "<tr>"; 
echo "<th class='hide'>ID </th>"; 
echo "<th>Naam </th>"; 
echo "<th>Beslissing </th>"; 
echo "</tr>"; 


while ($lid = mysqli_fetch_array($alleleden)) 
{ 
     echo "<tr>"; 
     echo "<td class='hide'>" . $lid['ID'] . "</td>"; 
     echo "<td>" . $lid['Naam'] . "</td>"; 
     echo "<td>" . $lid['Beslissing'] . "</td>"; 
     echo "</tr>"; 
} 
echo "</table>"; 
} 

はその作品にこのコードを試してみてくださいしながら、あなたには、余分なセミコロンを配置します。

+0

それを信じるかどうか; whileループを実行した後、このコードで問題になることはあまりありません。http://sandbox.onlinephpfunctions.com/code/071d9c016fdb74d014846249c2addfdbd7703abc –

+0

Lol ....! while while()の構文には含まれていません。 while(){**ここに**}は です。 – TarangP

5

問題は、このループの終わり

while ($lid = mysqli_fetch_array($alleleden)); // <<< there 

でセミコロンであるあなたはそれ

while ($lid = mysqli_fetch_array($alleleden)) 

を削除する必要があり、 PHPの文字は、それはエラーをスローしません。 CやPerlのよう

  • http://php.net/manual/en/language.basic-syntax.instruction-separation.php
    • は、PHPは、各ステートメントの終わりにセミコロンで終端される命令を必要とします。 PHPコードのブロックの終了タグは自動的にセミコロンを意味します。 PHPブロックの最後の行を終了するセミコロンを持つ必要はありません。ブロックの終了タグには、直後の改行がある場合はその改行が含まれます。

    さらに、mysqli_fetch_array()の代わりにmysqli_fetch_assoc()を使用します。

    サイドノート:プリペアドステートメントまたは使用を使用するかように、あなたがここにSQLインジェクションに開いていることがあります。

    $id = (int)$_GET['id']; 
    

    もすぐに整数としてそれを割り当てることによって注入を防止します。

    +0

    感謝の男が本当に助けてくれた! –

    +0

    @MichaelHeerkensようこそ。 –

    +0

    それを信じるかしないか。 whileループを実行した後、このコードで問題になることはあまりありませんhttp://sandbox.onlinephpfunctions.com/code/071d9c016fdb74d014846249c2addfdbd7703abc –