automatisch pagina maken aan de hand van een database

Status
Niet open voor verdere reacties.

whitetigerck

Gebruiker
Lid geworden
8 aug 2008
Berichten
196
Hallo,

Ik heb een vraagje hoe je een pagina automatisch laat maken afhankelijk of er in de database resultaten staan. Ik heb eigenlijk geen flauw idee hoe ik moet beginnen:p.

Wat ik van plan ben:
Ik heb een database met newsitems, dit is een tabel met oa het nummer van de competitieronde. Deze newsitems worden door andere mensen toegevoegd aan de database. Nu wil ik een pagina maken die het aantal verschillende competitieronden laat zien die gespeeld zijn en daarbijhorende een link naar alle verslagen van die ronde.

De pagina maken met alle competitieronden is zo gebeurd. Dit doe ik door een SQL query op te vragen met alle verschillende ronden die in de database staan. Maar nu wil ik dat wanneer deze gegeneerd worden, dat elk resultaat een hyperlink vormt naar alle verslagen die bij die ronde horen. Dit wil ik automatisch gedaan hebben. Ik heb dan bijvoorbeeld 5 verslagen van ronde 4 die ik op 1 pagina wil hebben.

Dus dan krijg je dit:
Ronde 1 (hyperlink naar alle verslagen in deze ronde)
Ronde 2 (hyperlink naar alle verslagen in deze ronde)
enzovoort

Hoe pak ik dit aan?

Alvast bedankt:)
 
Ik zou als een competitie is afgelopen een nieuwe pagina aanmaken en vervolgens via een vast patroon die link naar die pagina in de database steken.

Op die manier kan je uit die tabel de rondes en de links halen...
 
Ben je al een beetje bekend met PHP? Het idee is in principe dat je een (of meerdere, als je verschillende soorten paginas hebt) basispagina maakt, en dat je daarin met PHP de resultaten ophaalt en die opbouwt.

Je kunt relevante infomatie (bijv een ronde-nummer oid) meegegeven in de URL via de querystring (het gedeelte in de URL na het vraagteken) en daarmee queries bouwen om de juiste informatie te zoeken.

Een hyperlink kun je ook gewoon opbouwen in PHP met de relevante IDs erin...

Heb je al iets van code gemaakt of in gebruik?
 
Bedankt voor de reacties

Het was eigenlijk best goed te doen met de GET variabele:o

Ik heb nog 1 vraagje:

Dit is mijn SQL query:
[SQL]SELECT DISTINCT compronde FROM news WHERE NOT compronde = ''[/SQL]

Hiermee krijg ik mijn lijstje met de verschillende ronden. Deze wordt vervolgens gelinkt naar de pagina met de verslagen. Dit is allemaal gelukt.

Dit systeem werkt geweldig voor 1 seizoen. Maar wanneer er meerdere seizoenen zijn werkt dit natuurlijk niet meer. In mijn database staat geen kolom met het seizoen, wel met de datum wanneer dit verslag is ingeleverd.

Hoe los ik dit op?
 
Met een loop krijg je alle gegevens uit de querry.

Vervolgens krijg je dus een lijstje met datums,
ik weet niet precies hoe je met php en datums werkt, maar

if(datum => datum dat seizoen 1 begon)
$seizoen = "1";
if(datum => datum dat seizoen 2 begon)
$seizoen = "2";

Ik weet niet of dat is wat je bedoelt.?
 
Bedankt voor de snelle reactie:thumb:

Dat is de helft van wat ik bedoel.

De andere helft is hoe ik dat in mijn SQL query kan verwerken.
 
PHP:
<?php
while ($resultaat = mysql_fetch_array($uitgevoerde_querry)) {
$datum = $resultaat["kolomnaam"] }
?>

Is het stukje code, om te loopen.
De rest hoef je niet met de querry te doen.
Is dit wat je bedoelde?

EDIT: de if dinges en het printen van je linke enzo, moet binnen de loop gebeuren....
 
Laatst bewerkt:
Die while loop werkt niet volgens mij. Ik probeer zon opzet te bereiken:

Seizoen 2010-2011
ronde 1
ronde 2

Seizoen 2009-2010
ronde 1
ronde 2

Deze code heb ik nu voor de werkende pagina:

PHP:
$result = mysql_query("SELECT DISTINCT compronde FROM news WHERE NOT compronde = ''" ) or die(mysql_error());  
      if(mysql_num_rows($result)==0){


      } else {
while ($row = mysql_fetch_assoc($result)) {
	echo "<a href=\"http://www.mijnsite.nl/Dtest/compronde.php?ronde=".$row['compronde']."\">Seizoen 2010-2011, Ronde ".$row['compronde']."</a><br>";
}


}

Volgens mij moet ik een loop uitvoeren voor een bereik tussen 2 data of met een WHERE BETWEEN commando in de querry iets uitvoeren. Heb alleen geen flauw idee van hoe en wat, zo goed is mijn php kennis helaas weer niet.
 
Hmm, als dit nu werkt. Wat is het probleem dan?
En wat krijg je nu?

Als ik het goed heb iets van:

2010-2011 ronde 1
2010-2011 ronde 2

Zijn er altijd maar 2 rondes in een seizoen? Want dan kan je met mysql num rows kijken hoeveel rijen je hebt enzovoort en dan de loop 2 keer laten uitvoeren.
 
Het probleem is dat er in die database ook items staan die ik niet wil laten zien. In dit geval gaat het alleen om competiteverslagen, maar ik heb ook andere nieuwsitems in deze database. Een competitie heeft meer dan 2 ronden, dit was alleen als voorbeeld;)
 
maak gewoon een xtra collum aan met ronde of zo iets.
Die laat je standaart op null zetten, als ieen item voor ronde 1 is, dan zet je die waarde op 1 en voor ronde 2 op 2 ( lijkt me logisch ).

Nu kun je filteren op where ronde = 0 / 1 of 2

Dat lijkt mij de simpelste oplossing
 
Kan ook, maar voor wat je ook ophaalt uit een database is een specifieke querry voor.
Wat staat er in de database wat je wel en niet wil hebben?
 
De kolom ronde heb ik wel. Alleen zit ik met het probleem van verschillende seizoenen. Want door de SQL query distinct geeft hij maar de ronden van 1 seizoen.

Dus ik heb een tabel met oa:

ID,titel,inhoud,team,ronde,datum

En nu wil ik afhankelijk van de datum het juiste seizoen hieraan toekennen. Maar door de distinct query doet hij dit maar van 1 seizoen dus ergenst heb ik een loopje nodig denk ik

De items die ik niet wil laten zien in dit systeem zijn leeg voor team en ronde, vandaar ook het einde van mijn SQL query: WHERE NOT compronde = ''
 
Laatst bewerkt:
Okee. Ik snap het probleem al.
Als het niet mogelijk is om nog een kolom te maken met het seizoen, wat het behoorlijk veel makkelijker maakt, moet je dus steeds een lus maken van periode van het begin en eind van het seizoen.

Je zult bij je querry ook de datum moeten ophalen.

En dan de om de lus die nu steeds de link print de volgende while neerzetten

while ($uitkomst = mysql_fetch_array($uitgevoerde_querry && $datum <= $datumeind seizoen1 && $datum => $datumbeginseizoen1) {
$uitkomst["datum"] = $datum

en dan je while met je linkis

}
 
Bedankt voor je antwoord.

Ik heb uiteindelijk toch maar een extra kolom ingevoegd, dat maakt het stukken makkelijker:D

Nu lukt het wel, bedankt voor je hulp:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan