Code php
svp, j'ai besoin d'aide.
en effet, je voudrai affiché encliquant sur un élément de la liste les propiétés de l'elements séléctionné. mais l'erreur se produise dans la 2eme page et voila'erreur
Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\EasyPHP-12.1\www\my portable files\vestiaires.php on line 24
voila le code de la premiere page ou se trouve la liste cet page et exéctable aucun prob :
<body>
<ul>
<?php
$strSQL = "SELECT * FROM arrondissement ORDER BY arrondissement ASC";
$rs = mysql_query($strSQL);
while($row = mysql_fetch_array($rs)) {
$strName = $row['arrondissement'];
$strLink = "<a href = 'vestiaires.php?id = " . $row['arrondissement'] . "'>" . $strName . "</a>";
echo "<li>" . $strLink . "</li>";
}
mysql_close();
?>
</ul>
</body>
et voila le code de la 2eme page ou s'affiche l'erreur
<?php
$rs=null;
if(isset($_GET['id']))
{
$strSQL = "SELECT * FROM arrondissement WHERE arrondissement=" . $_get['id'];
$rs = mysql_query($strSQL);
}
while($row = mysql_fetch_array($rs)) {
echo $row["vestiaire"];
echo $row["conseil"];
echo $row["adresse"];
echo $row["ville"];
echo $row["codepostal"];
echo $row["telephone"];
}
mysql_close();
?>
7 réponses
On cherche à afficher les propriétés d'un élément sélectionné dans une liste HTML via PHP et MySQL, en passant l'identifiant de l'élément cliqué dans l'URL (vestiaires.php?id=...). Les principaux problèmes rencontrés incluent l'erreur mysql_fetch_array retournant une ressource nulle et l'usage incorrect de $_GET (majuscule manquante et manipulation d'un paramètre non défini correctement). Plusieurs réponses proposent d'ajouter die(mysql_error()) pour diagnostiquer les requêtes et de corriger l'URL en utilisant $_GET['id'] sans espaces autour du signe égal. La correction clé identifiée rappelle de supprimer les espaces après le signe égal dans le lien et de veiller à ce que la requête utilise des guillemets autour d'une valeur, afin d'éviter les erreurs d'exécution.
-
Redonne le code qui génère les liens et celui de ta deuxième page. Quelque chose d'aussi simple devrait marcher facilement.
-
Un exemple très simple
_________________________________
Page1.php
_
<a href="page2.php?id=1">Detail</a>
_________________________________
Page2.php
_
<?php
mysql_connect("localhost","root","");//Connexion a la base
mysql_select_db("base21");//Nom de la base
$id="";
$id = $_GET['id'];
$sql = mysql_query("SELECT * FROM table21 WHERE id=$id");
while($ligne = mysql_fetch_array($sql))
{
echo $ligne['prenom']. " " .$ligne['nom'];
}
?>
N'oubliez pas insérer les donnes sql dans votre phpmyadmin (SQL)
___________________________________________
CREATE TABLE IF NOT EXISTS 'table21' (
'id' int(11) NOT NULL AUTO_INCREMENT,
'nom' varchar(255) NOT NULL,
'prenom' varchar(255) NOT NULL,
PRIMARY KEY ('id')
)
INSERT INTO 'table21' ('id', 'nom', 'prenom') VALUES
(1, 'Fiori', 'Patrick');
___________________________________________
Si vous fait comme je vous dit, il y aura aucun problème
Bon courage. -
Je repars du code de ta 2ème page pour être sûr que nous sommes d'accord :
<?php $rs=null; if(isset($_GET['id'])) { $strSQL = "SELECT * FROM arrondissement WHERE arrondissement=" . $_GET['id']; $rs = mysql_query($strSQL) or die(mysql_error());; while($row = mysql_fetch_array($rs)) { echo $row["vestiaire"]; echo $row["conseil"]; echo $row["adresse"]; echo $row["ville"]; echo $row["codepostal"]; echo $row["telephone"]; } mysql_close(); } ?>
Si $_GET[id'] est bien défini, ça devrait marcher ou afficher un message d'erreur-
-
-
oui monsieur ma page et appeller par ce lien
<?php
$strSQL = "SELECT * FROM arrondissement ORDER BY arrondissement ASC";
$rs = mysql_query($strSQL);
while($row = mysql_fetch_array($rs)) {
$strName = $row['arrondissement'];
$strLink = "<a href = 'vestiaires.php?id = " . $row['arrondissement'] . "'>" . $strName . "</a>";
echo "<li>" . $strLink . "</li>";
}
mysql_close();
?>
</ul> -
-
-
-
Pour afficher l'erreur , ajoute or die(mysql_error()) :
$strSQL = mysql_query("SELECT * FROM arrondissement WHERE arrondissement=" .$id."") or die(mysql_error());
D'autre part, je vois que dans ton 1er message, tu avais mis $_get en minsuscules : as-tu bien corrigé par $_GET en majuscules ? -
c'est le même pobléme rien 'est changé
-
Bonjour essayez comme ça
<?php
$rs=null;
if(isset($_GET['id']))
{
$strSQL = "SELECT * FROM arrondissement WHERE arrondissement=" . $_GET['id'];
$rs = mysql_query($strSQL);
}
while($row = mysql_fetch_array($rs)) {
echo $row["vestiaire"];
echo $row["conseil"];
echo $row["adresse"];
echo $row["ville"];
echo $row["codepostal"];
echo $row["telephone"];
}
mysql_close();
?>-
-
Alors asseyez faire comme ça
<?php
mysql_connect("localhost","root","");// Connexion a la base
mysql_select_db("ma_base");
$id="";
$id = $_GET['id'];
if(isset($id))
{
$strSQL = mysql_query("SELECT * FROM arrondissement WHERE arrondissement=" .$id."");
while($row = mysql_fetch_array($strSQL)) {
echo $row["vestiaire"];
echo $row["conseil"];
echo $row["adresse"];
echo $row["ville"];
echo $row["codepostal"];
echo $row["telephone"];
}
mysql_close();
}
?>
ce code marche très bien chez moi. -
-
-
-
-
Bonjour,
Vous n'avez aucune connexion à votre base déjà ;-)