Sélection de données de table avec des instructions PDO
J'ai un script php qui sélectionne des données via mysql_, toutefois, dernièrement, j'ai lu que PDO est le chemin à parcourir et que mysql_ est de plus amortis. Maintenant, je suis à la conversion de ce script à l'AOP.
Ma question est bien, je ne suis pas à l'aide de $_POST pour sélectionner. Je tiens juste à sélectionner l'ensemble du tableau avec l'ensemble de ses données donc je tape cette requête :
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $query->fetchall(); //or you can just $result = $query as hakre proposed!
alors comme je l'ai fait avec mon vieux amorti mysql_ version du script que j'ai utilisé l'écho de l'écho d'une table avec les données qu'il contient.
echo
"<table border='2'>
<tr>
<th>ID</th>
<th>A Number</th>
<th>First Name</th>
<th>Last Name</th>
<th>Why</th>
<th>Comments</th>
<th>Signintime</th>
</tr>"
;
foreach($result as $row)
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td><a href=Student.php?studentA_num=" . $row['anum'] . ">" .$row['anum'] . " </a></td>";
echo "<td>" . $row['first'] . "</td>";
echo "<td>" . $row['last'] . "</td>";
echo "<td>" . $row['why'] . "</td>";
echo "<td>" . $row['comments'] . "</td>";
echo "<td>" . $row['signintime'] . "</td>";
echo "<td> <input type=\"button\" value=\"Start Session\"onClick=\accept.php?id=" . $row['id'] . "&start=true></td>";
}
echo "</tr>";
echo "</table>";
maintenant, avec cela, je ne peux pas obtenir une seule sortie à ma table.
Ma question est suis-je raté quelque chose de mon select? Ou je ne suis pas aller chercher toutes les lignes? Aussi, je les paramètres de connexion définie dans un autre script appelé connect.php ce qui est requis par init.php (au-dessus de toutes mes pages)
Edit : 1
Modifié le code de sorte qu'il fonctionne désormais également ajouter une photo pour montrer aux autres comment il devrait ressembler! Espérons que l'on peut mettre cela à une sorte d'utilisation!
source d'informationauteur RaGe10940
Vous devez vous connecter pour publier un commentaire.
Vous faites trop en fait:
De la ligne problématique est:
Vérifier avec http://php.net/pdo.queryle paramètre est une chaîne, la chaîne SQL que vous utilisez déjà ci-dessus, le résultat non pas de la valeur d'un
PDO::prepare()
appel.Pour votre requête simple il vous suffit de faire:
Ou si vous préférez préparer:
Le plus tard est réutilisable si vous souhaitez insérer des variables dans la requête, c'est pourquoi vous préparer.
Le problème suivant est le
foreach
ligne:Vous êtes à la terminaison de la boucle immédiatement, car le point-virgule
;
à la fin. Supprimer le point-virgule, de sorte que les angles entre crochets code-bloc devient le corps de la boucle foreach boucle.Votre code est faux:
Après l'exécution d'une instruction préparée, vous pouvez les appeler
fetchAll()
:Le reste de votre code fonctionne bien une fois que vous supprimez le point-virgule après le foreach.