как использовать & quot; для & quot; цикл PHP, чтобы сделать несколько переменных в PHP,

у меня есть более 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

Решение

Массив — это идеальный способ обработки нескольких похожих значений. Вы действительно не должны рассматривать создание отдельных переменных для этого.

Тем не менее, для создания динамических переменных, вам нужно использовать дополнительные $и заверните их в фигурные скобки {..}:

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;
}
-1

Другие решения

Я думаю, что создание динамических именованных переменных — это просто способ усложнить ситуацию.
Вместо этого я считаю, что решение проблемы — это решение.

С динамическими переменными работать сложнее, чем с массивами, и они будут вызывать ошибки в вашем коде.

Здесь я использую foreach для массива $ get, что означает, что он будет зацикливать имеющиеся элементы, и нам не нужно считать и угадывать вещи.
Затем я удалил этот новый массив, который вы создали, так как я не вижу его смысла и вместо этого перешел непосредственно к выходной части с моей переменной 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 и сломался, как это было в вашем коде.

https://3v4l.org/MrAng

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector