2015-12-04 56 views
0

我有這樣的錯誤:警告:mysql_fetch_array()預計參數1是資源,布爾在C中給出:\ XAMPP \ htdocs中\ projeto \ BD \上線proj_detalhes.php 25SQL,PHP,子查詢

<?php 
$bd = "crowdfunding"; 
$connection = mysql_connect("localhost","root","") or die(mysql_error()); 
mysql_select_db($bd) or die(mysql_error()); 
$sql = "SELECT projeto.id, nome, limite, projeto.descricao FROM projeto,(SELECT valor, recompensa.descricao FROM recompensa, projeto WHERE projeto.id = id_projeto)"; 
$res = mysql_query($sql); 
?> 

<html> 
<head> 
<title>Projects</title> 
</head> 
<body> 
<h1>Details<br /></h1> 
<table> 
<tr> 
<td><strong>ID</strong></td> 
<td><strong>Name</strong></td> 
<td><strong>Final data</strong></td> 
<td><strong>Description</strong></td> 
<td><strong>Value</strong></td> 
<td><strong>Reward Description</strong></td> 
</tr> 
<?php 
while($dados = mysql_fetch_array($res)){ 
$id = $dados['id']; 
$nome = $dados['nome']; 
$data = $dados['limite']; 
$descricao_proj = $dados['projeto.descricao']; 
$valor = $dados['valor']; 
$descricao_rec = $dados['recompensa.descricao']; 

echo "<tr> 
    <td>$id</td> 
     <td>$nome</td> 
     <td>$data</td> 
     <td>$descricao_proj</td> 
    <td>$valor</td> 
    <td>$descricao_rec</td> 
</tr>"; 
} 
?> 
</table><br /><br /> 
<form action="menu1.php" method="get"> 
<center><input name="button" type="submit" value="Back"/></center> 
</form> 
</body> 
</html> 

我的第一個變量不是英文,試着理解它。但我在這裏的目標是從項目表中顯示我的ID名稱和說明,並從我的獎勵表中顯示值和說明(僅當項目中的id等於我創建的project_id中的變量時)

+1

不要使用mysql_ *功能了!他們已棄用! 嘗試改用PDO或SQLi。 – jankal

+0

如果沒有錯誤,'mysql_query'的結果是可以在'mysql_fetch_array'中使用的資源。您不應該假設每個函數調用都不會返回錯誤。 – Tristan

+0

嗯,我有一個表叫projeto與這些變量(英文項目): ID 諾姆(英文名) descricao(介紹) LIMITE(截止日期,類型爲DATE) –

回答

0

您的查詢返回一個錯誤,最有可能的。嘗試使用phpMyAdmin或任何數據庫工具直接針對數據庫直接運行查詢。

它看起來像查詢的「id_projeto」部分(最後)可能導致錯誤。

UPDATE:前綴和表名(或別名)的所有字段名和使用JOIN:

SELECT p.id, p.nome, p.limite, p.descricao, r.valor, r.descricao FROM projeto p LEFT JOIN recompensa r ON p.id = r.id_projeto 
+0

好吧,我有一臺名爲projeto(用英語與這些變量的項目): id nome(英文姓名)descricao(描述)limite(截止日期,類型爲DATE) 有另一張名爲recompensa(英文獎勵)的表格用這些變量:id id_projeto(table projeto中id的FK)desc ricao(用英語描述)valor(英語價值) 我使用phpadmin。現在我把$ resultado = mysql_query($ sql)或死(mysql_error());看到錯誤,它說:每個派生表必須有它自己的別名 –

+0

我已更新我的問題,以反映您的評論的信息。 – AVProgrammer

+0

謝謝我在你的答案前2分鐘嘗試使用INNER JOIN,並且運行沒有錯誤,所以謝謝。但是有一個問題,INNER JOIN和LEFT JOIN有什麼區別? –