Hallo,
Ik heb een script waarbij je een jaartal kunt selecteren waarna de uitslagen van dat jaar getoond worden.
Voorbeeld: http://test.marcobrus.nl/uitslagen.php

Hoe kan ik aan het script toevoegen dat hij automatisch de uitslagen van het huidig jaar laat zien en pas na een keuze van jaartal het andere jaar. Dus als je naar uitslagen gaat dat daar meteen de uitslagen van het huidige jaar komen te staan

Ik dacht iets met die if else structuur maar ik kom er niet uit.
Dit is mijn query waarmee ik het huidig jaar kan laden
<?php
$query = "SELECT datum, naam, lengte, start, uitslag FROM wedstrijden WHERE uitslag >0 AND YEAR(datum) = YEAR(CURDATE()) ORDER BY datum DESC";
$result = mysql_query($query) or die(mysql_error());
?>
Misschien zien jullie nog wat anders waar julie van zeggen dat kunnen jullie beter zo doen?

Omdat het teveel is om hier neer te zetten heb ik het maar anders gedaan
http://www.plaatscode.be/31835/

Ik hoop dat jullie mij kunnen helpen
<?php

if(isset($_GET['jaar']))
{
$jaar = intval($_GET['jaar'];
}
else
{
$jaar = date("Y");
}

$query = "SELECT datum, naam, lengte, start, uitslag FROM wedstrijden WHERE uitslag >0 AND YEAR(datum) = YEAR('".$jaar."') ORDER BY datum DESC";
$result = mysql_query($query) or die(mysql_error());
?>

Zoiets?
Je hebt dan altijd een jaar (of het jaar van nu, of wat gebruiker opgaf).
Let op de intval() en het escapen van de quotes.
Die intval wat doet deze?

En deze if else moet ik daarmee gewoon verder gaan onderaan mijn script die ik al had?
@Eddy Erkelens

Je maakt al een integer van het jaartal, en een jaartal (in SQL met YEAR) uit een jaartal halen gaat niet werken. Een integer hoort in SQL ook niet tussen enkele quotes, want dat is een string.

<?php

if(isset($_GET['jaar']))
{
$jaar = intval($_GET['jaar'];
}
else
{
$jaar = date("Y");
}

$query = "SELECT datum, naam, lengte, start, uitslag FROM wedstrijden WHERE uitslag >0 AND YEAR(datum) = ".$jaar.") ORDER BY datum DESC";
$result = mysql_query($query) or die(mysql_error());
?>

@Roland
intval zorgt ervoor dat als iemand een tekst opgeeft (gewoon flauw wil doen zeg maar) dat deze omgezet wordt naar een integer en dat deze dan de waarde 0 krijgt. (deze moet je dus evt. ook af gaan vangen)

Die if/else en de query moet je plakken op de plek van je huidige query. Je huidige query mag dus weg.
Je kunt natuurlijk ook doen:

<?php
//$db is het database object.

$jaar = (int) $db->quote($_GET['jaar']);

?>
Ik krijg het nog niet voor elkaar zodat het werkt
http://www.plaatscode.be/31835/
Dus regel 34 moet worden vervangen door de if else regel van hierboven?
Er moet nog wel een ) op regel 5 denk ik.

En regel 38 t/m 42 moet vervangen worden door de query van hierboven?
Bij die query moet daar bij ".$jaar.") ook nog een ( voor?
@Roland

Je moet $_GET vervangen door $_POST in het bovenstaande. En op de plek van je query gewoon het hele stukje code plakken op de plaats van de query.
Kijk nu werkt het!!!
Thx

1 vraagje nog dit is mijn query nu
<?php
{$i = 0;
$maandarray=array(1=>'januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december');
$datumarray=array();
$query = sprintf("SELECT datum, naam, lengte, start, uitslag
FROM wedstrijden
WHERE uitslag > 0
AND YEAR(datum) = ".$jaar."
ORDER BY datum DESC",
$jaar['jaar']);

printf('<center><br><br>Uitslagen van seizoen %d </center>',
$jaar['jaar']);
$result = mysql_query($query);
?>

Alleen deze regel werkt nu niet <?php
printf('<center><br><br>Uitslagen van seizoen %d </center>',
$jaar['jaar']);?>
Hoe geef ik daar nu het jaar weer waarvan de uitslagen zijn

EDIT: Het is gelukt
Heb de if else code aangepast naar
<?php
if(isset($_POST['jaar']))
{
$jaar = intval($_POST['jaar']);
printf('<center><br><br>Uitslagen van seizoen %s </center>',
$_POST['jaar']);
}
else
{
$jaar = date("Y");
printf('<center><br><br>Uitslagen van seizoen %s </center>',
$jaar = date("Y"));
?>

Reageren