[PHP / MySQL] tabel ophalen verwerken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • extractor
  • Registratie: September 2004
  • Laatst online: 01-08 13:38
Hey tweakers,

Ik heb een probleem, met de volgende query krijg ik een x aantal namen / lidnummers:
code:
1
2
$query = "SELECT lidnr, naam FROM lid WHERE teamnr = '$teamnr'";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

Ik zou deze namen graag in een array zetten, maar hoe kan ik dit het beste aanpakken.
Ik heb al geprobeerd met fetch array, maar dan krijg ik ze niet goed erin.
code:
1
2
3
4
5
while ($row = mysql_fetch_array($result)) 
{
    $speler[$i] = $row;
    $i ++; 
}

daarna wilde ik met for each de array uitlezen, om te checken of ik de goede resultaten krijg, maar volgens mij gaat er iets fout bij het uitlezen.

Acties:
  • 0 Henk 'm!

  • remco_k
  • Registratie: April 2002
  • Laatst online: 15:38

remco_k

een cassettebandje was genoeg

Volgens jouw gaat er iets fout bij het uitlezen...
Moet ik nu mijn glazen bol gaan pakken en daarin kijken waarom jij dat denkt en wat het resultaat zou moeten zijn na die while lus?
Iets duidelijker en meer inzet mag wel hoor.

De output al eens ge-echo'd? (ik met m'n n00b PHP kennis...).

[ Voor 12% gewijzigd door remco_k op 23-01-2008 12:57 ]

Alles kan stuk.


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Ik weet niet of het erg is dat er een spatie tussen $i en ++ staat, maar je kan ook gewoon alleen maar $speler[] = $row; doen. ;)

Verder moet dit te eenvoudig debuggen zijn met var_dump() calls op $result, $row en/of $speler.

{signature}


Acties:
  • 0 Henk 'm!

  • mr_derk
  • Registratie: September 2005
  • Laatst online: 14:14
je moet de index van $row nog aangeven. En in dit geval een 2dimensionale array gebruiken. Omdat je van een lid meerdere gegevens opvraagd.

verder denk ik dat je omslachtig bezig bent, check gewoon binnen de while-lus. Daarna kom je bij de vraag waarom je het nog zou willen checken, je filtert toch al dmv je query??

[ Voor 45% gewijzigd door mr_derk op 23-01-2008 21:07 ]


Acties:
  • 0 Henk 'm!

  • --MeAngry--
  • Registratie: September 2002
  • Laatst online: 19-09 16:35

--MeAngry--

aka Qonstrukt

mr_derk schreef op woensdag 23 januari 2008 @ 21:01:
je moet de index van $row nog aangeven. En in dit geval een 2dimensionale array gebruiken. Omdat je van een lid meerdere gegevens opvraagd.

verder denk ik dat je omslachtig bezig bent, controleer gewoon binnen de while-lus
De TS geeft niet al te veel informatie, maar met wat jij aangeeft kan hij ook niet veel. Hoe hij z'n gegevens probeert op te slaan is correct hoor, en de meest simpele manier. :)

Tesla Model Y RWD (2024)


Acties:
  • 0 Henk 'm!

  • bakakaizoku
  • Registratie: Januari 2002
  • Laatst online: 17-09 10:27
Wat gaat er precies verkeerd?

Ik heb het gevoel dat je bedoelt dat wanneer je echo $speler[2]['naam']; doet je niks te zien krijgt? Als dat het geval is, dan moet je nog aan de mysql_fetch_array de variable MYSQL_ASSOC meegeven. Maar dat kun je dan nog makkelijker doen door mysql_fetch_assoc ipv mysql_fetch_array te gebruiken.

Verder is het inderdaad wel handiger om aan te geven wat er moet gebeuren en wat er nu gebeurt, nu is het voor ons ook puur giswerk.

[ Voor 4% gewijzigd door bakakaizoku op 23-01-2008 21:10 ]

PSN: bakakaizoku - WoW: Thiccblonde (GM of Phoenix Ascension) @ Twisting-Nether


Acties:
  • 0 Henk 'm!

  • mr_derk
  • Registratie: September 2005
  • Laatst online: 14:14
iets meer info zou idd fijn zijn ;)

[ Voor 104% gewijzigd door mr_derk op 23-01-2008 21:21 ]


Acties:
  • 0 Henk 'm!

  • ID-College
  • Registratie: November 2003
  • Laatst online: 15:55
En dan nog een klein tipje van mijn kant :o
Het moge duidelijk zijn dat teamnr een int is. Welke dus geen quota's vereist. Dit is alleen bij andere types nodig zoals String e.d.

PHP:
1
2
3
WHERE teamnr = '$teamnr'
//mag dus worden
WHERE teamnr = $teamnr

Alle kleine beetjes helpen tot een wat betere code :)

En zoals hierboven staat, je selecteerd 2 dingen in je statement, wat dus resulteert in 2 velden.
Je zal dus een tweedimensionale array moeten gebruiken. Zoiets als: $array[$iets][$iets].
Echter had je hier met een var_dump/print_r(), of echo oid wel uit kunnen komen :)

[ Voor 30% gewijzigd door ID-College op 23-01-2008 23:54 ]

Pagina: 1