2013-10-21 51 views
-1

在我的应用程序中,尝试从MySQL获取数据时出现以下错误。我不确定它是否是MySQL的错误配置,如果有人可以检查我的代码并告诉我MySQL应该如何查看它将不胜感激。尝试从PHP/Ajax中的数据库读取时发生MySQL错误

我收到的错误是无法查询:'where子句'中的未知列'id'。这只会显示一次,我从下拉框中选择一个项目。

这里是一个具有下拉框中就可以了

<!DOCTYPE html> 
<html> 
<head> 
    <title>Cable Management</title> 
    <link href="style.css" rel="stylesheet"> 
</head> 
<body> 
<div class="wrapper"> 
<?php include("Header.php"); ?> 
    <div id="main"> 
     <h1>Cable Management</h1> 
     <h2>Bournemouth Office</h2> 
     <p>Enter how many cables you want to remove or add from the Bournemouth office</p> 
     <script> 
      function showcables(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) 
        { 
         document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
        } 
       } 

       xmlhttp.open("GET","getcable.php?q="+str,true); 
       xmlhttp.send(); 
      } 
     </script> 
</head> 
<body> 

<form> 
<INPUT TYPE = "TEXT" NAME='amount' VALUE =""> 
<select name="cables" onchange="showcables(this.value)"> 
<option value="">Select a cable type</option> 
<option value="0.25 Metre Orange">0.25 Metre Orange</option> 
<option value="0.3 Metre Orange">0.3 Metre Orange</option> 
<option value="0.5 Metre Orange">0.5 Metre Orange</option> 
<option value="1 Metre Orange">1 Metre Orange</option> 
<option value="2 Metre Orange">2 Metre Orange</option> 
<option value="3 Metre Orange">3 Metre Orange</option> 
<option value="5 Metre Orange">5 Metre Orange</option> 
<option value="10 Metre Orange">10 Metre Orange</option> 
<option value="2 Metre Black">2 Metre Black</option> 
<option value="3 Metre Black">3 Metre Black</option> 
<option value="5 Metre Black">5 Metre Black</option> 
<option value="10 Metre Black">10 Metre Black</option> 
<option value="RJ 11">RJ11</option> 
<option value="RJ 11 to BT">RJ11 to BT</option> 
</select> 
<INPUT TYPE = "button" Name = "Remove" VALUE = "Remove"> 
<INPUT TYPE = "button" Name = "Add" VALUE = "Add"> 
</form> 
<br> 
<div id="txtHint"><b>The amount of cables left will be listed here</b></div> 

     </select> 
    </div> 
    <div class="footer-clear"></div><!-- add this at the end of wrapper --> 
</div> <!-- i added this closing tag, it was missing (for wrapper) --> 
<?php include("Footer.php"); ?> <!-- move footer to go outside of wrapper --> 
</body> 

</html> 

这里是一个真正具有了MySQL在它

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

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


$sql="SELECT * FROM bmouthoff WHERE id = '".$q."'"; 

$result = mysqli_query($con,$sql) or die ("Could not query: " . mysqli_error($con)); 

echo "<table>"; 
while($row = mysqli_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['Amount'] . "</td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 

mysqli_close($con); 
?> 
+0

再次检查表,确定该列实际上没有命名为ld(LD)? – Cups

+1

可能是id列不存在。 – Jai

+0

你可以显示你的数据表的脚本吗?你有一个名为id的列吗?你的身份证号码是“0.25米橙色”吗? – Luis

回答

1

命令getcable.php页面的主要页面的代码你表似乎没有名为id的列,因此您的查询失败。

SELECT * FROM `bmouthoff` WHERE `id` = 'youridexample'; 

错误消息...

在 'where子句'

未知列 '身份证'。

......说完这一切。

检出表格定义并将id替换为所需的实际列名称,或将表格中的列重命名为id

0

在查询

SELECT * FROM bmouthoff WHERE id = '".$q."'" 

您发送电缆的价值选择,至极不是整数。

1

你在开玩笑吗? value =“RJ 11 to BT”该值完全不是整数。也不能用intval函数转换为int。 不幸 我无法看到是否有一个null控制ID?

$q = isset($_REQUEST["id"]) ? $_REQUEST["id"] : null ; 
if($q != null) 
{ 
} 

工作得更好。 什么是ID列的类型?是int吗?所以'''的助手是无用的。

+0

对不起,我认为我的应用程序的工作方式可能存在问题。这个想法是,当选择下拉框中的某条电缆时,它将连接到MySQL并获取为该选定电缆类型设置的多个电缆。合理? –

相关问题