[PHP/MYSQL] Sortering lutk niet

Pagina: 1
Acties:

  • Compacto
  • Registratie: Mei 2000
  • Laatst online: 21-06 06:49
Ik haal met MySQL data uit een database, welke hij vervolgens in alfabetische volgorde weer moet geven... simpel dus. Waarom gooit php het alsnog door elkaar en hoe los ik het op ?

De code

PHP:
1
2
3
4
5
6
7
8
$db = mysql_connect("*****", "******", "******" );

mysql_select_db("cttnl",$db);
$result = mysql_query("SELECT id,datum,titel,auteur,text,link,comment,keyword FROM zoek ORDER BY titel ASC ",$db);

while ($myrow = mysql_fetch_row($result)) {
printf("<option value='main_zoek.php?id=%s'>%s</option>\n", strtolower($myrow[0]), strtolower($myrow[7]));
}


edit:
mijn welgemeende excuses voor de spelfout in de topictitel..

[ Voor 0% gewijzigd door Compacto op 04-08-2002 12:41 . Reden: spelfout ]


  • Glock
  • Registratie: November 2001
  • Niet online
hoe door elkaar gegooid?

post is hoe het eruit komt?

  • TheMrH
  • Registratie: April 2000
  • Laatst online: 01-09 22:45
Je sorteert op titel, en niet op je gewenste keyword?

The box said 'requires Windows 95 or better', so I installed Linux...


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 09:38
Als je de SQL opdracht handmatig invoert, krijg je dan wel wat je wilt hebben?

  • Compacto
  • Registratie: Mei 2000
  • Laatst online: 21-06 06:49
Als ik de SQL query handmatig invoer krijg ik wel het goede resultaat. Het is PHP die de resultaten door elkaar gooit :(

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
En als je nou gewoon alleen de basics doet :?

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 24-08 21:59

Macros

I'm watching...

Compacto schreef op 04 augustus 2002 @ 12:45:
Als ik de SQL query handmatig invoer krijg ik wel het goede resultaat. Het is PHP die de resultaten door elkaar gooit :(
Dat kan niet.
We need proof :)

"Beauty is the ultimate defence against complexity." David Gelernter


  • Glock
  • Registratie: November 2001
  • Niet online
Compacto schreef op 04 augustus 2002 @ 12:45:
Als ik de SQL query handmatig invoer krijg ik wel het goede resultaat. Het is PHP die de resultaten door elkaar gooit :(
Dit lijkt me heel sterk en onwaarschijnlijk, weet je zeker dat je op het goede sorteerd? of het juist echo'ed?
edit:
damn you macros :P

  • Elroy
  • Registratie: April 2000
  • Laatst online: 29-05 21:33

Elroy

Zelda!!!

Compacto schreef op 04 augustus 2002 @ 12:45:
Als ik de SQL query handmatig invoer krijg ik wel het goede resultaat. Het is PHP die de resultaten door elkaar gooit :(
Je hebt volgens mij 2 mogelijkheden of je veranderd het naar dit

PHP:
1
$result = mysql_query("SELECT id,datum,titel,auteur,text,link,comment,keyword FROM zoek ORDER BY keyword ASC ",$db);


of naar dit :

PHP:
1
printf("<option value='main_zoek.php?id=%s'>%s</option>\n", strtolower($myrow[0]), strtolower($myrow[2]));


:?

Specs Computer


  • Compacto
  • Registratie: Mei 2000
  • Laatst online: 21-06 06:49
Ach, het is reeds opgelost. Ik heb het aantal velden wat ik selecteerde even beperkt tot allen die ik echt nodig had (id en titel) en nu pakt ie de sortering wel. Maar wat er nu echt fout aan was ?

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 09:38
Ligt dan toch echt aan je SQL hoor, niet aan het PHP stuk (lijkt me)

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Elroy is de enige die wakker is..

Je sorteert op titel en je output keyword.. gek heh, dat keyword niet gesorteerd is?

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 09:38
En waar haal jij dan vandaag dat er per se op keyword gesorteerd moet worden? Als hij beperkte tot ID en titel werkte het wel, lijkt me erg onlogisch als ie dan alfabetisch op keyword moet sorteren???

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
iCe01 schreef op 04 augustus 2002 @ 16:57:
En waar haal jij dan vandaag dat er per se op keyword gesorteerd moet worden? Als hij beperkte tot ID en titel werkte het wel, lijkt me erg onlogisch als ie dan alfabetisch op keyword moet sorteren???
probleem:
de output is niet gesorteerd.
fout:
de output wordt nergens gesorteerd (iig niet alfabetisch)
oplossing:
Output het goede (wat wel gesorteerd is) of sorteer hetgene wat je output..

  • LeonT
  • Registratie: Juni 2001
  • Niet online
Ik heb ongeveer hetzelfde probleem en vind het dus niet echt nodig om een nieuw topic te openen ;)

De code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$sorteersleutel = ($_GET[ 'sort' ]);

$server = mysql_connect("*****","*****","******");
mysql_select_db("******",$server);

if ($sorteersleutel == "type" || "bouwjaar" || "prijs")
{
$sql = "SELECT ID,merk,type,bouwjaar,prijs FROM caravans ORDER BY '$sorteersleutel',merk ASC";
}
else
{
$sql = "SELECT ID,merk,type,bouwjaar,prijs FROM caravans ORDER BY merk,type ASC";
}
$res = mysql_query($sql);

Als ik de pagina dan aanroep met .php?sort=prijs sorteert hij keurig eerst op prijs en dan op merk. Maar als ik de pagina aanroep met .php?sort=merk (maakt eigenlijk niet uit met wat) sorteert hij alleen op merk en niet daarna op type (maar gewoon op ID). Als ik dezelfde query uitvoer als in het script in phpMyAdmin sorteert hij wel eerst op merk en dan op type.

Misschien doe ik wel iets heel simpels fout ofsow, maar ik ben nog niet zo lang bezig met php :X

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

ORDER BY merk ASC,type ASC

Skill is when luck becomes a habit.


  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Try this:
PHP:
6
if ($sorteersleutel == "type" || $sorteersleutel == "bouwjaar" || $sorteersleutel == "prijs")

On track


  • Ectholian
  • Registratie: Oktober 2000
  • Laatst online: 13-07 16:38

Ectholian

Zei ik dat ?

PHP:
6
$sql = "SELECT ID,merk,type,bouwjaar,prijs FROM caravans ORDER BY ' " . $sorteersleutel . "',merk ASC";


Misschien wil dat?

Ik wil miscommunicatie door verkeerde interpretatie van mijn articulatie voorkomen!


  • Ectholian
  • Registratie: Oktober 2000
  • Laatst online: 13-07 16:38

Ectholian

Zei ik dat ?

WouZz schreef op 05 augustus 2002 @ 12:33:
Try this:
PHP:
6
if ($sorteersleutel == "type" || $sorteersleutel == "bouwjaar" || $sorteersleutel == "prijs")
En anders is dit ook nog een mogelijkheid:

PHP:
6
if ( ($sorteersleutel == "type") || ($sorteersleutel == "bouwjaar") || ($sorteersleutel == "prijs") )

Ik wil miscommunicatie door verkeerde interpretatie van mijn articulatie voorkomen!

Pagina: 1