Ik hoor jullie al denken daar heb je hem weer.
Ik heb een pagina met uitslagen, waar alle uitslagen van het huidige jaar worden getoond. http://www.plaatscode.be/31559
Nu zou ik willen dat je bovenaan kunt kiezen uit welk jaar deze de uitslagen moet tonen.
Mijn datum is opgeslagen als DATE.
Dus ik wil in een lijst de jaartallen uitlezen die in mijn database staan ( niet dat ik ieder jaar de keuze zelf moet gaan aanpassen )
bijv. 2008
2007
2006
En als je daar een keuze maakt dat dan de uitslagen van dat betreffende jaar geladen worden.
Maar ik heb geen idee hoe ik dat moet aanpakken.
Dus ik hoopte dat jullie mij nog wilden helpen?
<?
$query = "SELECT DISTINCT YEAR(datum) AS jaar
FROM wedstrijden
ORDER BY jaar ";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
?>
<select>
<option><? echo $row['jaar'] ?></option>
</select>
<?
}
?>
Alleen nu wil ik deze in een dropdownlist stoppen en als er een keuze gemaakt is wil ik dat de uitslagen uit dat jaar geladen is.
Maar daar loop ik vast?
Je zit al in de goeie richting, je maakt echter een klein foutje.
Je maakt telkens een nieuwe select-box aan, je hoeft alleen maar een nieuwe option aan te maken:
<?
$query = "SELECT DISTINCT YEAR(datum) AS jaar
FROM wedstrijden
ORDER BY jaar ";
$result = mysql_query($query) or die(mysql_error());
?>
<select name="jaar">
<?PHP
while ($row = mysql_fetch_assoc($result))
{
?>
<option><? echo $row['jaar'] ?></option>
<?
}
?>
</select>
<?
$query = Mysql_Query("SELECT DISTINCT YEAR(datum) AS jaar
FROM wedstrijden
ORDER BY jaar ") or Die(Mysql_Error());
echo '<select name="jaar">';
while ($row = Mysql_Fetch_Assoc($result))
{
echo '<option option="'.$row['jaar'].'">'.$row['jaar'].'</option>';
}
echo '</select>';
?>
<?
$query=Mysql_Query("SELECT DISTINCT YEAR(datum) AS jaar
Nee, ik gebruik voornamelijk templates.
Dan heb je dit gedoe niet
En dat jij dat lelijk vind wil niet zeggen dat het beter is.
Het word trager (zal niet veel zijn op dit stuk, maar toch).
Je zou op jou manier eerst alle HTML door een PHP parser moeten halen en vervolgens moet de browser het nog parsen.
Als je geen echo gebruikt doet de PHP parser er niks mee en hoeft dus alleen de browser het te parsen. Op een stukje van 15 regels zal je dit niet merken, maar als je een heel groot script hebt met heel veel echo's ga je het verschil wel merken...
Ik echo ook zo MIN mogelijk html, niet alleen is dit handiger in je "design" view, het scheelt ook gewoon parsetijd.
Voor een zon dropmenutje maakt het weinig uit, maar er zijn ook van die pappels die complete forms en tesxtvelden echoen...lekker handig, alles backslachen + onleesbare code in je script
oke dat is dus gelukt.
De volgende stap.
Als ik een jaar selecteer dan moet deze de uitslagen laden van dat betreffende jaar.
Kan dat indezelfde pagina of moet ik dan een andere pagina laten openen?
Het liefst dat deze dan gewoon op dezelfde pagina blijft
Je kan best je select laten redirecten met een javascript iets in deze trend:
<select name="mijnlijst" onchange="window.href='pagina.php?jaar=' + this.value">
dan kan je het geselecteerde jaar uit de url halen
<?php
$query = "SELECT DISTINCT YEAR(datum) AS jaar
FROM wedstrijden
ORDER BY jaar ";
$result = mysql_query($query) or die(mysql_error());
?>
<form action="" method="post">
<select name="jaar" value="<?= $_GET['jaar'] ?>">
<?PHP
while ($row = mysql_fetch_assoc($result))
{
?>
<option><? echo $row['jaar'] ?></option>
<?
}
?>
<input type="submit" name="versturen" value="versturen">
</form>
<hr> <br>
<?php
// vanaf hier is het voor mij alleen maar om het duidelijker te maken voor mezelf
if (isset($_POST["jaar"])){
echo "". $_POST["jaar"] ." \n<br>";
}
?>
Nu moet ik die jaartal die ik geselecteerd heb in een query laden zodat de juiste uitslagen geladen worden.
Kan ik in bijv. de volgende query een functie oproepen zodat die jaartal geselecteerd word?
$qUsers = Mysql_Query("SELECT name FROM users");
$qMessages = Mysql_Query("SELECT title, message FROM messages WHERE id_user=".$user); //Als je ."" krijgt mag je het weg laten
<?php
$qJaren = Mysql_Query("SELECT DISTINCT YEAR(datum) AS jaar
FROM wedstrijden
ORDER BY jaar ");
$result = mysql_query($query) or die(mysql_error());
?>
<?php
$qJaren=Mysql_Query("SELECT DISTINCT YEAR(datum) AS jaar
<?php
$qJaren = Mysql_Query("SELECT DISTINCT YEAR(datum) AS jaar
FROM wedstrijden
ORDER BY jaar ");
$result = mysql_query($qJaren) or die(mysql_error());
?>
<?php
$qJaren=Mysql_Query("SELECT DISTINCT YEAR(datum) AS jaar
Alleen dan heb ik weer een foutmelding:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #4' at line 1
Kan het beter aan andere overlaten die er verstand van hebben haha.
Ben er al 2 dagen mee bezig om de uitslagen per jaar te laten selecteren en weergeven
bedankt dat je zoveel moeite voor me doet.
Alleen het werkt nog steeds niet.
Als ik een jaar selecteer en klik op versturen dan krijg ik de volgende melding:
Notice: Undefined index: jaar in H:\Program Files\xampp\htdocs\marcobrus\uitslagen2.php on line 32
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Beetje lang geduurd maar ik heb hier een script.Even helemaal overnieuw gemaakt. En werkend. http://www.plaatscode.be/31835/
Er zijn nu nog 3 puntjes, en dan ben ik klaar.
-*- Ik had eerst dat er automatisch per maand de maand erboven kwam te staan alleen Alleen dat werkt nu niet echt.
Nu komt er bij iedere uitslag in die maand de naam van de maand erboven te staan.
.Het scriptje staat een stuk bij de query regel 35,36 en 37 en regel 61 t/m 69 Op regel 71,72 staat het stukje waarmee ik die maand oproep
-*-Wat moet ik aanpassen om de jaartallen in die dropdownlist in omgekeerde volgorde te krijgen? code regel 16 t/m 31
-*-En is het mogelijk om aan te geven dat hij automatisch de uitslagen van het huidig jaar laat zien en pas na een keuze van jaartal het andere jaar.
Misschien zien jullie nog wat anders waar julie van zeggen dat kunnen jullie beter zo doen?