我有一个问题,在div弹出后回显或甚至检索一个值,任何人都可以帮助问题是在divpopup后$ r没有显示。 或者更确切地说,fetch不会迭代,它只显示第一条记录。 提前谢谢
<?php
$con = mysql_connect('****', 'root','****') or die('Error connecting to MySQL server.');
mysql_select_db("dreschema", $con) or die("cannot select DB");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link href="styles2.css" rel="stylesheet" type="text/css" />
<link href="styles.css" rel="stylesheet" type="text/css" />
<link href="styleshref.css" rel="stylesheet" type="text/css" />
<script>
</script>
</head>
<body>
<div id="container1">
<div align="center"></div>
<div id="mainContent1">
<?php
$text = $_GET["searchtext"];
echo "Results displayed for ". $text;
echo '</br>';
$query4 = "SELECT * from products WHERE ProductName LIKE '%$text%'";
$data = mysql_query($query4, $con);
if (!mysql_query($query4, $con)){
print mysql_error();
exit;
}
while ($row = mysql_fetch_array($data)) {
echo $row['ProductName'];
if($row['Stock']== 0 OR $row['Stock']== "")
{
echo "(SOLDOUT)";
echo '<input type="hidden" name="prod" value="' . $row['Image'] . ' " " id = "prod">';
echo '<a href="preorder.php?image=' . $row['Image'] . '"><img id = "imageid" src="' . $row['Image'] . '" alt="' . $row['Image'] . '" width="80" height="80" style="margin-left:1.5em;margin-top:1.5em;"/></a>';
echo $row['Price'] . "PhP";
?>
<div id="blanket" style="display:none;"></div>
<div id="popUpDiv" style="display:none;">
<a href="#" onclick="popup('popUpDiv')"><font size =" 20">x</font></a><br>
<a href="#" onclick="popup('popUpDiv')" ><?php echo '<iframe src="orders2.php?image=' . $row['Image'] . '"style= position:absolute;width:500px;height:500px;"></iframe>';?> </a>
</div>
<a href="#" onclick="popup('popUpDiv')">Click to Open CSS Pop Up</a><br>
<?php
}
else
{
echo '<input type="hidden" name="prod" value="' . $row['Image'] . ' " " id = "prod">';
echo '<a href="orders2.php?image=' . $row['Image'] . '">';
echo '<img id = "imageid" src="' . $row['Image'] . '" alt="' . $row['Image'] . '" width="80" height="80" style="margin-left:1.5em;margin-top:1.5em;"/></a>';
echo $row['Price'] . "PhP";
$r = $row['Image'];
echo '<br>';
?>
<div id="blanket" style="display:none;"></div>
<div id="popUpDiv" style="display:none;">
<?php
echo $r;
?>
<a href="#" onclick="popup('popUpDiv')"><font size =" 20">x</font></a><br>
<a href="#" onclick="popup('popUpDiv')" ><?php echo '<iframe src="orders2.php?image=' . $row['Image'] . '"style= position:absolute;width:500px;height:500px;"></iframe>';?> </a>
</div>
<a href="#" onclick="popup('popUpDiv')">Click to Open CSS Pop Up</a><br>
<?php
}
}
?>
<!-- end #mainContent --></div>
<!-- end #container --></div>
</body>
</html>
答案 0 :(得分:0)
这可能是也可能不是答案,但它不适合评论部分,所以我想在这里扩展它。查看代码很难判断问题是否是(a)MySQL只返回一行; (b)PHP循环遇到问题;或者(c)一切正常,但你的HTML标记是如此混乱,浏览器根本无法按照你的想法呈现它。
要消除第一个问题,请在查询后立即添加:
$num_rows = mysql_num_rows($data);
if (!$num_rows){die('no rows');}
echo "<p>$num_rows rows returned</p>";
通过这种方式,您可以查看返回的行数。另外,请勿这样做:if (!mysql_query($query4, $con)){
。这样做if(!$data){
。
----- ASIDE ----
最好切换到
PDO
或mysqli
,因为您当前的设置会被黑客入侵,而且您的数据会搞砸。 *关于MySQL 前面,至少应该设置$text = mysql_real_escape_string($_GET["searchtext"]);
以避免最简单 SQL注入攻击,为了g * d的缘故,请不要将root
用户用于您的站点。设置具有有限权限的MySQL用户并使用它们...另外,为了避免XSS注入,当strip_tags($_GET["searchtext"])
将文本echo
添加到屏幕时,您还应该echo '<input type="hidden" name="prod" value="' . $row['Image'] . ' " " id = "prod">';
。*
----- / ASIDE ----
如果问题不是查询返回单个响应,请查看源代码。你确定你没有看到多个循环值的代码吗?您有很多标记问题。我突出了几点:
value
- 那些在那里做的是什么?有一个漂浮的“只是坐在那里,这可能弄乱浏览器如何解释标签。此外,您通常在属性值中包含前导或尾随空格...除去这些空格,尤其是在prod
属性中。<iframe src="orders2.php?image=' . $row['Image'] . '"style= position:absolute;width:500px;height:500px;"></iframe>
)。 ID应该是唯一的,所以如果代码成功循环,你最终会得到许多具有相同ID的元素(这不应该导致你面临的问题,但是包含javascript,你不是向我们展示,所以JS可以删除重复的ID。)style
- src
属性合并到style
属性中。你需要一个空间,或者浏览器可能不知道如何处理这两个属性。<a href="orders2.php?image=' . $row['Image'] . '">
属性没有开头“但它有一个结束” - 更多相同。if
- 你没有开场“但你有一个结束”......你可以完全省略引用,但你不能同时做到这两点。还有更多问题,以及一些您应该清理的通用编码标准,但是您应该查看生成的代码,并确保它通过了。
最后,确保图像应该显示。在第一个iframe
语句中,图像永远不会被告知显示(可能是在else
中),在echo
语句中,图像被div
编辑为{{1} {}有} style="display:none"
,所以我们不希望看到它。如果问题只是没有显示图像,请确保iframe src正确(当您将图像URI作为urlencode
变量传递时,您可能需要_GET
图像URI 。)
如果您发布生成的HTML代码(并确认它不仅仅是MySQL返回一行),我们可能会进一步提供帮助。