login  Naam:   Wachtwoord: 
Registreer je!
 Forum

If AND else positie

Offline Duikboot - 05/09/2004 11:45 (laatste wijziging 05/09/2004 11:46)
Avatar van DuikbootGrafische gevorderde Hallo,
Ik heb een if en else gemaakt, maar ik krijg nu een error met unexpected T_ELSE op line 126 erin. Ik denk dat er een else (of een if) op een verkeerde plek staat, maar zou alleen niet weten waar ik hem anders neer moet zetten. Het is alleen best lang stukje code, heb er daarom even bijgezet waar regel 126 is.

  1. <?
  2.  
  3. require("config.php");
  4. include "includes/header.php";
  5. include "config.php";
  6. //als de persoon op Submit heeft gedrukt...
  7. $sql = mysql_query("SELECT auteur FROM reviews");
  8. while($select = mysql_fetch_assoc($sql));
  9. if (auteur == $gebruikersnaam){
  10.  
  11. if (isset($_POST["Submit"])){
  12.  
  13.  
  14. $query="UPDATE reviews SET
  15. auteur = '". $_POST['auteur'] ."',
  16. email = '". $_POST['email'] . "',
  17. titel = '". $_POST['titel'] . "',
  18. genre = '". $_POST['genre'] . "',
  19. jaartal = '". $_POST['jaartal'] . "',
  20. rating = '". $_POST['rating'] . "',
  21. verhaal = '". $_POST['verhaal'] . "',
  22. review = '". $_POST['review'] . "',
  23. mening = '". $_POST['mening'] . "'
  24. WHERE id='" .$_POST['id'] ."'";
  25. $result = mysql_query($query) or die ("FOUT: " . mysql_error());
  26. //als er iets fout is gebeurt dan...
  27. if ($result){
  28. echo ("De review is aangepast.<br>\n");
  29. echo ("<a href=\"review.php?id=id\">Bekijk de review</a>"); //nu gaat hij naar index.php
  30. }
  31. }else{
  32. ?>
  33.  
  34.  
  35.  
  36. <html>
  37. <head>
  38. <title>Bewerk review</title>
  39. </head>
  40. <body>
  41. <font size="1" face="Verdana, Arial, Helvetica, sans-serif">Review wijzigen</font>
  42. <?
  43. $sql = mysql_query("SELECT * FROM reviews where id=$id");
  44. $result= mysql_fetch_array($sql);
  45. ?>
  46. <!-- Hier staat het formulier waarmee je de review aanpast -->
  47. <form action="<?php echo($_SERVER["PHP_SELF"]);?>" method="post"> <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
  48. <input type="hidden" name="bevestiging" value="1">
  49. <input type="hidden" name="id" value="<?php echo($_GET["id"]);?>">
  50. Auteur: <br>
  51. <input type="text" name="auteur" value="<?php echo $result[auteur];?>" size="30">
  52. <br>
  53. E-mail adres v/d auteur: <br>
  54. <input type="text" name="email" value="<?php echo $result[email];?>" size="30">
  55. <br>
  56. Titel v/d film: <br>
  57. <input type="text" name="titel" value="<?php echo $result[titel];?>" size="30">
  58. <br>
  59. Genre:<br> <Select name="genre" value="<?php echo $result[genre];?>">
  60. <option value='Aktie/Avontuur'>Aktie/Avontuur</option>
  61. <option value='Animatie'>Animatie</option>
  62. <option value='Comedie'>Comedie</option>
  63. <option value='Drama'>Drama</option>
  64. <option value='Horror/Thriller'>Horror/Thriller</option>
  65. <option value='Science Fiction'>Science Fiction</option>
  66. <option value='Western'>Western</option>
  67. <option value='Overig'>Overig</option></select><br>
  68. <br>
  69. Jaartal:<br> <Select name="jaartal" value="<?php echo $result[jaartal];?>">
  70. <option value='onbekend'>onbekend</option>
  71. <option value='2004'>2004</option>
  72. <option value='2003'>2003</option>
  73. <option value='2002'>2002</option>
  74. <option value='2001'>2001</option>
  75. <option value='2000'>2000</option>
  76. <option value='1999'>1999</option>
  77. <option value='1998'>1998</option>
  78. <option value='1997'>1997</option>
  79. <option value='1996'>1996</option>
  80. <option value='1995'>1995</option>
  81. <option value='1994'>1994</option>
  82. <option value='1993'>1993</option>
  83. <option value='1992'>1992</option>
  84. <option value='1991'>1991</option>
  85. <option value='1990'>1990</option>
  86. <option value='1989'>1989</option>
  87. <option value='1988'>1988</option>
  88. <option value='1987'>1987</option>
  89. <option value='1986'>1986</option>
  90. <option value='1985'>1985</option>
  91. <option value='1984'>1984</option>
  92. <option value='1983'>1983</option>
  93. <option value='1982'>1982</option>
  94. <option value='1981'>1981</option>
  95. <option value='1980'>1980</option>
  96. <option value='1979'>1979</option>
  97. <option value='1978'>1978</option>
  98. <option value='1977'>1977</option>
  99. <option value='1976'>1976</option>
  100. <option value='1975'>1975</option>
  101. <option value='1974'>1974</option>
  102. <option value='1973'>1973</option>
  103. <option value='1972'>1972</option>
  104. <option value='1971'>1971</option>
  105. <option value='1970'>1970</option>
  106. <option value='Prehistorisch'>Prehistorisch</option></select><br>
  107. <br>
  108. Rating:<br> <input type="text" name="rating" value="<?php echo $result[rating];?>"><br>
  109. <br>
  110. Verhaal:<br> <textarea name="verhaal" value=" rows="7" cols="50"><?php echo $result[verhaal];?></textarea><br>
  111. <br>
  112. Review:<br> <textarea name="review" value=" rows="7" cols="50"><?php echo $result[review];?></textarea><br>
  113. <br>
  114. Eigen mening:<br> <textarea name="mening" value=" rows="7" cols="50"><?php echo $result[mening];?></textarea><br>
  115. <br>
  116. </font>
  117.  
  118. <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
  119. <input type="Submit" name="Submit" value="Sla de bewerkte review op">
  120. <input type="Button" value="Vorige pagina" onclick="javascript:history.back();">
  121. </font>
  122. </form>
  123.  
  124. <?php // line 126 is hieronder, die else{
  125. else{
  126. echo "Je kunt je eigen review alleen aanpassen als je ingelogt bent. Ga Terug.";
  127. }
  128. }
  129. include "includes/footer.php";
  130. ?>

16 antwoorden

Gesponsorde links
Offline Button - 05/09/2004 11:57 (laatste wijziging 05/09/2004 12:02)
Avatar van Button PHP ver gevorderde volgens mij moet die else er niet.

Offline Thomas - 05/09/2004 12:00 (laatste wijziging 05/09/2004 12:00)
Avatar van Thomas Moderator Als je puur kijkt naar de for's, while's en if's krijg je dit:

  1. while($select = mysql_fetch_assoc($sql));
  2. if(auteur == $gebruikersnaam){
  3. if(isset($_POST["Submit"])){
  4. if($result){
  5. }
  6. } else {
  7. else{ // foute else... typisch ?
  8. }
  9. }


Die eerste while is niet nodig. De foute else hoort daar niet en mist een } en de buitenste if mist een } aan het einde.

Als je fatsoenlijk in de code had ingesprongen, had je dit probleem waarschijnlijk niet gehad.
Offline Dennisvb - 05/09/2004 12:01
Avatar van Dennisvb MySQL ver gevorderde @buttonman, ik zie geen inhoud in je post


probeer voor else { eens } te zetten. Die moet je niet vergeten, want een andere else staat nog open en die moet hier eerst gesloten zijn.

Het valt me op dat je 3 ifstatements opent en 2 else. Moeten dit er ook gee 3 zijn?
Offline Duikboot - 05/09/2004 12:02
Avatar van Duikboot Grafische gevorderde Aha,nu zie ik het. Dus die moet weg? Maar volgens mij werkt de if (auteur == $gebruikersnaam) dan niet meer of wel? Want dat is juist de bedoeling, anders kunnen members de reviews van elkaar aanpassen, en da's niet de bedoeling 
Offline Button - 05/09/2004 12:02
Avatar van Button PHP ver gevorderde @Dennisvb: ik weet, foutje
Offline Duikboot - 05/09/2004 12:08
Avatar van Duikboot Grafische gevorderde Ik heb nu voor de onderste else een } gezet zodat die daarboven afgesloten is, maar nogsteeds de unexpected else 
Offline Dennisvb - 05/09/2004 12:22
Avatar van Dennisvb MySQL ver gevorderde Ik vind het trouwens wel een beetje een vreemd script. Boven aan staat:
//als de persoon op Submit heeft gedrukt

dan gaat hij kijken of auteur == gebruikersnaam.
dan wordt er gekeken of de persoon op Submit heeft gedrukt.

Kan je niet beter eerst doet
  1. if(isset($_POST['submit])) {
?

maar je hebt het volgende:
  1. //als er iets fout is gebeurt dan...
  2. if ($result){
  3. echo ("De review is aangepast.<br>\n");
  4. echo ("<a href=\"review.php?id=id\">Bekijk de review</a>"); //nu gaat hij naar index.php
  5. }

maak daar eens dit van:
  1. //als er iets fout is gebeurt dan...
  2. if ($result){
  3. echo ("De review is aangepast.<br>\n");
  4. echo ("<a href=\"review.php?id=id\">Bekijk de review</a>"); //nu gaat hij naar index.php
  5. } elseif(!$result) {
  6. echo "Foutje";
  7. }


En die haakjes zijn niet nodig bij echoën. Je kan gewoon echo "bla"; doen
Offline Thomas - 05/09/2004 12:45 (laatste wijziging 05/09/2004 12:46)
Avatar van Thomas Moderator Je kan geen twee else's na elkaar gebruiken, daarom is ie unexpected...

Is toch ook logisch: een else wil zeggen "voer het volgende blok uit als de stelling in het if-statement niet waar is". Een tweede else zou dus beweren dat het if-statement wel waar was, maar het bijbehorende blok werd toch niet uitgevoerd... Wat is dan het nut van een if-statement ?
Offline Duikboot - 05/09/2004 13:27
Avatar van Duikboot Grafische gevorderde Nu begin ik het een beetje te vatten. Maar hoe zou ik dat dan kunnen doen?
Offline Dennisvb - 05/09/2004 13:32
Avatar van Dennisvb MySQL ver gevorderde zorgen dat je je if statements goed afsluit met een else ?
Offline Duikboot - 05/09/2004 13:37
Avatar van Duikboot Grafische gevorderde Dus dan zo: if {.....}else {......}if{.....}else{...}

want nu heb ik d8 ik zo: if{.....}if{.....}else{.....}else{......}

Pff... net zow ingewikkeld dit (doe ook maar havo )
Offline Thomas - 05/09/2004 13:45 (laatste wijziging 05/09/2004 13:46)
Avatar van Thomas Moderator Er staat commentaar toegevoegd (met een * erbij).
Los de rest zelf op:

  1. <?php
  2. require("config.php");
  3. include("includes/header.php");
  4. include("config.php");
  5.  
  6. //als de persoon op Submit heeft gedrukt...
  7. $sql = mysql_query("SELECT auteur FROM reviews");
  8.  
  9. // * controle op resultaten ?
  10. $row = mysql_fetch_assoc($sql));
  11. if($row['auteur'] == $gebruikersnaam) { // * waar komt $gebruikersnaam vandaan ?
  12. if(isset($_POST["Submit"])) {
  13. $query="UPDATE reviews SET
  14. auteur = '". $_POST['auteur'] ."',
  15. email = '". $_POST['email'] . "',
  16. titel = '". $_POST['titel'] . "',
  17. genre = '". $_POST['genre'] . "',
  18. jaartal = '". $_POST['jaartal'] . "',
  19. rating = '". $_POST['rating'] . "',
  20. verhaal = '". $_POST['verhaal'] . "',
  21. review = '". $_POST['review'] . "',
  22. mening = '". $_POST['mening'] . "'
  23. WHERE id='" .$_POST['id'] ."'";
  24. $result = mysql_query($query) or die ("FOUT: " . mysql_error());
  25. //als er iets fout is gebeurt dan...
  26. if($result) {
  27. // * text voor de <html> tag ?
  28. echo ("De review is aangepast.<br>\n");
  29. echo ("<a href=\"review.php?id=id\">Bekijk de review</a>"); //nu gaat hij naar index.php
  30. }
  31. } else {
  32. // * er is geen formulier gesubmit
  33. ?>
  34. <html>
  35. <head>
  36. <title>Bewerk review</title>
  37. </head>
  38. <body>
  39. <font size="1" face="Verdana, Arial, Helvetica, sans-serif">Review wijzigen</font>
  40. <?php
  41. // * misschien een idee je php ook hier in te springen
  42. // * als een constante herinnering in welk blok je zit ?
  43. $sql = mysql_query("SELECT * FROM reviews where id=$id"); // * waar komt $id vandaan ?
  44. $result = mysql_fetch_array($sql); // * fetch array is dubbel op - gebruik fetch_assoc of fetch_row
  45. // * gebruik in ieder geval QUOTES om associatieve namen, het zijn immers geen CONSTANTEN
  46. ?>
  47. <!-- Hier staat het formulier waarmee je de review aanpast -->
  48. <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
  49. <font size="1" face="Verdana, Arial, Helvetica, sans-serif">
  50. <input type="hidden" name="bevestiging" value="1">
  51. <input type="hidden" name="id" value="<?= $_GET['id'] ?>">
  52. Auteur: <br>
  53. <input type="text" name="auteur" value="<?= $result['auteur'] ?>" size="30">
  54. <br>
  55. E-mail adres v/d auteur: <br>
  56. <input type="text" name="email" value="<?= $result['email'] ?>" size="30">
  57. <br>
  58. Titel v/d film: <br>
  59. <input type="text" name="titel" value="<?= $result['titel'] ?>" size="30">
  60. <br>
  61. Genre:<br>
  62. <!-- * SELECT VELDEN HEBBEN GEEN !!! VALUE !!! -->
  63. <Select name="genre" value="<?= $result['genre'] ?>">
  64. <option value='Aktie/Avontuur'>Aktie/Avontuur</option>
  65. <option value='Animatie'>Animatie</option>
  66. <option value='Comedie'>Comedie</option>
  67. <option value='Drama'>Drama</option>
  68. <option value='Horror/Thriller'>Horror/Thriller</option>
  69. <option value='Science Fiction'>Science Fiction</option>
  70. <option value='Western'>Western</option>
  71. <option value='Overig'>Overig</option>
  72. </select><br>
  73. <br>
  74. Jaartal:<br>
  75. <!-- * SELECT VELDEN HEBBEN GEEN !!! VALUE !!! -->
  76. <Select name="jaartal" value="<?= $result['jaartal'] ?>">
  77. <option value='onbekend'>onbekend</option>
  78. <option value='2004'>2004</option>
  79. <option value='2003'>2003</option>
  80. <option value='2002'>2002</option>
  81. <option value='2001'>2001</option>
  82. <option value='2000'>2000</option>
  83. <option value='1999'>1999</option>
  84. <option value='1998'>1998</option>
  85. <option value='1997'>1997</option>
  86. <option value='1996'>1996</option>
  87. <option value='1995'>1995</option>
  88. <option value='1994'>1994</option>
  89. <option value='1993'>1993</option>
  90. <option value='1992'>1992</option>
  91. <option value='1991'>1991</option>
  92. <option value='1990'>1990</option>
  93. <option value='1989'>1989</option>
  94. <option value='1988'>1988</option>
  95. <option value='1987'>1987</option>
  96. <option value='1986'>1986</option>
  97. <option value='1985'>1985</option>
  98. <option value='1984'>1984</option>
  99. <option value='1983'>1983</option>
  100. <option value='1982'>1982</option>
  101. <option value='1981'>1981</option>
  102. <option value='1980'>1980</option>
  103. <option value='1979'>1979</option>
  104. <option value='1978'>1978</option>
  105. <option value='1977'>1977</option>
  106. <option value='1976'>1976</option>
  107. <option value='1975'>1975</option>
  108. <option value='1974'>1974</option>
  109. <option value='1973'>1973</option>
  110. <option value='1972'>1972</option>
  111. <option value='1971'>1971</option>
  112. <option value='1970'>1970</option>
  113. <option value='Prehistorisch'>Prehistorisch</option>
  114. </select><br>
  115. <br>
  116. Rating:<br> <input type="text" name="rating" value="<?= $result['rating'] ?>"><br>
  117. <br>
  118. Verhaal:<br> <textarea name="verhaal" value=" rows="7" cols="50"><?= $result['verhaal'] ?></textarea><br>
  119. <br>
  120. Review:<br> <textarea name="review" value=" rows="7" cols="50"><?= $result['review'] ?></textarea><br>
  121. <br>
  122. Eigen mening:<br> <textarea name="mening" value=" rows="7" cols="50"><?= $result['mening'] ?></textarea><br>
  123. <br>
  124. </font>
  125.  
  126. <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
  127. <input type="Submit" name="Submit" value="Sla de bewerkte review op">
  128. <input type="Button" value="Vorige pagina" onclick="javascript:history.back();">
  129. </font>
  130. </form>
  131.  
  132. <?php // line 126 is hieronder, die else
  133. } // * EINDE geen formulier gesubmit
  134. } else {
  135. echo "Je kunt je eigen review alleen aanpassen als je ingelogt bent. Ga Terug.";
  136. } // * EINDE gebruikersnaam check
  137. include("includes/footer.php");
  138. ?>
Offline Dennisvb - 05/09/2004 13:47 (laatste wijziging 05/09/2004 13:49)
Avatar van Dennisvb MySQL ver gevorderde Hij heeft volgens mij gewoon een oneven aantal if en else statement.
Offline Duikboot - 05/09/2004 13:49 (laatste wijziging 05/09/2004 13:49)
Avatar van Duikboot Grafische gevorderde Kijk, dat ziet er goed uit, als het me nu niet meer lukt weet ik het ook niet meer. Thx al lot :D 

Ook jij natuurlijk dennisvb 
Offline Dennisvb - 05/09/2004 13:50 (laatste wijziging 05/09/2004 13:51)
Avatar van Dennisvb MySQL ver gevorderde ^^  FangorN is eenmaal veel beter in php
Offline Duikboot - 05/09/2004 14:08
Avatar van Duikboot Grafische gevorderde Ik heb hem aan de praat. Nu weet ik hoe het moet, kan ik de code ook voor andere onderwerpen gebruiken. Iedereen die gereageerd heeft thx a lot 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s