我找不到我的代码有什么问题。
我想在循环中使用$i来获取图像。但它不起作用。怎么了?
while($i<=64)
{
$sql = pg_query("SELECT * FROM foods WHERE foodId = '".$i."';") or die("Query failed with error: ".pg_last_error($conn));
$row = pg_fetch_array($sql);
$j = $i%2;
if($j==1)
{
echo "<label class='checkbox1'> <input type='checkbox' name='foods' value='".$row['foodname']."'>".$row['foodname']."</label><img src='/images/".$i.".jpg'><br/>";
}
else
{
echo "<label class='checkbox2'><input type='checkbox' name='foods' value='".$row['foodname']."'>".$row['foodname']." <label><img src='/images/".$i.".jpg'><br/>";
}
$i++;
}
IMG 标记无法正常工作。
要么是
你没有将 i 设置为任何东西: $i = 0;
或者你有一个不起作用的数字周围的"'。
删除 ' ' 并将$i设置为 0。
应该工作。
编辑:仅在处理字符串时使用" '。
如果您没有显示图像,请在浏览器中运行PHP文件,然后右键单击页面并选择"查看源代码"导航到代码所在的位置并检查正在调用的内容。您的代码可能未定位到正确的区域。
$i = 0; // Set $i;
while($i<=64)
{
$sql = pg_query("SELECT * FROM foods WHERE foodId = $i;") or die("Query failed with error: ".pg_last_error($conn));
$row = pg_fetch_array($sql);
$j = $i%2;
if($j==1)
{
echo "<label class='checkbox1'> <input type='checkbox' name='foods' value='".$row['foodname']."'>".$row['foodname']."</label><img src='/images/".$i.".jpg'><br/>";
}
else
{
echo "<label class='checkbox2'><input type='checkbox' name='foods' value='".$row['foodname']."'>".$row['foodname']." <label><img src='/images/".$i.".jpg'><br/>";
}
$i++;
}
对
循环进行了轻微重写,因为有些人注意到$i
可能没有正确初始化。我注意到您错过了关闭第二个标签。虽然"但它不起作用"是相当笼统的。你得到任何输出吗?图像路径是否错误?图像真的存在吗?
for($i = 0; $i <= 64; $i++)
{
$sql = pg_query("SELECT * FROM foods WHERE foodId = '".$i."';") or die("Query failed with error: ".pg_last_error($conn));
$row = pg_fetch_array($sql);
$class = ($i%2 == 1) ? "checkbox1" : "checkbox2";
echo "<label class='".$class."'> <input type='checkbox' name='foods' value='".$row['foodname']."'>".$row['foodname']."</label><img src='/images/".$i.".jpg'><br/>";
}
$result = pg_query("SELECT * FROM foods WHERE foodId < 65;") or die("Query failed with error: ".pg_last_error($conn));
$rows = pg_fetch_all($result);
foreach ( $rows as $row ) {
$j = ( $row['foodId'] & 1 ? 1 : 2 );
echo "<label class='"checkbox{$j}'"> <input type='"checkbox'" name='"foods'" value='"{$row['foodname']}'">{$row['foodname']}</label><img src='"/images/{$row['foodId']}.jpg'"><br/>";
}
好的,这是一个相当大的重写 - 但 65 个查询 - 真的吗?! 一个人会为此做:)
$j是通过检查$row['foodId']和1来设置
的echo 中的 ''" 只是转义了 " 标记,因此我们可以使用 "{$php_variable}" - 恕我直言,这比所有 .串联运算符。
您的原始代码混合了 ' 和 " - 可能有些在错误的地方 - 也许是 img 失败的原因。
正如几个人所说 - 检查生成的 html 源代码并证明这些图像确实存在 - src="/images/1.jpg" 是一个绝对路径 - 所以如果你在 localhost/my_test_folder 上运行这段代码,如果图像不在 localhost/images 中,它将失败。
也许尝试一个相对路径 - src="images/1.jpg" - 没有前导/