[php/mysql] mysql_fetch_object sorteren

Pagina: 1
Acties:

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 23-08 15:45
Hey lui,

als ik met de volgende query items uit m'n db haal:
PHP:
1
2
3
4
5
6
7
8
<?
mysql_select_db("db");
$sql = "SELECT id,naam,getal FROM blaat ORDER BY id DESC LIMIT 40";
$result = mysql_query($sql);
while ($record = mysql_fetch_object($resultaat)) {

}
?>

Kan ik die resultset dan nog ordenen op id, of naam, of getal?

Verwijderd

Waarom zou je dat willen?

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 23-08 15:45
Op donderdag 10 januari 2002 16:49 schreef Zef het volgende:
Waarom zou je dat willen?
Omdat ik de laatste 40 items moet hebben, maar ze moeten ook nog geordent worden, en hoe ze geordent moeten worden moet 'uitkiesbaar zijn'.

Verwijderd

Dan laat je de query dynamisch genereren. ORDER BY gedeelte laten bepalen door gebruiker (niet direct natuurlijk).

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 23-08 15:45
Op donderdag 10 januari 2002 16:57 schreef Zef het volgende:
Dan laat je de query dynamisch genereren. ORDER BY gedeelte laten bepalen door gebruiker (niet direct natuurlijk).
Dat heeft geen zin, jij bedoelt bijvoorbeeld dat als de user kiest voor 'order op alfabet', dat hij dan in de query ORDER BY naam uitvoert of niet?

Dat kan natuurlijk wel, maar dan pakt hij niet de laatste 40 items!

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
dan maak je links op die pagina
sorteer op
<a href="pagina.php?sort=id>id</a>
<a href="pagina.php?sort=naam>naam</a>

en dan de query:
$sql = "SELECT blaat FROM blaat WHERE blaat ORDER BY $order LIMIT 0, 40";

www.dannyhiemstra.nl


  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
hier pakt die de eerst 40
omdat je als ASC sorteerd.
als je laatste wil hebben dan moet je op DESC sorteren
alleen dan krijg je namen met Z eerst enz.

Je kan natuurlijk wel eerst zoiets doen:
PHP:
1
2
3
4
5
6
<?
$emd = mysql_numrows(mysql_query("SELECT id FROM blaat WHERE blaat"));
$start = $end - 40;

$sql = "SELECT blaat FROM blaat WHERE blaat ORDER BY $order ASC LIMIT $start, $end";
?>

www.dannyhiemstra.nl


Verwijderd

Op donderdag 10 januari 2002 17:03 schreef FireFoxx het volgende:
PHP:
1
2
3
<?
$sql = "SELECT blaat FROM blaat WHERE blaat ORDER BY $order ASC LIMIT $start, $end";
?>
Let wel, $end staat niet voor eind maar voor aantal ;)

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
damn je hebt gelijk |:(
ik heb koffie nodig *D
PHP:
1
2
3
4
5
6
7
<?
$aantal = 40; //aantal rows die je wil zien
$total = mysql_numrows(mysql_query("SELECT id FROM blaat WHERE blaat"));
$start = $total - $aantal;

$sql = "SELECT blaat FROM blaat WHERE blaat ORDER BY $order ASC LIMIT $start, $aantal";
?>

zo dan :D

www.dannyhiemstra.nl


  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 23-08 15:45
Oja, op die manier...daar had ik nog niet aan gedacht.
Thnx.

Trouwens, gebruik NOOIT mysql_num_rows, dat is echt retetraag....

Altijd count(id) gebruiken :)

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Op donderdag 10 januari 2002 20:10 schreef Tangletje het volgende:
Oja, op die manier...daar had ik nog niet aan gedacht.
Thnx.

Trouwens, gebruikt NOOIT mysql_num_rows, dat is echt retetraag....

Altijd count(id) gebruiken :)
Da's ook logisch, omdat je bij count() maar 1 row van de database terugkrijgt, bij mysql_num_rows() moet eerst een enorme resultset vanuit de database naar php worden gestuurd.
Pagina: 1