Code MySQL fonctionne, code MySQLi non

Résolu/Fermé
Yuuto Messages postés 21 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 8 décembre 2013 - 1 oct. 2013 à 16:07
Yuuto Messages postés 21 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 8 décembre 2013 - 1 oct. 2013 à 17:04
Bonjour,

J'ai tout d'abord commencé par taper mon code MySQL, jusque là tout fonctionne et s'affiche correctement:

<HTML> 
<HEAD>
<TITLE>Exercice2</TITLE>
</HEAD>
<BODY>
<?
mysql_connect("localhost","root","root");
mysql_select_db("devoir_cnfdi");
$requete = "select * from Eleves_cnfdi";
$resultat = mysql_query($requete);
echo mysql_num_rows($resultat);
?>
<table width="300" border="1">
<tr align="center">
<td>Id</td>
<td>Nom</td>
<td>Prenom</td>
<td>Age</td>
<td>Ville</td>
</tr>
<? While($row=mysql_fetch_array($resultat))
{ ?>
<tr align="center">
<td><? Echo $row["Id"]; ?> </td>
<td><? Echo $row["Nom"]; ?> </td>
<td ><? Echo $row["Prenom"]; ?> </td>
<td ><? Echo $row["Age"]; ?> </td>
<td><? Echo $row["Ville"]; ?> </td>
</tr>
<? } ?>
</table>
</body>
</html>

A partir de celui-ci j'ai fait quelques modifications pour le passer en MySQLi comme ceci:

<HTML> 
<HEAD>
<TITLE>Exercice2</TITLE>
</HEAD>
<BODY>
<?
mysqli_connect("localhost","root","root","devoir_cnfdi");
mysqli_select_db("devoir_cnfdi");
$requete = "select * from Eleves_cnfdi";
$resultat = mysqli_query($requete);
echo mysqli_stmt_num_rows($resultat);
?>
<table width="300" border="1">
<tr align="center">
<td>Id</td>
<td>Nom</td>
<td>Prenom</td>
<td>Age</td>
<td>Ville</td>
</tr>
<? While($row=mysqli_fetch_array($resultat))
{ ?>
<tr align="center">
<td><? Echo $row["Id"]; ?> </td>
<td><? Echo $row["Nom"]; ?> </td>
<td ><? Echo $row["Prenom"]; ?> </td>
<td ><? Echo $row["Age"]; ?> </td>
<td><? Echo $row["Ville"]; ?> </td>
</tr>
<? } ?>
</table>
</body>
</html>

Ici, ça bloque apparemment à partir du "while" car j'ai bien la première partie du tableau qui s'affiche avec "id, nom, prénom, age et ville" mais je n'ai pas les résultats de ma table ni le reste du tableau.
Je ne m'y connais pas beaucoup en MySQL alors du coup je ne sais pas si pour le MySQLi, il y a autre chose à rajouter que j'aurais oublié? D'où peut provenir ce problème?

Merci d'avance!

A voir également:

1 réponse

Utilisateur anonyme
1 oct. 2013 à 16:53
Bonjour

1 - Tu n'as pas à faire
mysqli_select_db("devoir_cnfdi");
car la base est déjà sélectionnée par le mysqli_connect.

2 - Par contre, tu DOIS récupérer l'identifiant de lien rendu par mysqli_connect pour t'en servir comme premier paramètre de mysqli_query:
$link=mysqli_connect("localhost","root","root","devoir_cnfdi");
// mysqli_select_db("devoir_cnfdi"); inutile
$requete = "select * from Eleves_cnfdi";
$resultat = mysqli_query($link,$requete);
0
Yuuto Messages postés 21 Date d'inscription dimanche 12 mai 2013 Statut Membre Dernière intervention 8 décembre 2013 3
1 oct. 2013 à 17:04
Je me disais aussi qu'il était bizarre de devoir répéter deux fois de sélectionner la base!

Je vois l'erreur, encore une fois merci à vous, vous me sauvez la vie!
Mes cours sont tellement "bien faits" qu'il y a au moins une erreur à chaque code (ou bien il est incomplet) sur lequel je dois re-travailler...
0