Mysql
 sql >> Database >  >> RDS >> Mysql

Come dividere a metà i record della tabella MySQL da visualizzare su ciascun lato di una pagina

Puoi semplicemente arrotondarlo per difetto in modo da ottenere sempre un numero intero. In questo modo, un decimale non interromperà la query.

$half = floor($numRows/2);

Ti consigliamo di utilizzare un nuovo $half valore utilizzando ceil() dall'altro lato per arrotondare per eccesso, in modo da non saltare una riga nel mezzo.

Per inciso, potrebbe essere meglio eseguire solo una query restituendo ogni riga, quindi restituire le righe fino a $half da un lato, quindi continua da quel punto fino alla fine per l'altro lato. Quindi stai colpendo il database solo una volta ed è più facile vedere cosa sta succedendo.

ad esempio

$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))
{
    // ...
}