Hoe kan ik de zoekmachine op geselecteerde aspecten laten zoeken ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Michel

Michel

20/06/2006 10:00:00
Quote Anchor link
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
<?
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $query = mysql_query("SELECT * FROM voorraad WHERE artikelvpr LIKE '%".$_POST['q']."%'")or die (mysql_error());
    
    if(mysql_num_rows($query) == '') {
        echo "Er is niks gevonden dat vergelijkbaar is met u zoekopdracht.<br/>Probeer wat preciezer te zijn.";
    }

    
            while($row = mysql_fetch_assoc($query)AND $res= mysql_fetch_assoc($kweerie)) {
                echo "<table>";
                echo "<th>Artikelgroep</th>";
                echo "<th>omschrijving</th>";
                echo "<th>locatie</th>";
                echo "<th>aantal</th>";
                echo "<tr>";
                echo "<td>";
        echo $row['productgroep'];
        echo "</td>";
                echo "<td>";
        echo $row['artikelvpr'];
        echo "</td>";
                echo "<td>";
        echo $row['locatievpr'];
        echo "</td>";
                echo "<td>";
        echo $row['aantal'];
        echo "</td>";
        echo "</tr>";

    }
}

?>


Mijn zoekmachine zoekt nu alleen op artikelnamen (artikelvpr), hoe kan ik er voor zorgen.. dmv. een dropdown selectiebox dat hij ook op andere aspecten kan zoeken?

mvg. Michel Alvast bedankt voor de moeite!:)
 
PHP hulp

PHP hulp

14/11/2024 18:29:47
 
Gerben G

Gerben G

20/06/2006 10:16:00
Quote Anchor link
dan moet je die WHERE artikelvpr vervangen voor:

WHERE $_POST['zoek']

en dan een dropdown maken
 
Michel

Michel

20/06/2006 10:17:00
Quote Anchor link
thnx :) i'll try!:)
 
Gerben G

Gerben G

20/06/2006 10:17:00
Quote Anchor link
No problem
 
Michel

Michel

20/06/2006 10:37:00
Quote Anchor link
<FORM METHOD="post" ACTION="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($_SERVER["PHP_SELF"]); ?>
">
<SELECT NAME="zoek">
<OPTION value="artikelvpr"> Artikel Naam </OPTION>
<OPTION value="productgroep"> Artikel Groep </OPTION>
<OPTION value="leveranc"> Leverancier </OPTION>
<OPTION value="locatievpr"> Locatie </OPTION>
</SELECT>
<input type="text" name="q" id="q">
<input type="submit">
</form>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
include ('connect.php');

$minimaal = "SELECT * FROM voorraad";
$kweerie = mysql_query($minimaal);

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $query = mysql_query("SELECT * FROM voorraad WHERE '".$_POST['zoek']."' LIKE '%".$_POST['q']."%'")or die (mysql_error());
    ?>


Ik krijg geen resultaat ... en als ik de querie echo krijg ik dit...

Resource id #5

grtz
 
Gerben G

Gerben G

20/06/2006 10:41:00
Quote Anchor link
haal de mysql_query is weg en echo hem dan eens??

dan krijg je de query te zien en niet een resource id
 
Michel

Michel

20/06/2006 10:54:00
Quote Anchor link
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\mervoorraad\artzoeken.php on line 56
Er is niks gevonden dat vergelijkbaar is met u zoekopdracht.
Probeer wat preciezer te zijn.
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\mervoorraad\artzoeken.php on line 60
 
Michel

Michel

20/06/2006 10:59:00
Quote Anchor link
SELECT * FROM voorraad WHERE 'artikelvpr' LIKE '%ergline%'

de querie
 
Gerben G

Gerben G

20/06/2006 11:20:00
Quote Anchor link
wil je het hele script even posten????
 
The Pope

The Pope

20/06/2006 11:26:00
Quote Anchor link
gebruik ook eens op je mysql_query() hetvolgende:

mysql_query() or die(mysql_error());
 
Twan van der Poel

Twan van der Poel

20/06/2006 11:29:00
Quote Anchor link
stel je hebt deze

<SELECT NAME="zoek">
<OPTION value="artikelvpr"> Artikel Naam </OPTION>
<OPTION value="productgroep"> Artikel Groep </OPTION>
<OPTION value="leveranc"> Leverancier </OPTION>
<OPTION value="locatievpr"> Locatie </OPTION>
</SELECT>

en een invoerveld met name="zoekshi"t"

dan krijg je dus een kwerie als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$kwerie
= "SELECT * FROM blabla WHERE '".$_POST['zoek']."' LIKE '%".$_POST['zoekshit']."%'";
$result = mysql_query($kwerie);
?>


Hoop dat je er wat mee kunt!! groetjes
 
Simon Blok

Simon Blok

20/06/2006 11:32:00
Quote Anchor link
Quote:
dan krijg je dus een kwerie als

Dan krijg je dus een query (nederlands) :-P
 
The Pope

The Pope

20/06/2006 11:37:00
Quote Anchor link
simon:
Quote:
dan krijg je dus een kwerie als

Dan krijg je dus een query (nederlands) :-P


nou, ik wil niet veel zeggen, maar Query is volgens mij geen nederlands maar engels / amerikaans :P

EDIT:

@hieronder:

Twan:
Zon kinderachtige reactioe als die van jullie helpt deze persoon niet met het vinden van een oplossing, dus weer een beetje volwassen jongens


nee, met zo'n reactie help je hem verder (-_-')
Gewijzigd op 01/01/1970 01:00:00 door The Pope
 
Twan van der Poel

Twan van der Poel

20/06/2006 11:40:00
Quote Anchor link
Zon kinderachtige reactioe als die van jullie helpt deze persoon niet met het vinden van een oplossing, dus weer een beetje volwassen jongens
 
Michel

Michel

20/06/2006 14:01:00
Quote Anchor link
uhhmm... heeft iemand een idee wat mijn error kan betekenen ?
 
Frank -

Frank -

20/06/2006 14:04:00
Quote Anchor link
Michel:
uhhmm... heeft iemand een idee wat mijn error kan betekenen ?
Welke error? Er is inmiddels zo veel gezegd en geschreven, dat het handig is om even aan te geven wat je huidige foutmelding is. Tvens ben ik benieuwd hoe de query er nu uit ziet.
 
Michel

Michel

20/06/2006 14:07:00
Quote Anchor link
<div id="main">
<h3> Zoeken <h3>

<FORM METHOD="post" ACTION="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo($_SERVER["PHP_SELF"]); ?>
">
<SELECT NAME="zoek">
<OPTION value="artikelvpr"> Artikel Naam </OPTION>
<OPTION value="productgroep"> Artikel Groep </OPTION>
<OPTION value="leveranc"> Leverancier </OPTION>
<OPTION value="locatievpr"> Locatie </OPTION>
</SELECT>
<input type="text" name="q" id="q">
<input type="submit">
</form>


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
<?php
include ('connect.php');

$minimaal = "SELECT * FROM voorraad";
$kweerie = mysql_query($minimaal);

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $query = mysql_query("SELECT * FROM voorraad WHERE '".$_POST['zoek']."' LIKE '%".$_POST['q']."%'")or die (mysql_error());
    
                echo "<table>";
                echo "<th>Artikelgroep</th>";
                echo "<th>omschrijving</th>";
                echo "<th>locatie</th>";
                echo "<th>aantal</th>";

    if(mysql_num_rows($query) == '') {
        echo "Er is niks gevonden dat vergelijkbaar is met u zoekopdracht.<br/>Probeer wat preciezer te zijn.";
    }

    
            while($row = mysql_fetch_assoc($query)AND $res= mysql_fetch_assoc($kweerie)) {
                echo "<tr>";
                echo "<td>";
        echo $row['productgroep'];
        echo "</td>";
                echo "<td>";
        echo $row['artikelvpr'];
        echo "</td>";
                echo "<td>";
        echo $row['locatievpr'];
        echo "</td>";
                echo "<td>";
        echo $row['aantal'];
        echo "</td>";
        echo "</tr>";

    }
}



echo "$query";
?>



Hier heb je alles:)


Dit is de error

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\mervoorraad\artzoeken.php on line 56
Er is niks gevonden dat vergelijkbaar is met u zoekopdracht.
Probeer wat preciezer te zijn.
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\mervoorraad\artzoeken.php on line 60


en dit is de querie

SELECT * FROM voorraad WHERE 'artikelvpr' LIKE '%ergline%'

die heb ik ge-echood
 
Abiboe -

abiboe -

20/06/2006 14:17:00
Quote Anchor link
dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$query = mysql_query("SELECT * FROM voorraad WHERE artikelvpr LIKE '%".$_POST['q']."%'")or die (mysql_error());


is vragen om mysql-injection..
kwaadwillenden kunnen bijvoorbeeld hele tabellen verwijderen of laten zien omdat de post variabele niet gecontroleerd word.

een simpel voorbeeld, we hebben een query als
SELECT * FROM users WHERE id=$_POST['id']

stel dat iemand dit opstuurd; $_POST['id'] = "1 ; DROP TABLE users";

3 maal raden wat er gebeurt. eerst worden alle gegevens over de user met id 1 opgevraagd, vervolgens wordt met een puntkomma die query afgesloten en een nieuwe gestart, een die de hele tabel users leegt!

hoe is dit op te lossen? simpel, controleer altijd of post variabelen geen dingen bevatten als puntkomma's en teksten als "DELETE", "DROP" en "SELECT".

ook selects moet je dus blokkeren, stel je voor dat iemand op het idee komt om dit als post in te voeren: 1 ; SELECT * FROM users

Inderdaad, hij krijg alle gegevens over alle leden te zien, helemaal een ramp als je zo stom bent om de wachtwoorden niet te versleutelen.
 
Frank -

Frank -

20/06/2006 14:23:00
Quote Anchor link
Abidou heeft volkomen gelijk, $_POST e.d. hoort nooit zo in een query te staan.

Maar dan het probleem:
SELECT * FROM voorraad WHERE 'artikelvpr' LIKE '%ergline%'
Deze query is fout. Je probeert nu de string 'artikelvpr' te vergelijken met '%ergline%'. Wat je echter wilt, is kijken in een bepaalde kolom of daar '%ergline%' voorkomt. Als 'artikelvpr' een kolomnaam is, mag deze nooit tussen quotes staan. Quotes geven aan dat het gaat om een string.
 
Gerben G

Gerben G

20/06/2006 14:24:00
Quote Anchor link
@ abiboe

zo werkt het niet helemaal hoor.

je krijgt op de manier die jij zegt gewoon een foutmeldig of iets maar hij gaat echt niet die tabel verwijderen
 
Gerben G

Gerben G

20/06/2006 14:27:00
Quote Anchor link
Frank:
Abidou heeft volkomen gelijk, $_POST e.d. hoort nooit zo in een query te staan.
....


dat ben ik met je eens maar hij gebruikt een variable na een like.

dan wordt er niet een tabel verwijderd als je zoekt op DROP table user
 

Pagina: 1 2 volgende »



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.