SELECT * FROM rub_tbl WHERE id="1" ... pb de syntaxe .ca. passe pas

Fermé
monlucon Messages postés 1 Date d'inscription samedi 18 avril 2015 Statut Membre Dernière intervention 18 avril 2015 - 18 avril 2015 à 22:40
ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 - 19 avril 2015 à 12:51
Bonjour,

j'ai regardé de multiples forums et je n'arrive pas à résoudre la dernière erreur sur ma page.
Je veux juste afficher un enregistrement dans ma table rub_tbl en l'occurrence le titre de la rubrique.

Voici le code :
<?php
/*Afficher XXXX1 ACCUEIL */
$db = mysqli_connect ('localhost', 'user', '')
or die("Impossible de se connecter : " . mysql_error());

$sql='SELECT id,titre FROM rub_tbl WHERE id="1"';
$req = mysqli_query($db,$sql) or die ('ERREUR '.$sql.' '.mysql_error());
while ($data = mysqli_fetch_array($req));
{
echo'
<font face="arial" size="1" color="black">
<b><a href="index.php">'.$data["titre"].'</a></b></font>  ';}
?>

J'ai ce message d'erreur : ERREUR SELECT id,titre FROM rub_tbl WHERE id="1"
PHP 5.5 Serveur Hostinger
Pourtant je ne vois rien
Je vous remercie de m'indiquer ce qui ne va pas en détail si vous avez le temps , ça me fera progresser ...
Cela fait plusieurs heures que je potasse là dessus et c'est rageant. sad
Je pense que c'est un problème de syntaxe. En plus je ne sais plus si on doit mettre mysql_query ou mysqli_query.
Quelles fonction comme mysql_query ont migré vers mysqli_query je sais qu'il y a mysqli_fetch array et pas mysql_erreur
c'est compliqué;)
Enfin, je vous remercie bien pour votre aide.
A voir également:

1 réponse

ReDLoG Messages postés 243 Date d'inscription mardi 12 mars 2013 Statut Membre Dernière intervention 28 octobre 2021 57
19 avril 2015 à 12:51
Bonjour,
Je pense que l'erreur se situe dans la requête au niveau de la clause WHERE car l'ID dans la table rub_tbl doit être de type INT(eger), or dans ta requête le fait de mettre des simples quotes autour de l'ID signifie que c'est un type STRING, ce qui fait planter la requête au moment de l'exécution.
Seconde erreur, il ne faut pas mettre de point-virgule à la fin de l'instruction WHILE.
Donc modifies en ce sens et dis-nous le résultat :
<?php
/* Afficher XXXX1 ACCUEIL */
$db = mysqli_connect('localhost', 'user', '')or die("Impossible de se connecter : " . mysqli_error());
$sql = 'SELECT id,titre FROM rub_tbl WHERE id=1';
$req = mysqli_query($db,$sql) or die ('ERREUR '.$sql.' '.mysqli_error());
while($data = mysqli_fetch_array($req)) {
	echo '<font face="arial" size="1" color="black"><b><a href="index.php">'.$data["titre"].'</a></b></font>';
}
?>

Je ne travaille pas avec l'extension mysqli_ mais avec PDO et MySQL, je te conseille fortement de passer également à la classe mysqli (+ d'info ici https://www.php.net/manual/fr/class.mysqli.php
Cordialement.
0