database rows naar php array
Ik heb de volgende sql code:
Dit geeft de volgende resultaten:
Rank
23
11
7
7
4
5
6
9
12
15
17
22
28
36
Hoe krijg ik dit omgezet naar een php array als deze: $ranking = array(23,11,7,7,4,5,6,9,12,15,17,22,28,36)
Telkens als ik iets probeert kom ik hierop uit: Array ( [0] => Array ( [0] => 23 [rank] => 23 ) [1] => Array ( [0] => 11 [rank] => 11 ) ) etc
Verder wil ik ook een array die meeloopt met het aantal getallen in de vorige array. In dit geval dus $weeks = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
Ik weet dat het simpel is, maar ik kan er al een tijdje niet opkomen hoe dit precies te doen.
Dit geeft de volgende resultaten:
Rank
23
11
7
7
4
5
6
9
12
15
17
22
28
36
Hoe krijg ik dit omgezet naar een php array als deze: $ranking = array(23,11,7,7,4,5,6,9,12,15,17,22,28,36)
Telkens als ik iets probeert kom ik hierop uit: Array ( [0] => Array ( [0] => 23 [rank] => 23 ) [1] => Array ( [0] => 11 [rank] => 11 ) ) etc
Verder wil ik ook een array die meeloopt met het aantal getallen in de vorige array. In dit geval dus $weeks = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
Ik weet dat het simpel is, maar ik kan er al een tijdje niet opkomen hoe dit precies te doen.
Gewijzigd op 20/07/2015 23:30:28 door Fabian W
Thanks!
Ik werkte eerst met mysqli_fetch_array, maar je moet dus mysqli_fetch_assoc hebben hier.
Ik werkte eerst met mysqli_fetch_array, maar je moet dus mysqli_fetch_assoc hebben hier.
Volgens mij moet het met mysqli_fetch__array ook werken. Het enige verschil is dat de ene standaard een genummerde array geeft, en de andere niet.
Je hebt gelijk! Ik had de ['rank'] niet op de goede plek staan.
En de genummerde array heb ik nu ook: range (1, count($ranking))
En de genummerde array heb ik nu ook: range (1, count($ranking))
Ik neem aan dat je wel INT gebruikt als datatype? Dat sorteert al makkelijker vanuit MySQL zelf.
int(4) idd.
Ik heb nog 1 probleempje. De array die ik krijg is ["23","11",etc].
Die apostrophes horen er dus helemaal niet. Hoe krijg ik die weg?
Ik vind het sws raar dat de apostrophes verschijnen sinds ik int(4) als datatype heb in mijn database.
Bij de andere array (weeks) krijg ik wel gewoon [1,2,3,4,etc]
Die apostrophes horen er dus helemaal niet. Hoe krijg ik die weg?
Ik vind het sws raar dat de apostrophes verschijnen sinds ik int(4) als datatype heb in mijn database.
Bij de andere array (weeks) krijg ik wel gewoon [1,2,3,4,etc]
Is dat een PHP-array of een JSON-encoded PHP-array?
Alles wat je van MySQL terugkrijgt zijn doorgaans strings. Als je van prepared statements gebruik maakt (wat ik niet zou doen in MySQLi) worden types wel gehonoreerd waarschijnlijk.
Of je moet via het binary protocol een verbinding maken, maar daar kon ik toen ik MySQLi onderzocht verder geen enkele informatie over vinden, enkel dat er zoiets bestond.
EDIT: als je prepared statements gebruikt werk je via het binary protocol.
Alles wat je van MySQL terugkrijgt zijn doorgaans strings. Als je van prepared statements gebruik maakt (wat ik niet zou doen in MySQLi) worden types wel gehonoreerd waarschijnlijk.
Of je moet via het binary protocol een verbinding maken, maar daar kon ik toen ik MySQLi onderzocht verder geen enkele informatie over vinden, enkel dat er zoiets bestond.
EDIT: als je prepared statements gebruikt werk je via het binary protocol.
Gewijzigd op 23/07/2015 00:02:25 door Thomas van den Heuvel
Json.
Dit krijg ik als output: {"status":"ok","data":{"weeks":["46","47","48","49","50","51","52","1","2","3","4","5","6","7"],"ranking":["23","11","7","7","4","5","6","9","12","15","17","22","28","36"]}}
(niet belangrijk, maar ik heb besloten om weeks toch niet om te zetten naar 1,2,3,enz)
Dit krijg ik als output: {"status":"ok","data":{"weeks":["46","47","48","49","50","51","52","1","2","3","4","5","6","7"],"ranking":["23","11","7","7","4","5","6","9","12","15","17","22","28","36"]}}
(niet belangrijk, maar ik heb besloten om weeks toch niet om te zetten naar 1,2,3,enz)
Enige experimentatie levert / had geleverd:
Oftewel: gebruik de JSON_NUMERIC_CHECK flag.
Code (php)
Oftewel: gebruik de JSON_NUMERIC_CHECK flag.
Gewijzigd op 23/07/2015 00:10:41 door Thomas van den Heuvel
Thanks!
Dat werkt.
Dat werkt.




