【发布时间】:2016-11-03 22:59:15
【问题描述】:
这个错误没有意义。下面是代码块和我的解释。
<?php foreach($rows as $value): ?>
<?php echo $value['authorname'] . "<br />\n";?>
<?php echo $value['title'] . "<br />\n";?>
<?php echo $value['rating'] . "<br />\n";?>
<?php echo $value['imagelocation'] . "<br />\n";?>
<div class="block">
<div class="row">
<div class="col-md-4 col-md-8">
<div class="widget-block">
<input id="rate1" value="<?php echo $value['rating'];?>" type="number" class="rating" data-max="5" data-min="0" data-size="sm" data-show-clear="false" readOnly="readOnly">
<a href="<?php echo $value['sellerssite'];?>" target="#"><img class="img-responsive wow fadeInLeftBig animated" data-wow-duration="1.5s" src=<?php echo $value['$imagelocation'];?> alt=<?php echo $value['$authorname'];?>></a>
<br>
<a href="<?php echo $value['sellerssite'];?>" class="btn btn-success" target="_blank">Buy this book</a>
</div>
</div>
<div class="col-md-6 col-md-8">
<div class="section-sub-title">
<article class="section-title-body white">
<h1 class="head-title">Author: <span><?php echo $value['$authorname'];?> -</span> <?php echo $value['$title'];?></h1>
<span class="point-line hidden-xs hidden-sm"></span>
<p>
<?php echo $value['$review'];?>
</p>
</article>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
在 foreach 循环开始后的 echo 语句可以很好地打印出每个变量。直到我们深入到 html 才出现问题。
此代码从数据库提供一组数据,然后根据数据量构建 html 代码块。在这种情况下,我要提取 8 条记录,因此此循环会创建此代码块的 8 个副本。令人沮丧的是变量“$rating”在所有 8 个块中注入,但其他变量都没有,即使它们在 echo 语句中正确打印在页面上。
也许是变量中的数据?例如,在解析代码时,评估的第一个变量是 $rating 并且可以工作。下一个是img标签$imagelocation中的src属性,实际值为img\book_covers\TrueConviction.jpg
是 _ 和 .特殊字符并导致问题?我的返回值会有 _ 。 \ 和空格。
感谢您的帮助。
【问题讨论】:
-
break 标签应该像这样 echo $value['authorname'] 。 "\n";?>
-
您是否尝试过 print_r($rows) 并查看它包含的内容....为了使其工作,$rows 必须是一个数组...您编写的所有这些键都必须存在于 $价值...
-
因为 rating 输出正确,并且你生成了 8 个代码块,另一个没有正确输出的事实表明它们是空的。尝试 var_dump($value) 或 var_dump($rows) (或 barudo 建议的 print_r)查看变量内容。我的猜测是,您要么不从 db 中选择这些列,要么使用其他名称选择它们。
-
感谢您的回复,但是正如我上面所说的,所有的 echo 语句都会打印从数据库返回的变量。这就是为什么这如此令人沮丧的原因,因为我回显了打印作者名和图像位置,然后突然出现空的六行代码?没有意义。我觉得问题是变量中的数据是原因,字符 _ \ 。它们是变量中字符串的一部分。
-
错字:
$value['$imagelocation'];以及此后发现的类似错字。从您的键中删除前缀 $。