Aller au contenu

Affichage des données de plusieurs tables


Web35

Sujets conseillés

Bonjour,

Je suis en train de réaliser une page en PHP pour afficher le contenu de deux tables situés dans la même base de donnée.

Pour cela j'utilise une boucle, ca marche pour afficher le contenu de la premiere table puis celui de la seconde.

Ensuite je veux repeter cette operation et réafficher d'autres données de la premiere table. Mais c'est a ce moment la que ca ne marche pas.... Il n'y a pas d'erreur dans la requete mais simplement la page arrete de s'afficher. Meme les elements du reste de la page situés en dessous ne s'affichent pas.

Voici a quoi ressemble mon code (simplifié au max.)

Affichage des données de la premiere table :

$db = mysql_connect(localhost, ******, ******);  
mysql_select_db(base,$db);

$sql = "SELECT * FROM `table` WHERE `id` LIKE  '22%' ";
 $query = mysql_query($sql)
   or die ("Requête incorrecte");
   $result = mysql_numrows($query);
     if ($result) {
       while ($rs = mysql_fetch_array($query)) {

echo $rs["champ_a_afficher"];

 } // Fin instruction while
 } else {
   echo "Pas de résultat";
     }
 mysql_free_result($query);
 mysql_close($db);

Affichage des données de la deuxieme table

<?php
$db = mysql_connect(localhost, ********, *******);  
mysql_select_db(base,$db);  
$sql = "SELECT * FROM `table2` WHERE `id` LIKE  '22%' ";
 $query = mysql_query($sql)
   or die ("Requête incorrecte");
   $result = mysql_numrows($query);
     if ($result) {
       while ($rs = mysql_fetch_array($query)) {

echo $rs["champ_a_afficher"];

 } // Fin instruction while
 } else {
   echo "Pas de résultat";
     }
 mysql_free_result($query);
 mysql_close($db);

Lorsque le code s'arrete là tout fonctionne mais c'est la suite qui pose probleme.

$db = mysql_connect(localhost, ********, *******);  
mysql_select_db(base,$db);  
$sql = "SELECT * FROM `table1` WHERE `id` LIKE  '40%' ";
 $query = mysql_query($sql)
   or die ("Requête incorrecte");
   $result = mysql_numrows($query);
     if ($result) {
       while ($rs = mysql_fetch_array($query)) {

echo $rs["champ_a_afficher"];

 } // Fin instruction while
 } else {
   echo "Pas de résultat";
     }
 mysql_free_result($query);
 mysql_close($db);

Lien vers le commentaire
Partager sur d’autres sites

Ok, j'ai changé tous les mysql_numrows par mysql_num_rows mais cela ne change rien. De plus, j'ai réalisé d'autres affichages de tables en utilisant mysql_numrows, sans que cela ne pose probleme.

Lien vers le commentaire
Partager sur d’autres sites

Je vais dire deux trucs cons:

1- es-tu sur d'avoir des id dont le numéro commence par 40 ?

2- as-tu essayé cela (c'est à dire sans les quotes):

$sql = "SELECT * FROM table1 WHERE id LIKE  '40%' ";

Et j'en rajoute un autre:

3- as-tu testé ta requête directement dans l'administrateur (phpmyadmin, par exemple) ?

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Bah c'est toujours pareil. Mais le truc c'est que ce n'est pas une erreur dans la requete puisqu'elle me renvoie des resultats quand je l'effectue en affichant le premier ensemble de données. Mais c'est lorsque je la repete en modifiant ID LIKE que ca ne fonctionne pas

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...