Ik ben mijn site aan het omzetten naar mysqli ipv mysql. Dit op aanraden van mijn provider.

Op een pagina wil ik dat na drie plaatjes er een nieuwe regel wordt gemaakt.

voorheen deed ik dat zo:

$a is het aantal items (rows) dat door de query wordt gegeven.
 
<? php

$query = "select item from tabel";
		$result = mysql_db_query ($db, $query);
		$numOfRows = mysql_num_rows ($result);

	             for ($a = 0; $a < $numOfRows; $i++)
			  {

			  $item = mysql_result ($result, $a, "item");
			  

                           if($a%3==0) { echo "<br>"; }
                           echo"item";
			  		  
		}
?>
 


Na drie items sloeg de pagina een regel over.

Nu heb ik dit:

<? php
$link = mysqli_connect('host', 'user', 'dbww', 'dbname');

$sql = "SELECT item FROM tabel";

if(!$res = mysqli_query($link, $sql))
{
    trigger_error('Fout in query: '.mysqli_error());
}
else
{

    while($row = mysqli_fetch_assoc($res))
    {
	   
	if(isset($a)) {$a = mysqli_num_rows($res);
	if($a%3==0) { echo "<br>"; } 

echo "item";
	   
    }
?>


Dit werkt echter niet! De rijen worden keurig geteld in $a.
r wordt echter geen nieuwe regel meer gemaakt.
Wat doe ik fout? Kan iemand helpen met een nieuwe code?

dank!
Johan
Zou je een duidelijekre titel kunnen gebruiken voor je topic die je probleem/vraagstelling beschrijft, en code-tags kunnen gebruiken?
- Ariën - op 04/03/2016 13:05:25

Zou je een duidelijekre titel kunnen gebruiken voor je topic die je probleem/vraagstelling beschrijft, en code-tags kunnen gebruiken?


Zoiets?
Op regel 16 bepaal je $a telkens weer binnen je while lus. Ik weet niet of dit goed gaat. Misschien bedoel !isset.

Is het niet eenvoudiger om dit te doen? In principe heb je num_rows niet nodig.

   $a = 0;
   while($row = mysqli_fetch_assoc($res)) {
       
       if ($a%3==0) { echo "<br>"; } 
       $a = $a + 1; 

       echo "item";
    }

Reageren