2012-09-08 2 views
0

J'ai 2 tables différentes, l'une est les garçons une autre est les filles. Je veux lister tous avec une requête.Comment faire pour récupérer des données à partir de plusieurs tables avec mysql

J'ai essayé d'utiliser l'union, mais cela ne fonctionne pas.

$query=mysql_query("select * from girls union select * from boys"); 

erreur: mysql_fetch_array() attend le paramètre 1 pour être ressource, booléenne donnée dans C: \ wa

il y a une erreur parce que je ne peux pas obtenir des données de cette requête.

http://www.tutorialspoint.com/mysql/mysql-union-keyword.htm

http://www.w3schools.com/sql/sql_union.asp

ı lire somethingg à ce sujet, mais je trouve couldnt le problème.

merci.

+0

Faites les deux tables ont les mêmes colonnes exactes qui sont nommés exactement la même chose? Vous pouvez essayer de sélectionner explicitement des colonnes et de les renommer si elles sont différentes. – ronalchn

+0

oui il y a une colonne différente, mais ça doit l'être. – bayburt

Répondre

1

Vérifiez quelle erreur se produit en utilisant:

$result = mysql_query("SELECT * FROM girls UNION SELECT * FROM boys"); 
if (!$result) { 
    var_dump(mysql_errno(), mysql_error()); 
} 
... 

Je dirais que ce serait très probablement parce qu'il ya un nombre différent de colonnes entre les 2 tables.

Notez également que les fonctions mysql_* sont obsolètes. Utilisez mysqli ou PDO à la place.

+0

oui il y a un nombre différent de colonnes et il doit être. – bayburt

+0

@bayburt vous devez avoir la même quantité de colonnes lorsque vous utilisez un 'UNION', vous devez donc spécifier au lieu d'utiliser' * '. Quand il manque une colonne dans une table, utilisez simplement 'NULL' à la place. – Petah

0
$sql = " 
    SELECT * 
    FROM girls union 
    SELECT * FROM boys 
    "; 
    <table width="300" border="1"> 
<tr> 
    <td><b>ID</b></td> 
    <td><b>LName</b></td> 
    <td><b>FName</b></td> 
</tr> 
$result = mysql_query($sql); 
while($row = mysql_fetch_array($result)) 
{ 
//print data 
?> 
<tr> 
<td><? echo $row['id']; ?></td> //change the attribute 'id' inside the braketes 
          //with the name of the attributes from your tables 
    <td><? echo $row['Lname']; ?></td> 
    <td><? echo $row['Fname']; ?></td> 
</tr> 
<? 
} 
?> 
Questions connexes