Met LIMIT kun je één kant op, maar niet zowel het id ervoor als erna pakken. Ook kun je niet garanderen dat id 11 links id 10 en rechts id 12 heeft (als er items tussendoor worden verwijderd) wat het geheel nog wat lastiger maaktquote:Op vrijdag 29 juni 2007 16:03 schreef Chandler het volgende:
Maar zonder UNION Selects? Misschien met LIMIT?
quote:Op vrijdag 29 juni 2007 16:03 schreef Chandler het volgende:
Maar zonder UNION Selects? Misschien met LIMIT?
1 2 3 4 5 6 7 | FROM mytable a LEFT OUTER JOIN mytable b ON b.name >= a.name AND b.id != a.id LEFT OUTER JOIN mytable c ON c.name <= a.name AND c.id != a.id WHERE a.id = $id ORDER BY b.name ASC, c.name DESC LIMIT 1 |
Dat had ik ook al geprobeerd maar gaf dezelfde foutmeldingquote:Op vrijdag 29 juni 2007 23:07 schreef SuperRembo het volgende:
Oh, de where en oder by staan verkeerd om.
Voor SQLite heb je sqlite_fetch_all()quote:Op vrijdag 29 juni 2007 23:44 schreef Geqxon het volgende:
Maar bestaat er eigenlijk een kant en klare functie een een mysql_query result compleet doorloopt en alle resultaten in een 2D associatieve array stopt?
Als je precies dezelfde foutmelding krijgt dan heb je de tweede keer ook nog de WHERE direct voor de LIMIT staan, dus de ORDER voor de WHERE.quote:Op zaterdag 30 juni 2007 09:22 schreef Chandler het volgende:
[..]
Dat had ik ook al geprobeerd maar gaf dezelfde foutmelding
1 2 3 4 5 6 7 | FROM mytable a LEFT OUTER JOIN mytable b ON (b.name >= a.name AND b.id != a.id) LEFT OUTER JOIN mytable c ON (c.name <= a.name AND c.id != a.id) WHERE a.id = $id ORDER BY b.name ASC, c.name DESC LIMIT 1 |
Please do share, altijd handig om kennis te vergaren enzovoorts.quote:Op zaterdag 30 juni 2007 11:11 schreef Geqxon het volgende:
Sterker: ATM heb ik de functie al gemaakt, ik zocht gewoon een native functie binnen PHP.
quote:Op zaterdag 30 juni 2007 11:41 schreef Scorpie het volgende:
[..]
Please do share, altijd handig om kennis te vergaren enzovoorts.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $sql = "SELECT * FROM users"; $result = mysql_query($sql); if ($result){ $users = mysql_fetch_all_assoc($result,"ID"); } print_r($users); function mysql_fetch_all_assoc($result,$uniquekey){ $all = array(); while ($row = mysql_fetch_assoc($result)){ $all[$row[$uniquekey]] = $row; } return $all; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | ( [1] => Array ( [ID] => 1 [Username] => Geqxon [Userlevel] => 2 [Password] => xxx [EmailAddress] => xxx [Timezone] => 1 [RegIP] => [DateAdded] => 0 [DateUpdated] => 0 ) [8] => Array ( [ID] => 8 [Username] => Heinz [Userlevel] => 0 [Password] => xxx [EmailAddress] => ketchup@hotmail.com [Timezone] => 1 [RegIP] => [DateAdded] => 0 [DateUpdated] => 0 ) [21] => Array ( [ID] => 21 [Username] => Testcase [Userlevel] => 0 [Password] => xxx [EmailAddress] => testcase@hotmail.com [Timezone] => 1 [RegIP] => [DateAdded] => 0 [DateUpdated] => 0 ) [27] => Array ( [ID] => 27 [Username] => asdf [Userlevel] => 0 [Password] => xxx [EmailAddress] => asdf [Timezone] => 1 [RegIP] => 127.0.0.1 [DateAdded] => 1182898662 [DateUpdated] => 0 ) ) |
IS NULL of IS NOT NULLquote:Op zaterdag 30 juni 2007 22:28 schreef Geqxon het volgende:
Zo, weer een MySQL vraagje
Mijn resultatenset van een query met een left-join heeft op sommige velden een "NULL" , omdat er geen bijpassend record is. Nu wil ik hier op filteren, maar "b.ID = NULL" of "b.ID = 'NULL'" werkt helaas niet. Wat moet ik hiervoor gebruiken?
PS: Ja, ik wil het op deze manier, en liever geen andere manier
Eingelijk is SQL schitterendquote:Op zaterdag 30 juni 2007 22:51 schreef Geqxon het volgende:
My god, dat MySQL zo simpel is. Prachtige "taal" , dat MySQL! De meest complexe querys zijn nog leesbaar, en je kunt er vanalles mee. Thanks guys!
Dat werkt inderdaad welquote:Op zaterdag 30 juni 2007 11:39 schreef WyriHaximus het volgende:
[ code verwijderd ]
Zo misschien? Misschien dat die haakjes uit maken![]()
1 2 3 | 2e keer: 12, 5 secs 3e keer: Toon Records 0 - 0 (1 totaal, Query duurde 0.0003 sec) |
1 2 3 | 490 een jongen of een meisje 490 een jongen of een meisje |
Vraagje, waarom wil je het niet via een UNION SELECT oplossen?quote:Op zondag 1 juli 2007 00:58 schreef Chandler het volgende:
[..]
Dat werkt inderdaad welmaar......
[ code verwijderd ]![]()
en de uitkomst is niet wat ik zoek
ID = 2000
[ code verwijderd ]
Twee seconden nazoekwerk, documentatie, vanaf MySQL 4.0.0 dusquote:Op zondag 1 juli 2007 08:41 schreef Chandler het volgende:
Wil dat dan ook draaien op MySQL 4.1.22-community-nt ?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |