login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Ingewikkelde vraag

Offline tomk - 19/10/2005 16:51
Avatar van tomkASP interesse Hej mensen ik heb een vraagje he. Ben zoals jullie volgens mij al weten met een online manager spel bezig. Maar nu heb ik een best wel ingewikkelde vraag. kijk je hebt spelers in een tabel. maar er zijn natuurlijk meerdere competitie in bijv italië. Dus hoe krijg ik die speler dan zeg maar dubbel?in de db alleen dan hoort hij wel bij een ander team.

Bedankt!

5 antwoorden

Gesponsorde links
Offline Rens - 19/10/2005 16:53
Avatar van Rens Gouden medaille

Crew algemeen
Een tabel "competities" maken.
In je tabel "spelers" maak je dan een veld "competities" en daarin zet je de ID's van de competities met een komma ( , ) ertussen.
Exploden op de komma, in je while loop competitie ophalen op
  1. WHERE id=$aCompetities[$i];


Snap je beetje wat ik bedoel?
Offline tomk - 19/10/2005 17:03
Avatar van tomk ASP interesse hmm... kan je iets specifieker uitleggen:$. Ik snap half wat je bedoelt.
Offline Rens - 19/10/2005 17:22
Avatar van Rens Gouden medaille

Crew algemeen
"competities"
  1. CREATE TABLE competities (
  2. id INT(11) NOT NULL auto_increment,
  3. naam VARCHAR(255) NOT NULL,
  4. PRIMARY KEY(id)
  5. );


"spelers"
  1. CREATE TABLE spelers (
  2. id INT(11) NOT NULL auto_increment,
  3. naam VARCHAR(255) NOT NULL,
  4. competities (VARCHAR(255) NOT NULL,
  5. PRIMARY KEY(id)
  6. );


voorbeeld:
  1. <?PHP
  2. $sQuerySpelers = "SELECT * FROM spelers ORDER BY naam ASC";
  3. if(!$rResultSpelers = MySQL_Query($sQuerySpelers))
  4. {
  5. echo "Error!- ".MySQL_Error()."<br />".MySQL_Errno()."<br />In file: ".__FILE__."<br />Op lijn: ".__LINE__."<br />".$sQuerySpelers;
  6. } else
  7. {
  8. while($aFetchSpelers = MySQL_Fetch_Assoc($rResultSpelers))
  9. {
  10. echo $aFetchSpelers['naam']." speelt in de volgende competities:<br />";
  11. $aCompetities = explode(",", $aFetchSpelers['competities']);
  12. for($i = 0; $i < count($aCompetities); $i++)
  13. {
  14. $sQueryCompetities = "SELECT * FROM competities WHERE id=".$aCompetities[$i];
  15. if(!$rResultCompetities = MySQL_Query($sQueryCompetities))
  16. {
  17. echo "Error!- ".MySQL_Error()."<br />".MySQL_Errno()."<br />In file: ".__FILE__."<br />Op lijn: ".__LINE__."<br />".$sQueryCompetities;
  18. } else
  19. {
  20. echo MySQL_Result($rResultCompetities, 0, "naam");
  21. }
  22. }
  23. }
  24. }
  25. ?>

Met dat voorbeeld zou je (als alles goed werkt) alle spelers onder elkaar krijgen met in welke competitie ze spelen.

Nu kun je zelf wel verder met wat jij precies wilt...
Offline Wim - 19/10/2005 17:33
Avatar van Wim Crew algemeen dit is niet wat ze bij "PHP & MySQL" zetten, maar bij "Logisch nadenken" 

anyway, de manier van Rensjuh lijkt me ook het meest logische
Offline Fenrir - 19/10/2005 18:09 (laatste wijziging 19/10/2005 18:15)
Avatar van Fenrir PHP expert Voor zo'n dingen moet je een aparte tabel maken:

spelers
competities
competities_spelers

In competities_spelers heb je dan deze velden:

speler_id
competitie_id

Voor alle spelers bij een bepaalde competitie:

SELECT spelers.naam FROM spelers, competities_spelers WHERE competities_spelers.id = spelers.id AND competities.competitie_id = {id}

Gebruik als standaardregel: explode op databasedata is ALIJD fout.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.23s