Code php

Bonjour monsieur et madame,

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

Résumé de la discussion

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.

Bobot (l’IA à votre service)
  1. Redonne le code qui génère les liens et celui de ta deuxième page. Quelque chose d'aussi simple devrait marcher facilement.
    0
    1. 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.
      0
      1. oui j'ai fait tou ca mai sa fonnctionne pas
        0
      2. Ce ne pas normal, parce que chez moi ça marche très bien,
        pour exemple 2 bon site pour comprendre
        1. www.tuto.com
        2. www.siteduzero.com
        0
      3. merci
        0
    2. 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
      0
      1. il n'affiche pas d'erreur mais il n'affiche aucune résultat
        0
      2. Alors c'est que $_GET['id'] n'est pas défini.
        Tu ne l'appelles pas par mapage.php?id=xx.
        Avec quelle URL ta page est-elle appelée ?
        0
      3. 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>
        0
      4. Il y a un espace en trop dans ton lien juste après le id=. Conséquence : l'id est mal transmis :
        $strLink = "<a href = 'vestiaires.php?id =" . $row['arrondissement'] . "'>" . $strName . "</a>";  
        echo "<li>" . $strLink . "</li>"; 
        0
      5. j'ai essayée mais il n'affiche rien
        0
    3. 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 ?
      0
      1. oui monsieur le pére j'ai changé mais s'a pas marché
        0
    4. c'est le même pobléme rien 'est changé
      0
      1. 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();
        ?>
        0
        1. c'est le même pobléme rien n 'est changé
          0
        2. 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.
          0
        3. il m'affiche ca commerreur
          Undefined index: id in C:\EasyPHP-12.1\www\my portable files\vestiaires.php on line 17
          0
        4. Vérifier que le lien est bon, comme ça par exemple mypage.php?arrondissement =1
          0
        5. Mais il faut utiliser dans la base id auto increment, pour plus d'exemple http://www.siteduzero.com/
          0
      2. Bonjour,

        Vous n'avez aucune connexion à votre base déjà ;-)
        0
        1. j'ai la conneion a la base sa fonnctionne correcement
          0
        2. svp monsieu vous pouvez m'aider
          0