JavaScript — почему все мои данные отображаются, даже если я поставил условное, чтобы показать его на 3 данных в слайд-шоу?

это мой код

$produk = $_GET['produk'];
$sql = "select * from tbproduk where namaproduk = '$produk' ";
$query = mysqli_query($con,$sql) or die("error $sql");
$num = mysqli_num_rows($query);
echo $num;
if(!empty($num)) {
for ($x = 1; $x <= $num / 3; $x++) {
echo '<div class="w3-content w3-display-container  mySlides">
<div class="row">';
for ($i = 0; $i <= 5; $i++) {
$result = mysqli_fetch_array($query);
$namaproduk = $result['namaproduk'];
$harga = $result['harga'];
$pembeli = $result['pembeli'];
if(!empty($harga)) {
echo '<div class="col-4">
<img class="gbr"/>
<span> ' . $harga . ' </span><button class="tengbr" onclick="beli(' . $namaproduk . ',' . $pembeli . ')">Beli</button>
</div>';
}else{
echo "";
}
}
echo '</div>
</div>';
}
}else{
echo "<script>
alert('tidak ada produk yang dimaksud');
document.getElementsByClassName('navigasi').style.display = 'none';
</script>
";
}

это на самом деле работает, но все мои данные в переменной $num показывается на нагрузке, и я должен перейти к другому slideindex, и это будет нормально. Это мой код скрипта

var slideIndex = 1;
showDivs(slideIndex);
function plusDivs(n) {
showDivs(slideIndex += n);
document.getElementById('slideindex').innerText = slideIndex;
}

function showDivs(n) {
var i;
var x = document.getElementsByClassName("mySlides");
if (n > x.length) {slideIndex = 1}
if (n < 1) {slideIndex = x.length}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
x[slideIndex-1].style.display = "block";
}

и это мой HTML-код, чтобы перейти к другому индексу слайда

<div class="navigasi">
<a style="border: 1px solid black;padding: 10px;background-color: grey;color: white;cursor: pointer;" onclick="plusDivs(-1)">&#10094;</a>
<span id="slideindex"></span>
<a style="border: 1px solid black;padding: 10px;background-color: grey;color: white;cursor:pointer;" onclick="plusDivs(1)">&#10095;</a>

<span id="slideindex"> чтобы показать, где был индекс

0

Решение

У вас есть 2 форса, во-первых, вы делите X / 3, что не означает, что у вас будет только 3. 50/3 = 16. И внутри этого вы итерируете 6 раз. for ($i = 0; $i <= 5; $i++)

Почему бы тебе просто

 $sql = "select * from tbproduk where namaproduk = '$produk' LIMIT 0,3";

Или даже

for ($x = 1; $x <= 3; $x++)
1

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

Других решений пока нет …

По вопросам рекламы [email protected]