2013-11-01 82 views
1

我想創建一個表,只是通過選擇包含表列狀態中的QLD的行生成的表。我不知道我的讀取數組是如何與特定的工作,但我知道它返回適合條件給出的行。mysqli_fetch_assoc()期望參數1是mysqli_result

但html會拋出錯誤。任何人都可以知道我出錯的地方。

我的PHP代碼

<?php 
$q = intval($_GET['q']); 

$con = mysqli_connect("localhost","root","","test"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysqli_error($con)); 
    } 

mysqli_select_db($con,"fabrik"); 
if($q="1") 
{ 
    $sql="SELECT * FROM user WHERE state = 'QLD'"; 

$result = mysqli_query($con,$sql); 
} 


echo "<table border='1'> 
<tr> 
<th>Status</th> 
<th>Consultant</th> 
<th>Client</th> 
<th>Role</th> 
<th>Likelyhood</th> 
<th>StartDate</th> 
<th>EndDate</th> 
<th>Comments</th> 
</tr>"; 

while($row = mysqli_fetch_assoc($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['statustable_name_'] . "</td>"; 
    echo "<td>" . $row['consultant'] . "</td>"; 
    echo "<td>" . $row['client'] . "</td>"; 
    echo "<td>" . $row['role'] . "</td>"; 
    echo "<td>" . $row['likelyhood'] . "</td>"; 
    echo "<td>" . $row['startdate'] . "</td>"; 
    echo "<td>" . $row['enddate'] . "</td>"; 
    echo "<td>" . $row['comments_'] . "</td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 

mysqli_close($con); 
?> 

HTML:

<html> 
<head> 
<script> 
function showUser(str) 
{ 
if (str=="") 
    { 
    document.getElementById("txtHint").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) // 200 to check the status is ok 4=onreadystatechange event is triggered five times (0-4), one time for each change in readyState 
    { 
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","view.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 
</head> 
<body> 

<form> 
<select name="users" onchange="showUser(this.value)"> 
<option value="">Select the State </option> 
<option value="1">QLD</option> 
<option value="2">NSW</option> 
<option value="3">VIC</option> 
</select> 
</form> 
<br> 
<div id="txtHint"><b>List with selected State will be populated below</b></div> 

</body> 
</html> 

這將是有益的,如果有人扔一些光對我的問題

感謝

+0

您在這裏有一個錯字如果($ Q =「1」) – igor

+0

邊欄溢出 –

+0

嘗試的var_dump($結果),看看什麼在它 – igor

回答

0

請把這個

if($q="1") to if($q=="1") 

查詢只執行如果$ Q值== 1,並且確保你獲得$ Q值= 1總是

0

這是許多人的一個最常見的錯誤,你是不是檢查返回值你調用的函數。當你這樣做:

$result = mysqli_query($con,$sql); 

,你應該檢查是否$result是假的。如果是,那麼很可能是你的查詢是不正確的

試試這個檢查它是否是這樣

if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 

正確的,不要忘了更改

if($q="1") 

if($q=="1") 

如果仍然出現相同的錯誤,請檢查您是否有user表格和state列拼寫正確。

這樣就可以解決問題

相關問題