login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Dezelfde namen uitlezen (Opgelost)

Offline Braatje - 06/03/2011 20:15 (laatste wijziging 07/03/2011 20:27)
Avatar van BraatjeMySQL interesse Goedenavond,
Met onderstaande code haal ik wedstrijden van dit jaar uit mijn database.En geef ik ze weer in een tabel.
  1. <?
  2. $i = 0;
  3. $maandarray=array('januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december');
  4. $datumarray=array();
  5. if(!isset($_GET['jaar'])){$_GET['jaar'] = date("Y");}
  6. $jaar = intval($_GET['jaar']);
  7. $jaar2 = $jaar + 1;
  8. $query =
  9. "SELECT datum, naam, lengte, start FROM wedstrijden
  10. WHERE YEAR(datum) = YEAR(CURDATE())
  11. ORDER BY datum ASC";
  12. $result = mysql_query($query) or die(mysql_error());
  13. while ($row = mysql_fetch_assoc($result))
  14. {
  15. $datum=$row['datum'];
  16. $datum2=explode("-",$datum);
  17. $NLdate=$datum2[2]."-".$datum2[1]."-".$datum2[0];
  18.  
  19.  
  20. if(in_array($datum2[1],$datumarray)){
  21. }
  22. else{
  23. if($datum2[1]<10){
  24. $curmonth=substr($datum2[1],-1);
  25. }
  26. else{
  27. $curmonth=$datum2[1];
  28. }
  29. $curmonth=$curmonth-1;
  30. ?>
  31. <tr>
  32. <td colspan="5" class="maand">
  33. <center><b><? echo $maandarray[$curmonth]; ?></b></center>
  34. </td>
  35. </tr>
  36. <?
  37. }
  38. if($i%2){
  39. $kleur="#D5297D";
  40. }
  41. else{
  42. $kleur="#F8F8F8";
  43. }?>
  44. <tr bgcolor='<?php echo $kleur; ?>'>
  45. <td class="datum1"><? echo $NLdate ?></td>
  46. <td class="naam1"><? echo $row['naam'] ?></td>
  47. <td class="lengte1"><? echo $row['lengte'] ?>km</td>
  48. <td><? echo $row['start'] ?></td>
  49. </tr>
  50. <?
  51. $datumarray[]=$datum2[1];
  52. $i++;
  53. }
  54. ?>
  55. </table>


Nu zou ik willen als hij de naam van de wedstrijd uitleest meteen een link aanmaakt ( naar een andere pagina )waar een soort historie over de vorige wedstrijden die daar gereden zijn word geplaatst. Dus alle uitslagen die diegene daar gereden heeft.

Dus als voorbeeld. Diegene heeft 4 keer de ster van zwolle gereden ( 2001, 2003, 2007 en 2010 )Nu wil ik dat ik in mijn programma/uitslagen op de naam van de wedstrijd klik en daarmee een overzicht krijg van die wedstrijden.

Kan iemand mij op weg helpen?

14 antwoorden

Gesponsorde links
Offline FrankL - 08/03/2011 01:07 (laatste wijziging 08/03/2011 01:08)
Avatar van FrankL Lid Een link maken is niet zo heel lastig neem ik aan:
  1. <a href="paginanaam.php?naam=<?php echo $row['naam'];?>"><? echo $row['naam'];?></a>


En dan op die pagina lees je naam weer uit met behulp van $_GET["naam"] en maak je een query zoals:
  1. $query="SELECT blablabla FROM tabel WHERE naam="";

En als je dan van alleen die jaartallen weer hebben geef je in de link mee welke jaartallen de persoon heeft gereden dus dan krijg je bijvoorbeeld:
  1. <a href="paginanaam.php?naam=<?php echo $row['naam'];?>&jaartallen=<?php echo $row["jaartallen"];?>"><? echo $row['naam'];?></a>




Zoiets zou opzich niet heel moeilijk moeten zijn. Succes ermee;)
Offline Braatje - 08/03/2011 06:46 (laatste wijziging 08/03/2011 06:52)
Avatar van Braatje MySQL interesse Ik dacht ook dat het wel zou lukken.
De link had ik toevallig ook zo gemaakt zoals jou voorbeeld
  1. <a href="historie.php?naam=<?php echo $row['naam'];?>"><? echo $row['naam'];?></a>

Als ik dan op de link klik ziet mijn url er zo uit historie.php?naam=Schijndel

Alleen hij leest de naam er niet uit.
Dus ik denk dat mijn $_GET["naam"] niet goed is/staat.
Ik dacht dat het zo hoorde
  1. <?
  2. {
  3. $sql =
  4. "SELECT id, datum, naam, lengte FROM wedstrijden WHERE naam=". $_GET['naam'] ."
  5. ORDER BY datum ASC";}
  6.  
  7.  
  8. $result = mysql_query($sql) or die(mysql_error());
  9. while ($row = mysql_fetch_assoc($result))
  10. ?>
  11. Alleen dan krijg ik deze foutmelding
  12. Unknown column 'schijndel' in 'where clause'
Bedankt door: Aar
Offline ArieMedia - 08/03/2011 08:41 (laatste wijziging 09/03/2011 08:49)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Braatje schreef:
Ik dacht ook dat het wel zou lukken.
De link had ik toevallig ook zo gemaakt zoals jou voorbeeld
[..code..]
Als ik dan op de link klik ziet mijn url er zo uit historie.php?naam=Schijndel

Alleen hij leest de naam er niet uit.
Dus ik denk dat mijn $_GET["naam"] niet goed is/staat.
Ik dacht dat het zo hoorde[..code..]


  1. <?php
  2. $sql =
  3. "SELECT id, datum, naam, lengte FROM wedstrijden WHERE naam = '". mysql_real_escape_string($_GET['naam']) ."'
  4. ORDER BY datum ASC";
  5.  
  6.  
  7. $result = mysql_query($sql) or die(mysql_error());
  8. while ($row = mysql_fetch_assoc($result))
  9. ?>


quotes en mysql_injection  
Edit: Best grappig dat er gewoon 8 uur geen nieuwe posts zijn bijgekomen  
Offline Braatje - 08/03/2011 20:31
Avatar van Braatje MySQL interesse Sorry hoor maar was een lekker dagje weg 

En ik hoor nu toch met de volgende code
  1. <? echo ($row['naam']) ?>

toch de namen weer te geven?
Maar dat doet ie niet?
Offline ArieMedia - 09/03/2011 08:52
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Braatje schreef:
Sorry hoor maar was een lekker dagje weg 

En ik hoor nu toch met de volgende code
[..code..]
toch de namen weer te geven?
Maar dat doet ie niet?

  1. <?php
  2. $sql =
  3. "SELECT id, datum, naam, lengte FROM wedstrijden WHERE naam = '". mysql_real_escape_string($_GET['naam']) ."'
  4. ORDER BY datum ASC";
  5. die($sql);
  6. ?>


kopier de output van $sql, voer de query uit in php my admin.
krijg je resultaat?
Ja -> Er zit een fout in de code

en het is
  1. <?php
  2. echo $row['naam'];
  3. echo 'hallo'; // dubbele quotes kan ook, maar ik raad enkele quotes aan
  4. ?>
Offline betterdays - 09/03/2011 11:31 (laatste wijziging 09/03/2011 11:31)
Avatar van betterdays Lid Je moet inderdaad de output eens testen. Doe wat hierboven is gezegd + als extra test de GET naam functie.

  1. <?php
  2. echo $row['naam'];
  3. echo $_GET['naam'];
  4. echo 'test';
  5. ?>
Offline Braatje - 11/03/2011 06:37
Avatar van Braatje MySQL interesse Er zit idd een fout in de code
als ik de query in php ,y admin uitvoer de volgende melding:
#1064 - 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 '&lt;?php
$sql =
&quot;SELECT id, datum, naam, lengte FROM wedstrijden WHERE naam =' at line 1

Ik ga nu werken zal vanavond even kijken wat de fout is?
Offline Oneday - 11/03/2011 10:27
Avatar van Oneday Nieuw lid
Braatje schreef:
Er zit idd een fout in de code
als ik de query in php ,y admin uitvoer de volgende melding:
#1064 - 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 '<?php
$sql =
"SELECT id, datum, naam, lengte FROM wedstrijden WHERE naam =' at line 1

Ik ga nu werken zal vanavond even kijken wat de fout is?

Paste de de output van $sql eens even hier?
Offline ArieMedia - 11/03/2011 10:34
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Oneday schreef:
[..quote..]
Paste de de output van $sql eens even hier?
Dat is de output...
Offline Oneday - 11/03/2011 19:54
Avatar van Oneday Nieuw lid
ArieMedia schreef:
[..quote..]Dat is de output...

Ik bedoel niet het resultaat van de mysql_query. Maar gewoon de query die uitgevoerd wordt. Zien we gelijk of de variabelen etc wel goed aankomen en zie je makkelijker wat er fout is aan de query dattie een error geeft.
Offline Braatje - 11/03/2011 20:15 (laatste wijziging 11/03/2011 21:30)
Avatar van Braatje MySQL interesse Ik snap er even niks meer van.
In ieder geval ik heb nu deze code
  1. <?php
  2. $sql =
  3. "SELECT id, datum, naam, lengte FROM wedstrijden WHERE naam = '". mysql_real_escape_string($_GET['naam']) ."'
  4. ORDER BY datum ASC";
  5.  
  6.  
  7. $result = mysql_query($sql) or die(mysql_error());
  8. while ($row = mysql_fetch_assoc($result))
  9. ?>
  10. <?php
  11. echo $row['naam'];
  12. echo $_GET['naam'];
  13. echo 'test';
  14. ?>

Ik klik op mijn link van mijn eerste pagina dan ziet mijn url erzo uit
historie.php?naam=Schijndel

Dan krijg ik een pagina (met daarin bovenstaande code) en dan is mijn output.
Schijndel test.
Die echo $row['naam']; geeft niks weer, en schijndel staat er 2 keer in maar hij geeft hem maar 1 keer weer?

Ik hoop dat het duidelijk is. 

Offline Oneday - 11/03/2011 21:39
Avatar van Oneday Nieuw lid
Braatje schreef:
Ik snap er even niks meer van.
In ieder geval ik heb nu deze code[..code..]
Ik klik op mijn link van mijn eerste pagina dan ziet mijn url erzo uit
historie.php?naam=Schijndel

Dan krijg ik een pagina (met daarin bovenstaande code) en dan is mijn output.
Schijndel test.
Die echo $row['naam']; geeft niks weer, en schijndel staat er 2 keer in maar hij geeft hem maar 1 keer weer?

Ik hoop dat het duidelijk is. 


Wat staat er nog onder
  1. while ($row = mysql_fetch_assoc($result))
Offline Braatje - 11/03/2011 22:41 (laatste wijziging 12/03/2011 13:14)
Avatar van Braatje MySQL interesse Alleen dat stukje wat je hier boven ziet.
Ik wou dat eerst werkend zien te krijgen.

EDIT:

Heb het werkend gekregen.
Maar nog een klein vraagje:
Als ik bijvoorbeeld de uitslagen van de wedstrijdnaam Schijndel opvraag krijg ik alleen de wedstrijden van schijndel maar als de wedstrijd bijvoorbeeld als Ronde van Schijndel in de database staat krijg ik die niet bij het lijstje.Is er ook nog een aanpassing zodat ik die er dan ook bij krijg?
Hebben jullie nog tips aanmerkingen aan deze code?
  1. <?php include('includes/config.php');?>
  2. <table>
  3. <?php
  4. $sql =
  5. "SELECT datum, naam, lengte, uitslag FROM wedstrijden WHERE naam = '". mysql_real_escape_string($_GET['naam']) ."'
  6. ORDER BY datum ASC";
  7.  
  8.  
  9. $result = mysql_query($sql) or die(mysql_error());
  10. while ($row = mysql_fetch_assoc($result))
  11. {
  12. $datum=$row['datum'];
  13. $datum2=explode("-",$datum);
  14. $NLdate=$datum2[2]."-".$datum2[1]."-".$datum2[0];
  15. ?>
  16. <tr>
  17. <td><? echo $NLdate ?></td>
  18. <td><? echo $_GET['naam']; ?></td>
  19. <td><? echo $row['uitslag']; ?></td>
  20. </tr>
  21. <?php
  22. $datumarray[]=$datum2[1];
  23. }
  24. ?>
  25. </table>
Offline SynBitz - 13/03/2011 23:17
Avatar van SynBitz Lid euhm ja, stel nu dat $_GET niet valid is. dan gaat de gebruiker een mysql_error() code zien ...
das niet netjes, or die(mysql_error()) kan je best weglaten.


Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.438s