2013-11-01 3 views
1

Я пытаюсь создать таблицу, которая генерируется путем выбора строк, содержащих QLD, в состоянии столбца таблицы. Я не уверен, как работает массив fetch, но я знал, что он возвращает строку, которая соответствует данному условию.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

у вас есть опечатка здесь, если ($ д = «1») – igor

+0

Sidebar Переполнение –

+0

попытка var_dump ($ результат), чтобы увидеть, что там в ней – igor

ответ

0

Пожалуйста, измените этот

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

ваш запрос выполнить только если $ д значение == 1, а также убедитесь, что вы получаете значение $ д = 1 всегда

0

Это самая распространенная ошибка многих людей, Вы не проверяя возвращаемые значения функций, которые вы вызываете. Когда вы сделаете это:

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

вы должны проверить, если $result ложно. Если это так, то, скорее всего, ваш запрос не исправить

попробовать это, чтобы проверить, если это правильно, делая это

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

и не забудьте изменить

if($q="1") 

с

if($q=="1") 

если у вас все еще такая же ошибка, проверьте, есть ли у вас стол user сПравильно написана колонка.

это должно решить проблему

Смежные вопросы