2012-09-08 2 views
0

ı есть 2 разных стола, одна из них - мальчики, другая - девочки. ı хотите перечислить все одним запросом.Как получить данные из нескольких таблиц с помощью mysql

ı попытался использовать соединение, но он не работает.

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

ошибка: mysql_fetch_array() ожидает параметр 1, чтобы быть ресурсом, логический дан в C: \ уа

есть ошибка, потому что я не могу получить какие-либо данные из этого запроса.

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

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

я прочитал somethingg об этом, но я не смог найти проблему.

спасибо.

+0

ли обе таблицы имеют те же точные столбцы, которые названы в точности то же самое? Вы можете попробовать явно выбрать столбцы и переименовать их, если они разные. – ronalchn

+0

да есть другой столбец, но это должно быть. – bayburt

ответ

1

Проверьте, что ошибка происходит с помощью:

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

Я бы сказал, что, скорее всего, потому что есть различное число столбцов между 2 таблицами.

Также обратите внимание, что функции mysql_* устарели. Используйте вместо этого mysqli или PDO.

+0

Да, есть разные количества столбцов, и это должно быть. – bayburt

+0

@bayburt вам нужно иметь такое же количество столбцов при использовании 'UNION', поэтому вам нужно указать вместо этого вместо' * '. Когда в таблице отсутствует столбец, просто используйте вместо этого «NULL». – 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> 
<? 
} 
?>