0

我找不到我的代码有什么问题。

我想在循环中使用 $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 标签无法正常工作。

4

4 回答 4

0

要么是您没有将 i 设置为任何东西:$i = 0;

或者你在一个不起作用的数字周围有 ' ' 的事实。

删除 ' ' 并将 $i 设置为 0。

那时应该工作。

编辑:只有在处理字符串时才使用 ' '。

如果您的图像没有显示,请在浏览器中运行您的 PHP 文件并右键单击该页面并选择“查看源代码”导航到代码所在的位置并检查调用的内容。您的代码可能未位于正确的区域。

于 2013-10-12T18:21:15.847 回答
0
$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++;
}
于 2013-10-12T18:26:07.830 回答
0
$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 个查询——真的吗?!一个人会这样做:)

通过检查 $row['foodId'] & 1 来设置 $j

echo 中的 \" 只是转义了 " 标记,因此我们可以使用 "{$php_variable}" - 恕我直言,所有 . 连接运算符。

您的原始代码有一个令人讨厌的 ' 和 " 混合 - 可能一些在错误的地方 - 也许是 img 失败的原因。

正如一些人所说 - 检查生成的 html 源并证明这些图像确实存在 - src="/images/1.jpg" 是绝对路径 - 所以如果你在 localhost/my_test_folder 上运行此代码,它将失败如果图像不在本地主机/图像中。

也许尝试一个相对路径 - src="images/1.jpg" - 没有前导 /

于 2013-10-12T19:37:36.583 回答
0

一些人注意到$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/>";
}
于 2013-10-12T18:39:20.943 回答