login  Naam:   Wachtwoord: 
Registreer je!
 Forum

or die(mysql_error()) (Opgelost)

Offline Guido2 - 25/07/2010 14:32 (laatste wijziging 26/07/2010 09:54)
Avatar van Guido2Nieuw lid Ik heb nog twee vragen over de zoekmachine met getallen. Eigenlijk weet ik niet of ik ze in 1 keer kan stellen of dat ik er beter twee aparte vragen van kan maken. Zonder tegenbericht maak ik er maar twee vragen van.

Als er een getal in het invoervak getypt wordt, en er wordt op de knop geklikt, dan verschijnt dat getal op het scherm. Dat gaat nu prima.

Maar als er niets in het invoervak getypt wordt, verschijnen alle getallen. En dat mag niet. Er moet niets komen of liever een foutmelding met de mededeling 'Typ een getal'. Maar dat lukt niet.

Achter de query heb ik 'or die(mysql_error()) gezet', maar dat maakt niets uit. De foutmelding blijft achterwege.
Kan ik dit niet met een 'or die(mysql_error())' oplossen?

Ik heb het al met empty geprobeerd, maar daarmee zit ik ook op de verkeerde weg.

<?php
if(!empty($optie3)){
echo ' ' .$optie3. ' ';
}
?>

Hoe los ik dit op?



  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <meta http-equiv="content-type" content="text/html; charset=utf8_unicode_ci" />
  5.  
  6. <link rel= "stylesheet" href="menu_style.css" type="text/css" />
  7. <link href="opmaak.css" rel="stylesheet" type="text/css"/>
  8.  
  9. </head>
  10.  
  11. <?php
  12.  
  13. include '../../navigatie/nav.inc';
  14.  
  15. ?>
  16. <div id="container">
  17.  
  18. <div id="header3">
  19.  
  20. <h2>Typ 1, 2 of 3<h2>
  21.  
  22. <form action="getallenlijst.php" method="post">
  23. <input type="int" name="optie3" value"" size="30">
  24. <input type="Submit" name="submit1"value="Klik">
  25. <input type="Submit" name="submit2"value="Klik2">
  26.  
  27. <input type="Button"value="Terug" onclick="javascript:history.back();">
  28. </form>
  29.  
  30. </div>
  31.  
  32.  
  33. </div>

  1. <html>
  2. <head>
  3. <?
  4. include ("db_connect.inc.php");
  5. $query = "SELECT * FROM pas WHERE optie3 LIKE '%". $_POST["optie3"] . "%'" or die(mysql_error());
  6.  
  7.  
  8. // de SQL-query die wordt uitgevoerd
  9. $resultaat = "" ;
  10. $resultaat = mysql_query($query, $db);
  11. mysql_close($db); // database afsluiten
  12. ?>
  13. </head>
  14.  
  15. <body>
  16. <h2>Je hebt het volgende getal getypt.</h2>
  17. <hr>
  18. <?php
  19. while(list($pasid, $optie1, $optie2, $optie3) = mysql_fetch_row($resultaat)){
  20.  
  21.  
  22.  
  23. if($submit1){
  24. echo "$optie3 ";}
  25.  
  26. if($submit2){
  27. echo "$optie2 ";}
  28.  
  29.  
  30. }
  31. ?>
  32.  
  33.  
  34. </body>
  35. </html>

7 antwoorden

Gesponsorde links
Offline vinTage - 25/07/2010 14:41
Avatar van vinTage Nieuw lid Lol, net op een ander forum je vraag beantwoord 

  1. if(!isset($_POST['optie3']))
  2. {
  3. //waarschuwing
  4. }
  5. else
  6. {
  7. //afhandelen
  8. }
Offline Guido2 - 25/07/2010 15:04
Avatar van Guido2 Nieuw lid Dank je wel.

Ik krijg alleen de volgende foutmelding.

Parse error: syntax error, unexpected T_STRING in /var/accounts/CN20081547/zoekint/getallenlijst.php on line 26


  1. <?php
  2. while(list($pasid, $optie1, $optie2, $optie3) = mysql_fetch_row($resultaat)){
  3.  
  4. if(!isset($_POST['optie3']))
  5.  
  6.  
  7. {
  8. Typ een getal.
  9.  
  10.  
  11. }
  12.  
  13. else
  14.  
  15. {
  16.  
  17. echo "$optie3 ";}
  18.  
  19. ?>
  20.  
  21.  
  22. </body>
  23. </html>
Offline Martijn - 25/07/2010 15:07
Avatar van Martijn Crew PHP mja, en die mag je zelf oplossen, die is echt heel simpel. Kijk is naar de else{}
Offline vinTage - 25/07/2010 15:09
Avatar van vinTage Nieuw lid De while is niet afgesloten.
Offline Guido2 - 25/07/2010 15:28 (laatste wijziging 25/07/2010 19:00)
Avatar van Guido2 Nieuw lid Ik zie geen fout in de else{}

De echo moet volgens mij tussen de accolades.

Ik heb wel een dubbele aanhalingsteken gebruikt, maar als ik enkele gebruik, blijf ik de foutmelding houden.

Het ?>-teken moet volgens mij na de accolade als afsluiting van de while-lus. Het is onlogisch dit binnen de accolades te zetten.

'echo' moet m.i. voor '$optie3'

De voorwaarde moet na de while-lus.

De accolade na het einde van de php-code moet er blijven staan om de while-lus af te sluiten.

Ik zit me suf te piekeren. Misschien is de while-lus toch niet correct afgesloten en moet ik het niet bij 'else' zoeken.

Tja, de tekst bij de foutmelding moet natuurlijk tussen accolades, maar dit bestand werkt nog niet goed.

Ondertussen is het probleem met voor mij nieuwe code op een ander forum opgelost.

Toch ben ik er nog steeds reuze benieuwd naar hoe het met deze code wel moet. Dan kan ik de twee oplossingen met elkaar vergelijken en daar kan ik veel van leren. De fout kan een eventuele eindaccolade zijn, maar dat kan ik zelf niet vinden.
Offline TotempaaltJ - 25/07/2010 20:54 (laatste wijziging 25/07/2010 20:55)
Avatar van TotempaaltJ PHP interesse
Guido2 schreef:
Dank je wel.

Ik krijg alleen de volgende foutmelding.

Parse error: syntax error, unexpected T_STRING in /var/accounts/CN20081547/zoekint/getallenlijst.php on line 26


[..code..]

Regel 8 moet je even heel erg goed naar kijken. Als je het niet snapt. Echt heel erg goed.
Regel 17 ook, maar dat is minder belangrijk.

Oh en tel het aantal accolades!
Bedankt door: Guido2
Offline Guido2 - 26/07/2010 14:21
Avatar van Guido2 Nieuw lid    

  1. <?php
  2. while(list($pasid, $optie1, $optie2, $optie3) = mysql_fetch_row($resultaat))
  3. {
  4.  
  5. if(!isset($_POST['optie3']))
  6. {
  7. echo "Typ een getal.";}
  8.  
  9. else
  10. {
  11. echo "$optie3";}}
  12.  
  13. ?>
  14.  
  15. </body>
  16. </html>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s