sql >> Database >  >> RDS >> Mysql

Hoe MySQL-tabelrecords in tweeën te splitsen om aan elke kant van een pagina weer te geven

Je kunt het gewoon naar beneden afronden, zodat je altijd een geheel getal krijgt. Op die manier zal een decimaal de zoekopdracht niet breken.

$half = floor($numRows/2);

U wilt een nieuwe $half . gebruiken waarde met behulp van ceil() aan de andere kant om naar boven af ​​te ronden, zodat je geen rij in het midden overslaat.

Even terzijde, het is misschien beter om slechts één query te doen die elke rij retourneert en de rijen vervolgens uit te voeren tot $half aan de ene kant, ga dan vanaf dat punt verder naar het einde voor de andere kant. Dan raak je de database maar één keer en is het makkelijker om te zien wat er aan de hand is.

bijv.

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


  1. Hoe voeg ik een voorloopnul toe aan een getal in een Oracle SQL-query?

  2. Kolom beveiligen, update niet toestaan, alleen invoegen toestaan ​​als NULL in MySQL

  3. Selecteer een object gemaakt tussen twee datums door Bookshelf, MySQL, Knex op node.js

  4. Express.js en MySQL-model + validatie