[PHP / Access] Sorteren query

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • herminator
  • Registratie: Augustus 2000
  • Niet online
Ik ben net bezig met php te connecten met een access DB.
ik heb nu de volgende query

$sql="SELECT Inlognaam, achternaam FROM gebruiker where Inlognaam = '$naam' ORDER BY achternaam DESC";

Ik krijg nu alle resultaten op basis van inlognaam gesorteerd van a->z
Ook als ik ORDER by weglaat. Dit lijkt dus al automatisch te gebeuren.
Op welke manier ik kan lijst met achternamen toch laten sorteren van a->z in plaats van de inlognaam.
De query in sorteert wel goed op achternaam in access zelf.

I'll be back


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Die query is gewoon goed. Deze moet een lijstje opleveren met allemaal dezelfde inlognamen (dus nuet de hele tabel) gesorteerd op de bijbehoorende achternaam. Dat dit bij jou blijkbaar niet gebeurt komt waarschijnlijk door een fout die je ergens anders in je code maakt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • herminator
  • Registratie: Augustus 2000
  • Niet online
Ik kom er niet uit waar het nu verkeerd gaat. Zelfs als er geen order by in staat word er toch georderd op inlognaam.
Er worden hier dus bestandsnamen vergeleken met een database tabel met inlognamen erin.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$handle=opendir('d://loggedin//'); 
while ($file = readdir($handle)) { 

    $naam = implode(".", array_slice(explode(".", $file), 0,  -1)); //dit haalt de extensie weg 

    $sql="SELECT Voornaam, Achternaam, Inlognaam FROM gebruiker where Inlognaam = '$naam' ORDER BY achternaam";

    $result=odbc_do($conn,$sql);

 
    $achternaam=odbc_result($result,"Achternaam");
    $voornaam=odbc_result($result,"Voornaam");
    
      echo"<tr><td>$achternaam</td><td>$voornaam</td></tr>";
     }

odbc_close($conn);
closedir($handle);

I'll be back


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Euh, je krijgt nu gewoon alles gesorteerd op basis van de volgorde waarin je de filenames terugkrijgt, niet op basis van wat je uit de tabel trekt. Waarom heb je die filenames überhaupt nodig? Je kan toch gewoon alles ophalen?
SQL:
1
2
3
SELECT Voornaam, Achternaam, Inlognaam
FROM gebruiker
ORDER BY achternaam DESC, voornaam DESC, inlognaam DESC

[ Voor 7% gewijzigd door NMe op 12-01-2006 11:25 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 21-09 20:09

Dido

heforshe

Detail: je zegt dat je van a-z wilt sorteren, da's ASC, niet DESC ;)

Verder doe je nu inderdaad per (inlog)naam een select, dus je resultaat zal op volgorde van die (inlog)namen staan.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • herminator
  • Registratie: Augustus 2000
  • Niet online
Ik heb die bestandsnamen nodig om een lijst te krijgen welke namen er op dat moment in die folder staan.
Ik kijk dus welke namen er in de folder staan en dan haal ik bijbehorende gegevens uit de database.
Op zich lukt dit wel. Maar hoe krijg ik nu voor elkaar dat ik kan sorteren op die achternaam in plaats van de naam van het bestand.

I'll be back


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Zet alle bestandsnamen in een array, en implode dat met ',' (inclusief die quotes) ertussen. Vanaf dan is het dezelfde query als wat ik hierboven beschrijf, maar dan met de volgende where erbij:
SQL:
1
WHERE Inlognaam IN ('$geimplodeerdarray')

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1