select

Status
Niet open voor verdere reacties.

willem008

Gebruiker
Lid geworden
28 sep 2007
Berichten
792
Goede dag

Ik heb een database over paarden rennen.

Bij het lezen van wat boeken kwam ik een artikel tegen waar ze waarschuwde voor het gebruik van select er werd geschreven dat
dat tot onnodig veel dataverkeer op je server kan leiden.

Ik heb bijv
$sql= " select * from paard, plaats, uitslag where
naam ="montanara"

er wordt soms maar een paar velden uit de database getoont.

mijn vraag is moet ik dit aanpassen en zoja hoe.

bijvoorbaat dank
 
SELECT plaats,uitslag FROM paard WHERE naam = "montanara"

als ik het goed begrijp bedoel je dit
 
SELECT is de opdracht tot het ophalen/aanvragen van bepaalde gegevens uit je database, nu zorgt SELECT niet voor het onnodige datagebruik, het gaat om de mannier hoe je het toepast.

het teken * staat voor Alles, je vraagt dus iedere gegevens op uit paard, plaats en uitslag waar de voorwaarden kloppen( dus waar de naam Montanara is).

wanneer je alle gegevens uit die tabbellen moet hebben is dit geen probleem, maar stel dat je alleen het id zou willen hebben hebben alle andere gegevens die ook mee worden genomen geen zin.

Om je tips te geven over wat een betere query zou zijn zou ik graag meer over de opbouw van de database willen weten, dus informatie als, welke tabbellen zijn er en welke kolommen staan hier in.
 
Ik heb 7 tabelen
paard met daarin
paard_id naam, geboren, geslacht, kleur, ras ,nationaliteit, fokker

plaats plaats_id, paard

pikeur pikeur_id , pikeur

uitslag uitslag_id uitslag

afstand afstand_id ,afstand

punten punten_id , punten


en een koppeltabel

koppelkortebaan2012 met daarin
paard_id
plaats_id
pikeur_id
uitslag_id
afstand_id
punten_id

ik gebruik deze query

if ( $_POST['choice'] ) {
$sql = "select * from paard, plaats, uitslag, pikeurs, koppelkortebaan2012, afstand, punten where
naam = '" . mysql_real_escape_string($_POST['choice' ]) . "' and
paard.paard_id = koppelkortebaan2012.paard_id and
plaats.plaats_id = koppelkortebaan2012.plaats_id and
uitslag.uitslag_id = koppelkortebaan2012.uitslag_id and
pikeurs.pikeur_id = koppelkortebaan2012.pikeur_id and
afstand.afstand_id = koppelkortebaan2012.afstand_id and
punten.punten_id = koppelkortebaan2012.punten_id";

$result = mysql_query($sql);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$naamArray[] = $row['naam'];
$pikeurArray[] = $row['pikeur'];
$uitslagArray[] = $row['uitslag'];
$plaatsArray[] = $row['plaats'];
$afstandArray[] = $row['afstand'];
$puntenArray[] = $row['punten'];

}
}
 
Laatst bewerkt:
$sql = "select e.*, a.paard, b.plaats, c.uitslag, d.pikeurs, f.afstand, g.punten from paard As a, plaats As b, uitslag As c, pikeurs As d, koppelkortebaan2012 As e, afstand As f, punten As g where
naam = '" . mysql_real_escape_string($_POST['choice' ]) . "' and
paard.paard_id = koppelkortebaan2012.paard_id and
plaats.plaats_id = koppelkortebaan2012.plaats_id and
uitslag.uitslag_id = koppelkortebaan2012.uitslag_id and
pikeurs.pikeur_id = koppelkortebaan2012.pikeur_id and
afstand.afstand_id = koppelkortebaan2012.afstand_id and
punten.punten_id = koppelkortebaan2012.punten_id";

dit zo scheelt al een stuk, wat ik wel zou doen:
afstand, punten, plaats en uitslag ( met plaats bedoel je plaats als eerste, tweede, derde, enz?) als een kolom binnen koppelkortebaan2012 plaatsen, hier een aparte tabel voor maken is nogal nutteloos.
 
ik ga dit eens rustig doornemen en uitwerken maar ik zeg het eerlijk ,ik snap er nog niets van.
 
goede dag

Ik heb het een beetje uitgevoert zoals jij beschijf maar werkt nog niet.

mischien kan je het een beetje verduidelijken want ik snap het ook nog niet echt.


Ik wil als dat terminste kan , het verlopig even zo veranderen dat ik de tabelen hou zoals ze zijn

bijvoorbaat dank
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan