PHP错误或逻辑错误?
问题描述:
所以这是我的问题。我有2张桌子。一个用于产品细节,另一个用于产品数量。PHP错误或逻辑错误?
在产品详细信息中有一个字段状态应该可用或不可用。然后在产品数量表中有一个qleleft,表示产品可用的数量。现在的问题是我把数量放在4个产品上,意味着没有剩下的数量,它应该回显“项目缺货”。它的工作原理,但只有一个项目。我无法弄清楚,因为我分析了一切,我认为没有问题。这是一个错误还是什么?
这里是我的代码:
<?php
if (isset($_GET['id']))
{
include('config.php');
$id=$_GET['id'];
$result = mysql_query("SELECT * FROM athan_products WHERE product_id = $id");
while($row3 = mysql_fetch_array($result))
{
$resultq = mysql_query("SELECT * FROM inventory WHERE product_id LIKE '%".$id."%'");
//$resultq = mysql_query("SELECT * FROM inventory WHERE product_id LIKE =$id");
while($rows = mysql_fetch_array($resultq))
{
$qwerty=$rows['qtyleft'];
}
if ($qwerty !=0){
echo '<tr>';
//echo '<td>'.$row3['product_size_name'].'</td>';
echo '<td>'.$row3['price'].'</td>';
echo '<td>'.$row3['description'].'</td>';
echo '<td>'.'<input name="but" type="image" value="'.$row3['id'].'" src="images/button.png" onclick="return myFunction()" />'.'</td>';
echo '</tr>';
}
else
{
echo '<tr>';
//echo '<td>'.$row3['product_size_name'].'</td>';
echo '<td align="center">'.'<h2>'.'Item is out of stock!'.'</td>';
echo '</tr>';
//echo '<td>'.'<h1>'.'"not available"'.'</h1>'.'</td>';
}
}
}
?>
答
我检查你的代码,我觉得没有任何这样的错误,但你需要改变你的查询。
$resultq = mysql_query("SELECT * FROM inventory WHERE product_id LIKE '%".$id."%'");
这是下面给出的。
$resultq = mysql_query("SELECT * FROM inventory WHERE product_id='".$id."'");
希望你能解决你的问题。
谢谢。
+0
哦,我的!我的荣幸先生这个救我的日子(y) – user3295525
太多的code.Can你只需发布与您的问题相关的代码? – Rikesh
**危险**:您正在使用[an **过时的**数据库API](http://*.com/q/12859942/19068),并应使用[现代替换](http:// php。净/手动/ EN/mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻击](http://bobby-tables.com/)**,现代的API会使[防御]更容易(http://*.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己从。 – Quentin
机会是一个逻辑错误,但相关的PHP被很多不相关的标记掩盖了。我确实注意到你正在使用mysql_ *函数,并将用户输入直接放入查询中。前者是不好的,因为mysql_ *已被弃用,后者是不好的,因为它会打开你的SQL注入攻击。 – GordonM