selecteer tweede row in db?
met dit regeltje haal ik de speler uit de database met de meeste punten
$cupchecker = mysql_fetch_array(mysql_query("SELECT id FROM members order by ffapoints desc"));
$cupholder = $cupchecker[id];
maar kan ik ook het twee record op die manier opvragen?
bedankt !
LIMIT 2 toevoegen aan je Query moet dan volstaan.
Het is overigens netter om je code als volgt neer te zetten:
Verder ontbreekt foutafhandeling
maar euh, met LIMIT heb ik dadelijk het tweede record dan? zonder een loop te moeten maken? want dat is waar ik achter zocht ...
@Groovez, waarom wil je geen while loop? Je wilt alleen het 2e resultaat krijgen? Want als je het 1e en het 2e resultaat wilt moet je LIMIT 2 gebruiken (dat zegt, krijg de eerste 2) en als je alleen het 2e resultaat wilt moet je LIMIT 1,2 (dat zegt, krijg alle resultaten vanaf het 1e tot en met de 2e en dus krijg je alleen de 2e).
Jeroen vd op 16/04/2012 22:49:46:
Hoezo netter? Ik zie kleine letters in je sql commandos, en alles achter elkaar. Niet fout, maar ook niet net.
Verder ontbreekt foutafhandeling
Verder ontbreekt foutafhandeling
Ik heb geleerd van een zeer ervaren programmeur, dat je de query en daadwerkelijke uitvoering er van dient te scheiden, omdat dit veiliger is.
Netter was daarbij inderdaad een onjuiste omschrijving.
Quote:
Ik heb geleerd van een zeer ervaren programmeur, dat je de query en daadwerkelijke uitvoering er van dient te scheiden, omdat dit veiliger is.
Je hebt wel het juiste geleerd, alleen niet waarom. Er is voor PHP namelijk totaal geen verschil of je nou de query direct in de functie typt of doormiddel van een variabele in de functie stopt.
Het verschil is wel dat mocht er iets fout gaan en je wilt debuggen dat je dan de query makkelijker kunt echoën om te zien of die wel is zoals het lijkt.
Tevens mis je elke form van foutafhandeling, dus zal deze 'goede gewoonte' totaal onzinnig zijn omdat je op deze manier toch niet kunt debuggen.
Ben zelf nog niet lang bezig met MySql, dus heb nog heel veel te leren.
Heb overigens met de beperkte kennis al wel een volledig toernooi systeem weten te bouwen :D
Zie hier: KLIK
http://github.com/WouterJ/SQL-boilerplate/tree/mysql/
Als je wilt weten hoe je goede foutafhandeling maakt moet je eens hier kijken, daar heb ik per query en voor de connectie een script gemaakt die naar mijn mening de correcte manier is: Gewijzigd op 17/04/2012 19:54:22 door Wouter J
Gewijzigd op 17/04/2012 22:46:57 door Obelix Idefix
dat is inderdaad wat ik zoek
het rare is het werkt maar half ...
kijk,
op deze manier vraag ik de eerste tweede en derde plaats op in de ranking
$cup1checker = mysql_fetch_array(mysql_query("SELECT id FROM members order by ffapoints desc"));
$cup1holder = $cup1checker[id];
$cup2checker = mysql_fetch_array(mysql_query("SELECT id FROM members order by ffapoints desc LIMIT 1,2"));
$cup2holder = $cup2checker[id];
$cup3checker = mysql_fetch_array(mysql_query("SELECT id FROM members order by ffapoints desc LIMIT 1,3"));
$cup3holder = $cup3checker[id];
en dan achter hun naam dit
if ($mem[id] == $cup1holder)
{
$out[body].=" <img src='./images/icons/cup1.png' title='Leader Global FFA Ranking'>";
}
if ($mem[id] == $cup2holder)
{
$out[body].=" <img src='./images/icons/cup2.png' title='2nd Pos Global FFA Ranking'>";
}
if ($mem[id] == $cup3holder)
{
$out[body].=" <img src='./images/icons/cup3.png' title='3th Pos Global FFA Ranking'>";
}
en het rare is, het geeft dit als resultaat ...
http://www.acidleague.com/League/ffarankings.php
nr 2 heeft de beker van nr3 ook! :s
LIMIT 1,2
haalt 2 records op vanaf nummer 1 (en bedenk dat het eerste record record 0 is)
LIMIT 1,3
haalt 3 records op vanaf nummer 1
Wat je wilt als je het zo doet is LIMIT 1,1 en LIMIT 2,1
Maar wat mij betreft is dat een erg, uhm, hoe zeg ik het netjes.... domme manier. Waarom drie keer een query draaien als het in een keer kan? Gewoon
SELECT id FROM members order by ffapoints desc LIMIT 3
Dan haal je de eerste 3 op, ben je in een keer klaar.
maar hoe slaag ik meedere vars op dan om later op te vergelijken?
Wel eens van arrays gehoord?
maar nu probeer ik arrays te kopieren en een andere naam te geven, maar zonder resultaat
check men andere post aub, die kwam ook terecht op het gebruik van arrays .
bedankt !
Dan sluit ik me aan bij het antwoord van Obelix in die post. Ga alsjeblieft eerst serieus tijd steken in het leren van de taal. Waarom zouden wij anders moeite erin steken, als jij het schijnbaar niet de moeite waard vindt?