2017-01-13 5 views
-2

Ich bin neu zu PDO und ich konnte die Antwort auf das Problem nicht finden, mit dem ich mich hier beschäftige.
Ich konnte eine foreach Schleife auf eine Tabelle ohne WHERE -Klausel ausführen, aber wenn ich es auf einer ähnlichen Tabelle mit eine WHERE Klausel replizieren, gibt es keine Daten zurück!PDO foreach Schleife funktioniert nicht

Hier ist der Code, der nicht funktioniert. Ich habe sogar versucht, es ohne ORDER BY und LIMIT Parameter laufen zu lassen, immer noch ohne Glück! Bitte führen. Hier

<div class="table-responsive"> 
    <table class="teachers_profile_table table table-bordered"> 
     <thead> 
      <th style="width:20%">Student</th> 
      <th>Comment</th> 
     </thead> 
     <tbody> 
<?php 
$pdo = Database::connect(); 
<?php 
$sql = "SELECT * FROM tbl_st_comments_abt_tut WHERE tut_id=?"; 
$q = $pdo->prepare($sql); 
$q->execute(array($teacher_id)); 
$data = $q->fetch(PDO::FETCH_ASSOC); 
foreach ($pdo2->query($sql) as $row) { 
    echo '<tr>'; 
    echo '<td>'.$row['st_name'].$row['input_date'].'</td>'; 
    echo '<td>'.$row['st_comment'].'</td>'; 
    echo '</tr>'; 
} 
Database::disconnect(); 
?> 
     </tbody> 
    </table> 
</div> 

ist der DB-Tabelle: Tabellenname: tbl_st_comments_abt_tut ID tut_id st_id ST_name st_comment input_date (I haben manuell eingegeben 3 Zeilen in der Tabelle für Testzwecke).

+0

wo hast du das erste PHP-Tag in der Nähe? Warum öffnest du einen zweiten? –

+0

[Daten aus der Anweisung herausholen. foreach()] (https://phpdelusions.net/pdo#foreach). Sie müssen über die Variable $ q iterieren. während $ pdo2 ist nur eine Nonzenz –

+0

@MasivuyeCokile spielt es eine Rolle? –

Antwort

0

Ich bin mir nicht sicher, was Sie mit dieser Linie erreichen möchten: foreach ($pdo2->query($sql) as $row) Ich bin nicht einmal sicher, ob es legal ist, woher kommt der $ pdo2?

Wenn Sie dem Blog-Post Ihres Common Sense folgen, werden Sie sehen, dass Ihre Foreach irgendwo in Ordnung ist. Es ist auch wichtig zu prüfen, ob Sie Ergebnisse erhalten, bevor Sie sie anzeigen.

Der Code sollte wie folgt aussehen:

<div class="table-responsive"> 
     <table class="teachers_profile_table table table-bordered"> 
       <thead> 
       <th style="width:20%">Student</th> 
       <th>Comment</th> 
       </thead> 
       <tbody> 
<?php 
$pdo = Database::connect(); 


$sql = "SELECT * FROM tbl_st_comments_abt_tut WHERE tut_id= ? "; 
$q = $pdo->prepare($sql); 
$q->execute([$teacher_id]); 
$data = $q->fetchall(PDO::FETCH_ASSOC); 

if (count($data) > 0) { 

    foreach ($data as $row) { 
     echo '<tr>'; 
     echo '<td>' . $row['st_name'] . $row['input_date'] . '</td>'; 
     echo '<td>' . $row['st_comment'] . '</td>'; 
     echo '</tr>'; 
    } 
} else { 

    echo "no results"; 
} 

Database::disconnect(); 
?> 
       </tbody> 
     </table> 
</div> 
+0

können Sie Ihre Frage mit Ihrer Tabellenstruktur bearbeiten, damit ich sehen kann, wie Ihre Daten wie @Ali aussehen –

Verwandte Themen