Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment diviser les enregistrements de table MySQL en deux pour les afficher de chaque côté d'une page

Vous pouvez simplement l'arrondir à l'inférieur pour toujours obtenir un nombre entier. De cette façon, une décimale ne cassera pas la requête.

$half = floor($numRows/2);

Vous voudrez utiliser un nouveau $half valeur en utilisant ceil() de l'autre côté pour arrondir, afin de ne pas sauter une ligne au milieu.

En passant, il serait peut-être préférable de ne faire qu'une seule requête renvoyant chaque ligne, puis de générer les lignes jusqu'à $half d'un côté, puis continuez de ce point jusqu'à la fin de l'autre côté. Ensuite, vous n'atteignez la base de données qu'une seule fois et il est plus facile de voir ce qui se passe.

par exemple

$result = mysql_query("SELECT * FROM cultures ORDER BY name ASC");
$half   = floor(mysql_num_rows($result)/2);
$count  = 0;

// First side.
while($count <= $half
      && $row = mysql_fetch_array($result))
{
    // ...
    $count++;
}

// ...

// Second side.
while($row = mysql_fetch_array($result))
{
    // ...
}