Toon posts:

if else fout ?

Pagina: 1
Acties:
  • 534 views

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een formulier met 4 keuzevakjes: Land,Maand,Prijs,Logies.
Als men bij alle 4 iets selecteert werkt mijn resultatenpagina.

Echter is er ook de mogelijkheid om het volgende te selecteren:
Bij Land : <option value='Alle'>- Alle Landen
Bij Maand : <option value='Gans'>Gans het jaar
Bij Prijs: <option value='Iedere'>Iedere prijs
Bij Logies : <option value='Alles'>Alle

Aangezien dat ‘Alle’ ‘Gans’ ‘Iedere’ ‘Alles’ niet in de db staan dacht ik het op te lossen met: if else

ID
LAND
MAAND
DATUM
PRIJS
LOGIES

1 Roemenie Juli 16 15-22/22-29 790 Bivak
2 Roemenie Augustus 16 1-8/8-15/-15-22/22-29/29- 790 Bivak
4 Roemenie Juli 16 15-22 0-1000 Ranch
5 Spanje Augustus 16 1-8 0-1000 Ranch

Ik heb hier niet alle velden in gecopieerd.


If 1 if 2 if 3 if 4 werkt, maar als ik if 5 toevoeg werkt er niets meer.

Wat doe ik fout ?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php

include('connect.php');

$zoekland=$_POST["LAND"];
$zoekmaand=$_POST["MAAND"];
$zoekprijs=$_POST["PRIJS"];
$zoeklogies=$_POST["LOGIES"];

$Alle=Alle;
$Gans=Gans;
$Iedere=Iedere;

if ($zoekland==$Alle)
{
$sql = "SELECT  MAAND, DATUM, TOCHT, FOTO, TEKST, PRIJS, LOGIES, SOORT FROM `hippotrail`  WHERE MAAND ='$zoekmaand' AND PRIJS ='$zoekprijs' AND LOGIES ='$zoeklogies' ";
}
 
if (($zoekland==$Alle)AND($zoekmaand==$Gans))
{
$sql = "SELECT  MAAND, DATUM, TOCHT, FOTO, TEKST, PRIJS, LOGIES, SOORT FROM `hippotrail` WHERE   PRIJS ='$zoekprijs' AND LOGIES ='$zoeklogies' ";
}
 
if (($zoekland==$Alle)AND($zoekmaand==$Gans)AND ($zoekprijs=$Iedere))
{
$sql = "SELECT  MAAND, DATUM, TOCHT, FOTO, TEKST, PRIJS, LOGIES, SOORT FROM `hippotrail` WHERE LOGIES ='$zoeklogies' ";
}
 
if (($zoekland==$Alle)AND($zoekmaand==$Gans)AND($zoekprijs=$Iedere)AND($zoeklogies=Alles))
{
$sql = "SELECT  MAAND, DATUM, TOCHT, FOTO, TEKST, PRIJS, LOGIES, SOORT FROM `hippotrail`  ";
}
 
if (($zoekland==$Alle)AND($zoekprijs=$Iedere))
{
$sql = "SELECT  MAAND, DATUM, TOCHT, FOTO, TEKST, PRIJS, LOGIES, SOORT FROM `hippotrail`   WHERE MAAND ='$zoekmaand'  AND LOGIES ='$zoeklogies' ";
}
 
 
Else

{
$sql = "SELECT  MAAND, DATUM, TOCHT, FOTO, TEKST, PRIJS, LOGIES, SOORT FROM `hippotrail` ";
// WHERE  MAAND='$zoekmaand' AND PRIJS ='$zoekprijs' AND LOGIES ='$zoeklogies' ";
//AND MAAND ='$zoekmaand' AND PRIJS ='$zoekprijs' AND LOGIES ='$zoeklogies' AND SOORT ='$zoeksoort'";
}

if(!$result = $mysqli->query($sql))
{
trigger_error('Fout in query: '.$mysqli->error);
}
else
while($row = $result->fetch_assoc())
{
$host = $row['LAND'];
$maand = $row['MAAND'];
$datum = $row['DATUM'];
$tocht = $row['TOCHT'];
$foto = $row['FOTO'];
$tekst = $row['TEKST'];
$prijs = $row['PRIJS'];
$logies = $row['LOGIES'];
$soort = $row['SOORT'];


$kolom_breedte   =['360'];
$top = 'top';
$info='meer weten ...';
$left='left';
$right='right';
?>
<table cellspacing="15">
 <tbody>
   <tr>
    <td colspan="5" valign="top" ><hr></td>
    </tr>
    <tr>
       <td valign="top"></td>
       <td valign="top"></td>
       <td valign="top" align="left" width="250"><p></p></td>
       <td valign="top" width="100"><p></p></td>
       <td valign="top" width="50"><p></p></td>
       
       
     </tr>
     <tr>
<?php

[ Voor 0% gewijzigd door Creepy op 27-05-2016 22:29 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 11-10 20:24
Als je een variabele wil aanmaken die een woord bevat horen daar aanhalingstekens omheen.

Daarnaast: zou je code-tags willen gebruiken? Die maken het een stuk beter leesbaar.
Over die aanhalingstekens; een IDE had je kunnen vertellen dat je code niet werkt op deze manier, vanwege syntax die nu niet klopt.

Edit: er bestaat trouwens ook een elseif, die is sneller als een van je eerdere ifs reeds het juiste antwoord is én dan overschrijf je je $sql maar eenmaal. Enige is dat je ze wel in de juiste volgorde moet gebruiken, van steeds meer checks in je if-statement naar steeds minder.

[ Voor 31% gewijzigd door Merethil op 27-05-2016 22:06 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 11-10 14:13

Creepy

Tactical Espionage Splatterer

"werkt niet meer"

Dus wat gebeurd er dan? Krijg je een wit scherm? Zo ja,. zoek dan eens in de logfiles van je webserver, daar staat waarschijnlijk een PHP foutmelding die je verder kan helpen. Je code hier dumpen en niks meer vragen dan "wat doe ik fout?" is nu net niet de bedoeling. Debuggen kan je in eerste instantie zelf. Kijk dus je logfiles na, of ga desnoods met echo's aan de slag om te kijken wat er wel in je script wordt uitgevoerd. Als je er dan echt niet uitkomt en je wil weer posten, laat dan in elk geval weten wat je nu zelf al hebt onderzocht.

Je bent al eens gewezen op het bestaan van Het algemeen beleid #quickstart, doe er de volgende keer je voordeel mee ;)

[ Voor 11% gewijzigd door Creepy op 27-05-2016 22:39 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.