0
votes

hello guys i am trying to make a foreach loop in a while loop. in foreach loop i try to produce list elements with divs inside them but i have very strange output

here is my code

$countercat= 0;
$classvar= 1;
echo "<div class='selector-page'>";
echo "<div class='selector'>";
echo "<ul>";
while ($countercat <= 8){
  $stmt=$conn->prepare('SELECT eidos, name,  meta_keys, address, telephone, perioxi, st_img, st_open, st_close, lat, longtit FROM magazia WHERE perioxi= :perioxi AND eidos= :eidos  ORDER BY st_id ASC');
$stmt->bindParam(':perioxi', $name, PDO::PARAM_STR);
$stmt->bindParam(':eidos', $eidos, PDO::PARAM_STR);
$eidos= $c_titles[$countercat]['c_name'];
$stmt->execute();
$allrows=$stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($allrows as $row) {
  echo "<li>";
  echo "<div class='p". $classvar . " w3-card targetDiv w3-margin-top cardsmar'>";
  echo "<img src='../uploads/" . $row['st_img'] . "' class='cccard' alt='" . $row['name'] . "'";
  echo "<div class='w3-container w3-center'>";
  echo "<h3>" . $row['name'] ."</h3>";
  echo "<p>" . $row['eidos'] . "</p>";
  echo "<p>" . $row['address'] . " , " . $row['perioxi'] . "</p>";
  echo "<p>" . $lang['wrlt'] . " : " . $row['st_open'] . "-" . $row['st_close'] . "</p>";
  echo "<a href='katastimata.php?name=" . $row['name'] . "' role='button' class='w3-button w3-round w3black'>" . $lang['t9'] . "</a><br />";
  echo "<a href='https://www.google.com/maps?q=loc:" . $row['lat'] . "," . $row['longtit'] . "' role='button' class='w3-button w3-round w3-green btnmar'>" . $lang['spot2'] . "</a>";
  echo "</div>";
  echo "</div>";
  echo "</li>";

}
$countercat++;
$classvar++;

  }
  echo "</ul>";
  echo "</div>";
  echo "</div>";
}

?>

here is an image from my debugger consonle

enter image description here

as you see in the image inside in the ul tag exists only one li elemenemt and the rest of them are out side ul /ul.

my first thought was that is not valid to put div tag in a li tag but this is not true if i use this in the top of my file

DOCTYPE html PUBLIC "-//W3C// DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/html1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang:"en"

i am stack here for so long

what am i missing guys?

thanks in advance

vaggelis

1

1 Answers

1
votes

You Didn't Close the <img> tag here.

echo "<img src='../uploads/" . $row['st_img'] . "' class='cccard' alt='" . $row['name'] . "'";

You Must Close the tag as

echo "<img src='../uploads/" . $row['st_img'] . "' class='cccard' alt='" . $row['name'] . "'/>";