login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Id meegeven in link

Offline ferdithug - 21/01/2008 17:57
Avatar van ferdithugNieuw lid Hoi,

Ik als beginner ben met een script bezig.
En in wil mijn gegevens uit de database in een selectbox plaatsen.
Dat is me ook gelukt maar alleen geeft hij de id niet mee in de link omdat de while eronder staat.

Kan of is dit op te lossen?

  1. <?php
  2. //Lijst weergeven
  3. $sql = "
  4. SELECT
  5. *
  6. FROM
  7. radio
  8. ORDER BY id ASC
  9. ";
  10.  
  11. if(!$res = mysql_query($sql))
  12. {
  13. trigger_error(mysql_error().'<br />In query: '.$sql);
  14. }
  15. elseif(mysql_num_rows($res) == 0)
  16. {
  17. echo 'Geen zenders gevonden';
  18. }
  19. else
  20. {
  21. {
  22. echo '<form action="miniversie.php?zender='.$row['titel'].'" method="post">';
  23. echo '<select name="'.$row['titel'].'">';
  24. while($row = mysql_fetch_assoc($res))
  25. {
  26. echo '<option value="'.$row['id'].'">'.$row['titel'].'</option>';
  27. }
  28. echo '</select><input type="submit" value="Luister" /></form>';
  29. }
  30. }
  31. ?>

11 antwoorden

Gesponsorde links
Offline mitshell - 21/01/2008 18:05 (laatste wijziging 21/01/2008 18:07)
Avatar van mitshell Nieuw lid probeer dit:
  1. echo '<form action="miniversie.php" method="get">';
  2. echo '<select name="zender">';
Offline ferdithug - 21/01/2008 18:15
Avatar van ferdithug Nieuw lid Nee dat lukt niet.
Offline Martijn - 21/01/2008 18:31 (laatste wijziging 22/01/2008 09:55)
Avatar van Martijn Crew PHP je doet als link:
  1. <a href='bestand.php?id=123'>
  2. en dan vervolgens doe je in bestand.php
  3. $iduitlink=$_GET['id'];


voila je kunt ook 2 waardes in een link neerzetten:
  1. bestand.php?ding=123&ping=312
  2. $ding=$_GET['ding'];
  3. $ping=$_GET['ping'];


wel een heel belangrijk iets, dit is bijzonder gevaarlijk als je niet weet wat je doet Mensen kunnen namelijk met de hand de link aanpassen, waardoor er iets heel anders kan worden gedaan.

ten eerste, als jij je ID opzoekt in de database, en jij verwacht een getal, en iemand zet er met de hand 'woord' neer ipv een getal, gaat je database m trippen 

ander voorbeeld, iemand klikt op [edit] bij zn eigen forum reply, ziet in de link het id van zn reply staan en veranderd deze naar de reply erboven, zodat ie die van iemand anders kan aanpassen. Moet je ook ff controle voor maken 

Citaat:
Ook voor kleine stukjes code de code tags gebruiken aub
Offline tomie94 - 21/01/2008 18:49
Avatar van tomie94 PHP interesse je kunt het netter oplossen door het zo te doen:
  1. <?php
  2. if(isset($_GET['id'])) {
  3. $id = $_GET['id'];
  4. }else{
  5. $id = 1;
  6. }
  7. ?>

Offline Martijn - 21/01/2008 18:56
Avatar van Martijn Crew PHP kun je beter else{ $id=0;} van maken nul komt minder vaak voor dan 1.
Offline mitshell - 21/01/2008 19:07
Avatar van mitshell Nieuw lid Onzin praters daar gaat topic tog niet over?
Offline ferdithug - 21/01/2008 19:07
Avatar van ferdithug Nieuw lid Nou volgensmij snap ik het even niet.

Heb nu dit:
  1. <?php
  2. //Lijst weergeven
  3. if(isset($_GET['id'])) {
  4. $id = $_GET['id']; }
  5.  
  6. $sql = "
  7. SELECT
  8. *
  9. FROM
  10. radio
  11. ORDER BY id ASC
  12. ";
  13.  
  14. if(!$res = mysql_query($sql))
  15. {
  16. trigger_error(mysql_error().'<br />In query: '.$sql);
  17. }
  18. elseif(mysql_num_rows($res) == 0)
  19. {
  20. echo 'Geen zenders gevonden';
  21. }
  22. else
  23. {
  24. {
  25. echo '<form action="miniversie.php?zender='.$row['id'].'" method="post">';
  26. echo '<select name="zender">';
  27. while($row = mysql_fetch_assoc($res))
  28. {
  29. echo '<option value="'.$row['id'].'">'.$row['titel'].'</option>';
  30. }
  31. echo '</select><input type="submit" value="Luister" /></form>';
  32. }
  33. }
  34. ?>
Offline mitshell - 21/01/2008 19:09
Avatar van mitshell Nieuw lid $row['id'] bestaat niet:)
en je weet nog niet welke zender er word gekozen dus gaat dat ook niet werken
laat is miniversie.php zien
Offline Rik - 21/01/2008 19:12
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Volgens mij heb je al dat $_GET['id'] helemaal niet nodig. Waar bij jou de fout zit is dat je een { te veel hebt staan op regel 24. En een } op regel 33. Die laatste kan ook goed staan, ik weet niet of dit je hele script is, maar het kan ook zijn dat het een beetje onduidelijk is omdat je die per ongeluk mee hebt gekopieerd.
Offline ferdithug - 21/01/2008 19:13 (laatste wijziging 21/01/2008 19:31)
Avatar van ferdithug Nieuw lid Wat bedoel je de code van miniversie? dat is deze code.
Of bedoel je de site pagina?

Ik kan het ook zo doen:
  1. <?php
  2. }
  3. else
  4. {
  5. while($row = mysql_fetch_assoc($res))
  6. {
  7. ?>
  8. <form action="miniversie.php?zender=<?php echo $row['titel']; ?>" method="post">
  9. <select name="<?php echo $row['titel']; ?>">
  10. <option value="<?php echo $row['id']; ?>"><?php echo $row['titel']; ?></option>
  11. </select>
  12. <input type="submit" value="Luister" />
  13. </form>
  14. <?php
  15. }
  16. }
  17. ?>


Maar dan laat hij voor elk id een aparte selectbox zien.
Offline mitshell - 21/01/2008 23:16
Avatar van mitshell Nieuw lid
  1. <?php
  2. }
  3. else
  4. {
  5. <form action="miniversie.php" method="get">
  6. <select name="zender">
  7. while($row = mysql_fetch_assoc($res))
  8. {
  9. ?>
  10.  
  11. <option value="<?php echo $row['id']; ?>"><?php echo $row['titel']; ?></option>
  12. <? } ?>
  13. </select>
  14. <input type="submit" value="Luister" />
  15. </form>
  16. <?php
  17.  
  18. }
  19. ?>

als het goed is moet ie het zo doen?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.237s