Aller au contenu

Affichage des données de plusieurs tables


Sujets conseillés

Posté

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);

Posté

$result = mysql_numrows($query);

Je ne connais que:

$result = mysql_num_rows($query);

Est-ce une erreur de frappe dans le post ?

xpatval

Posté

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.

Posté

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

Posté

1- j'ai bien des id dont le nom commence par 40

2- J'ai essayé sans les quotes, même resultat

3- La requete fonctionne sous PhpMyAdmin

Posté

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

Posté

Encore une couche:

Essaie en modifiant le noms des variables $sql, $result, $query ($sql1, $result1, $query1).

xpatval

Veuillez vous connecter pour commenter

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



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