sql php: query werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ralph van der Tang

ralph van der Tang

28/03/2012 10:23:33
Quote Anchor link
hoi iedereen;

mijn zoek query wil niet werken iemand suggesties om deze te verbeteren.

je moet zowel op een veld kunnen zoeken als op alle

Mvg ralph

<!-- zoeken -->
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?

    // errors weergeven
    ini_set('display_errors',1); // 1 == aan , 0 == uit
    error_reporting(E_ALL | E_STRICT);

    // sql debug
    define('DEBUG_MODE',true);  // true == aan, false == uit

    // functie voor sql debug

    function showSQLError($sql,$error,$text='Error')
    {

        if (DEBUG_MODE)
        {

            return  '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
        }

        else
        {
            return $text;
        }
    }

    
if($_SERVER['REQUEST_METHOD'] == "POST")
    {

        // de query | bij input: let op sql-injectie -> mysql_real_escape_string()
$sql_search_horse = "SELECT *
                    FROM Paarden
                    WHERE vader='"
.mysql_real_escape_string($_POST['vader'])."'
                    OR geslacht='"
.$_POST['geslacht']."'
                    OR geboortejaar='"
.$_POST['leeftijd']."'
                    OR niveau='"
.$_POST['niveau']."'
                    OR verkoopPrijs >='"
.$_POST['prijs']."'
                    OR name='"
.$_POST['name']."'
                   "
;
 
//  Check of query is gelukt    
if (($sql_search_horse = mysql_query($sql_search_horse)) === false)
{

    // als de query fout is -> foutafhandeling
    echo showSQLError($sql_search_horse,mysql_error(),'Fout met het ophalen van de paarden.');
}

elseif (mysql_num_rows($sql_search_horse) == 0)
{

    // De query is gelukt en we hebben net gekeken met _num_rows of er een rij is:
    
    // -> Als er geen rij is echoën we hier:

    echo 'Er is geen paard wat voldoet aan de zoekeisen.';
}

else
{
    // Hier is er wel een rij dus ->

    echo '
        <div id="zoek_results">
            <table>
                <tr>
                    <th>Naam:</th>
                    <th>Geboortejaar:</th>
                    <th>Hoogte:</th>
                    <th>Niveau:</th>
                    <th>Vader:</th>
                    <th>Vader v.d. merrie:</th>
                    <th>Verkoopprijs:</th>
                    <th>meer info:</th>
                </tr>
                '
;    
               //we kunnen onze naam uit de database halen d.m.v. mysql_fetch_assoc
            while($zoek_result= mysql_fetch_assoc($sql_search_horse))
                {

                    echo'
                            <tr>
                                <td class="center">'
.$zoek_result['name'].'</td>
                                <td class="center">'
.$zoek_result['geboortejaar'].'</td>
                                <td class="center">'
.$zoek_result['hoogte'].'</td>
                                <td class="center">'
.$zoek_result['niveau'].'</td>
                                <td class="center">'
.$zoek_result['vader'].'</td>
                                <td class="center">'
.$zoek_result['vaderMerrie'].'</td>
                                <td class="center">'
.$zoek_result['verkoopPrijs'].'</td>
                                <td class="center"><a href="?page=page1.1.php">x</a>
                            </tr>
                        '
;
                }

echo'
                </table>
        </div>
    
'
;
}
    }

else
    {
        echo'
            <div id="zoeken">
                <form action="" method="POST">
                    <table>
                        <tr>
                            <td>Naam:</td>
                            <td><input type="text" class="input" name="name"></td>
                        </tr>
                        
                        <tr>
                            <td>Vader:</td>
                            <td><input type="text" class="input" name="vader"></td>
                        </tr>
                        
                        <tr>
                            <td>Geslacht:</td>
                            <td><input type="text" class="input" name="geslacht"></td>
                        </tr>
                        
                        <tr>
                            <td>Geboorte jaar</td>
                            <td><input type="text" class="input" name="leeftijd"></td>
                        </tr>
                        
                        <tr>
                            <td>Niveau:</td>
                            <td><input type="text" class="input" name="niveau"></td>
                        </tr>
                        
                        <tr>
                            <td>Max. prijs:</td>
                            <td><input type="text" class="input" name="prijs"></td>
                        </tr>

                        <tr>
                            <td></td>
                            <td><input type="submit" class="button" value="Zoeken"></td>
                        </tr>
                        
                    </table>    
                <form>
            </div>
        '
;
    }
Gewijzigd op 28/03/2012 11:06:10 door Ralph van der Tang
 
PHP hulp

PHP hulp

05/11/2024 22:07:00
 
Gerhard l

gerhard l

28/03/2012 10:28:16
Quote Anchor link
Wat krijg je te zien? Krijg je errors? "je moet zowel op een veld kunnen zoeken als op alle" die snap ik niet? Je kan ook gebruik maken van LIKE voor een zoekfunctie.
 
Ralph van der Tang

ralph van der Tang

28/03/2012 10:33:00
Quote Anchor link
de error sie ik krijg is deze :
Error: 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 'WHERE geslacht=''
OR WHERE leeftijd=''
OR WHERE niveau=''
OR ' at line 4

Toevoeging op 28/03/2012 10:33:34:

like kende ik nog niet zal er is naar gaan kijken op w3
 
Reshad F

Reshad F

28/03/2012 10:37:30
Quote Anchor link
misschien even alle WHERE weghalen achter de OR ??
 
Ralph van der Tang

ralph van der Tang

28/03/2012 10:53:21
Quote Anchor link
t werkt nu dank voor de snelle hulp

heb nog een vraagje
waarom krijg ik nu mijn hele database te zijn met deze query ?
script bovenin aan gepast

groet ralph
Gewijzigd op 28/03/2012 11:06:48 door ralph van der Tang
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.