J'obtiens l'erreur ci-dessus lors de l'exécution du code hte ci-dessous pour afficher les réservations effectuées à partir d'une base de données.
<?php
$servername = "localhost";
$username = "*********";
$password = "********";
$dbname = "thelibr1_fyp";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, tablename, numseats, person FROM confirms";
$result = $conn->query($sql);
?>
<table id="Confirms" border ="2" style="length:900px;width:350px;">
<thead>
<tr style= "background-color: #A4A4A4;">
<td>Booking ID:</td>
<td>Table No.:</td>
<td>No. of Seats:</td>
<td>Person:</td>
</tr>
</thead>
<tbody>
<?php
while(($row = $result->fetch_assoc()) !== null){
echo
"<tr>
<td>{$row['id']}</td>
<td>{$row['tablename']}</td>
<td>{$row['numseats']}</td>
<td>{$row['person']}</td>
</tr>\n";
}
?>
</tbody>
</table>
J'ai seulement commencé à recevoir l'erreur quand j'ai commencé à l'héberger en direct, cela fonctionne bien sur mon ordinateur. Et la connexion à la base de données fonctionne bien aussi.
La méthode query peut renvoyer false
au lieu d'un jeu de résultats en cas d'erreur. C'est pourquoi vous obtenez l'erreur sur l'appel de méthode fetch_assoc , qui n'existe évidemment pas lorsque $ result est false
.
Cela signifie que vous avez une erreur dans votre instruction SELECT. Pour afficher cette erreur, procédez comme suit:
$result = $conn->query($sql) or die($conn->error);
Très probablement, le nom de la table ou du nom de la colonne est mal orthographié. Peut-être que lorsque vous vous êtes installé chez l'hôte, vous n'avez pas créé cette table correctement et vous y avez commis une faute d'orthographe.
Vous devriez en fait voir la même erreur lorsque vous exécutez la même requête via phpAdmin.
Aussi, remplacez cette ligne:
while(($row = $result->fetch_assoc()) !== null){
avec juste:
while($row = $result->fetch_assoc()) {
Vous pouvez également ajouter ceci pour le débogage:
echo "number of rows: " . $result->num_rows;
Cette erreur se produit généralement lorsque les tables de la requête n'existent pas. Il suffit de vérifier l'orthographe de la table dans la requête, et cela fonctionnera.
voyez ce code suivant, éditez votre code comme ça.
$query="select * from articles";
$result=$conn->query($query);
$row = $result->fetch_assoc();
if($row)
{
echo $row['content'];
}
echo "no results founded";
?>