我有5个以上的图片链接,所以我想这样, $ p_image1,$ p_image2,$ p_image3,$ p_image4,$ p_image5
但是我不明白为什么我的鳕鱼不起作用...
这是我获取数组数据的代码:
$id = mysqli_real_escape_string($koneksi,$_GET['i']);
$query = mysqli_query($koneksi,"SELECT * FROM `tb_produk` WHERE `p_id` = '$id'");
$get = mysqli_fetch_array($query);
这是我的循环代码:
if ($j_image > 1) {
for ($i = 1; $i <= $j_image; $i++) {
$p_image[] = $get['p_image'.$i];
if ($i > 4) {
break;
}
?>
<li data-uk-slideshow-item="<?php echo $i ?>">
<img src="<?php echo $get['p_image'.$i]; ?>">
</li>
<?php
}
}
?>
为什么这不起作用,谢谢您之前的帮助:)
答案 0 :(得分:0)
我认为创建动态命名变量只是使事情变得更困难的一种方法。
相反,我认为解决问题是解决方案。
动态变量比数组更难使用,并且有一天会在代码中产生错误。
这里我在$ get数组上使用了foreach,这意味着它将循环存在的项目,而我们不必计算和猜测事物。
然后我删除了您创建的这个新数组,因为我看不到它的要点,而是直接使用我的foreach变量$ image转到输出部分。
我还把代码保存在PHP中,并回显了html,因为我觉得它更易于阅读,但这纯粹是观点,您可以做任何想做的事。
$i=1;
foreach($get as $image){
if ($i > 4) {
break;
}
echo "<li data-uk-slideshow-item=" . $i .">\n";
echo ' <img src="' . $image . '">' . "\n";
echo "</li>\n";
$i++;
}
示例输出:
<li data-uk-slideshow-item=1>
<img src="1">
</li>
<li data-uk-slideshow-item=2>
<img src="2">
</li>
<li data-uk-slideshow-item=3>
<img src="3">
</li>
<li data-uk-slideshow-item=4>
<img src="4">
</li>
不确定您的代码是否应该输出四个或五个项目。
但是我只是保留了if和break,就像在您的代码中一样。
答案 1 :(得分:-1)
数组是处理多个相似值的理想方法。您真的不应该考虑为此创建单独的变量。
仍然,为了创建动态变量,您需要使用其他$
,并将它们用花括号{..}
包裹起来:
for ($i = 1; $i <= $j_image; $i++) {
// Create string for dynamic variable name and put it inside curly braces
// use $ in front to define this as a new variable
${'p_image'.$i} = $get['p_image'.$i];
if ($i > 4) {
break;
}