如何使用;至于;循环PHP以在PHP中生成多个变量,

如何使用;至于;循环PHP以在PHP中生成多个变量,,php,Php,我有5个以上的图片链接,所以我想这样做, $p_image1、$p_image2、$p_image3、$p_image4、$p_image5 但是我不明白为什么我的cod不工作 这是我获取数组数据的代码: $id = mysqli_real_escape_string($koneksi,$_GET['i']); $query = mysqli_query($koneksi,"SELECT * FROM `tb_produk` WHERE `p_id` = '$id'"); $get =

我有5个以上的图片链接,所以我想这样做, $p_image1、$p_image2、$p_image3、$p_image4、$p_image5

但是我不明白为什么我的cod不工作

这是我获取数组数据的代码:

$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
    }
}
?>
if($j_image>1){
对于($i=1;$i 4){
打破
}
?>

数组是处理多个相似值的完美方法。您不应该考虑为此做单独的变量。

不过,为了创建动态变量,您需要使用额外的
$
,并将它们用大括号括起来
{..}

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;
   }
($i=1;$i 4)的
{
打破
}

我认为创建动态命名变量只是让事情变得更加困难的一种方式。
相反,我相信解决问题就是解决办法

动态变量只是比数组更难处理,总有一天会在代码中产生bug

在这里,我在$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++;

}
$i=1;
foreach($get as$image){
如果($i>4){
打破
}
echo“
  • \n”; 回显“”。“\n”; 回声“
  • \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留在了你的代码中


    $get
    假设是
    $\u get
    ?我真的不明白。不是$\u get,只是$get for$get=mysqli\u fetch\u数组($query);你应该使用多维数组,而不是递增的varabelso如何为echo创建变量?echo$p\u image[1]或echo$p\u image.$i???不是,因为我在“for”中设置了“echo”不在“for”外部逐个循环loop@bayu666然后使用
    echo${'p_image'.$i};
    @bayu666试试这个
    echo$get['p_image'.$i];
    看看你是否仍然得到了值?我仍然没有得到值:(天哪,我现在真的很沮丧