PHP zoekfunctie in sql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 4 5 volgende »

Michael

Michael

19/01/2006 20:31:00
Quote Anchor link
Hallo, ik zie door de bomen het bos niet meer.
Ik wil een zoekfunctie hebben waarbij ik op een aantal criteria (checkboxes, en een dropdown)gegevens uit de database kan lezen en deze plaatst op een result.php pagina.
hoe krijg ik dit voor elkaar kan iemand mij helpen??
 
PHP hulp

PHP hulp

16/01/2025 08:43:28
 
Jan Koehoorn

Jan Koehoorn

19/01/2006 20:39:00
Quote Anchor link
Ik heb laatst zoiets gemaakt: www.cultuurkids.nl
Niet echt simpel. Hoe ziet je MySQL tabel eruit en wat worden de elementen in je formulier?
 
Michael

Michael

19/01/2006 20:43:00
Quote Anchor link
ik heb een aantal manieren geprobeerd.
ik heb hem ff op een tripod gezet
http://members.lycos.nl/interfoon/mettoestel.php
en de sql tabel bevat die criteria
 
Michael

Michael

19/01/2006 20:48:00
Quote Anchor link
zoiets al die site van jou ongeveer
 
Jan Koehoorn

Jan Koehoorn

19/01/2006 20:49:00
Quote Anchor link
Je hebt dus vier zoekcriteria.

De eerste kan een aantal waarden hebben. De andere drie zijn uitsluiten ja/nee?
 
Michael

Michael

19/01/2006 20:51:00
Quote Anchor link
ja klopt die zijn uitsluiten ja/nee
de eerste is variabel of geen keuze en de bedoeling is dat deze op de andere 3 criteria dan zoekt
 
Jan Koehoorn

Jan Koehoorn

19/01/2006 20:54:00
Quote Anchor link
Ik moet even een half uurtje weg. Als je tijd hebt kijk straks nog even. Ik kan je hier wel mee helpen.
 
Michael

Michael

19/01/2006 20:55:00
Quote Anchor link
ok ik ben over 10 minuten weg maar als ik thuis ben kijk ik nog even.
Ik stel je hulp heel erg op prijs.
alvast bedankt
 
Michael

Michael

19/01/2006 20:55:00
Quote Anchor link
ok ik ben over 10 minuten weg maar als ik thuis ben kijk ik nog even.
Ik stel je hulp heel erg op prijs.
alvast bedankt
 
Jan Koehoorn

Jan Koehoorn

19/01/2006 21:59:00
Quote Anchor link
Je moet je HTML zo aanpassen:

<select name="merk" style="background-color: #dcdcdc; border: 1px solid #000000;">
<option value="geen voorkeur">geen voorkeur</option>
<option value="Blackberry">Blackberry</option>
<option value="Imate">Imate</option>
<option value="LG">LG</option>
<option value="Motorola">Motorola</option>
<option value="Nokia">Nokia</option>
<option value="Samsung">Samsung</option>
<option value="Sharp">Sharp</option>
<option value="Siemens">Siemens</option>
<option value="Sony-Ericsson">Sony-Ericsson</option>
</select>

<input name="camera" type="checkbox" value="camera">
<input name="bluetooth" type="checkbox" value="bluetooth">
<input name="umts" type="checkbox" value="umts">

De eerste checkbox (voor je select) kan weg. Als mensen geen voorkeur hebben kunnen ze dat immers in de lijst aangeven.

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
<?php
  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if ($_POST['merk'] != 'geen voorkeur') {
      $voorwaarden = '';
      $and = false;
    }

    else {
      $voorwaarden = "merk LIKE '".$_POST['merk']."'";
      $and = true;
    }

    if (isset ($_POST['camera'])) {
      if ($and) {
        $voorwaarden = ' AND camera = 1';
      }

      else {
        $voorwaarden = 'camera = 1';
        $and = true;
      }
    }

    if (isset ($_POST['bluetooth'])) {
      if ($and) {
        $voorwaarden = ' AND bluetooth = 1';
      }

      else {
        $voorwaarden = 'bluetooth = 1';
        $and = true;
      }
    }

    if (isset ($_POST['umts'])) {
      if ($and) {
        $voorwaarden = ' AND umts = 1';
      }

      else {
        $voorwaarden = 'umts = 1';
        $and = true;
      }
    }

    $sql = "
      SELECT veld1, veld2
      FROM tabel
      WHERE "
. $voorwaarden;
    // hierna je query uitvoeren
  }
?>


code is uit mijn hoofd en niet getest
Gewijzigd op 19/01/2006 22:02:00 door Jan Koehoorn
 
Michael

Michael

20/01/2006 15:13:00
Quote Anchor link
bedankt ik ga em ff testen
 
Michael

Michael

20/01/2006 15:37:00
Quote Anchor link
het lukt me nog niet
ik heb heb naar het adres geupload
misschien kan jij zeggen wat er mis is
 
Jan Koehoorn

Jan Koehoorn

20/01/2006 15:45:00
Quote Anchor link
Ik zal ff kijken.
 
Jan Koehoorn

Jan Koehoorn

20/01/2006 15:48:00
Quote Anchor link
Ik denk dat het al een heel stuk scheelt als je een form tag in je document zet ;-)

Voor je tabel:

<form method="post" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>
">
 
Robert Deiman

Robert Deiman

20/01/2006 15:48:00
Quote Anchor link
Als er geen voorkeur is Jan, moet die toch alles vinden? Waarom staat de Where dan standaard in de query?

Moet dan bij de else (dus dat $and nog false is) niet de WHERE erbij worden gezet en in de standaard query eruit?

EDIT:
Dus als er geen voorkeur is is dit je query:

SELECT veld1, veld2
FROM tabel
WHERE
Gewijzigd op 20/01/2006 15:51:00 door Robert Deiman
 
Jan Koehoorn

Jan Koehoorn

20/01/2006 15:51:00
Quote Anchor link
Daar heb je een punt. Of misschien anders zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    if ($_POST['merk'] != 'geen voorkeur') {
      $voorwaarden = 1;
      $and = false;
    }

?>


Dan geeft ie gewoon WHERE 1, wat ik in phpMyAdmin ook vaak tegenkom.
 
Robert Deiman

Robert Deiman

20/01/2006 15:55:00
Quote Anchor link
Waarom niet gewoon zo?
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
<?php
  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if ($_POST['merk'] != 'geen voorkeur') {
      $voorwaarden = '';
      $and = false;
    }

    else {
      $voorwaarden = "WHERE merk LIKE '".$_POST['merk']."'";
      $and = true;
    }

    if (isset ($_POST['camera'])) {
      if ($and) {
        $voorwaarden = ' AND camera = 1';
      }

      else {
        $voorwaarden = 'WHERE camera = 1';
        $and = true;
      }
    }

    if (isset ($_POST['bluetooth'])) {
      if ($and) {
        $voorwaarden = ' AND bluetooth = 1';
      }

      else {
        $voorwaarden = 'WHERE bluetooth = 1';
        $and = true;
      }
    }

    if (isset ($_POST['umts'])) {
      if ($and) {
        $voorwaarden = ' AND umts = 1';
      }

      else {
        $voorwaarden = 'WHERE umts = 1';
        $and = true;
      }
    }

    $sql = "
      SELECT veld1, veld2
      FROM tabel
      "
. $voorwaarden;
    // hierna je query uitvoeren
  }
?>
 
Jan Koehoorn

Jan Koehoorn

20/01/2006 15:56:00
Quote Anchor link
Die kan natuurlijk ook, maar dan heb je dus overal die WHERE's in je code.
 
PurpleMadness -

PurpleMadness -

20/01/2006 15:59:00
Quote Anchor link
Kan dat dan niet met switches?
 
Michael

Michael

20/01/2006 16:01:00
Quote Anchor link
hmmm ik heb het aangepast maar kom er nog steeds niet uit
php icm sql is nog te nieuw voor me denk ik
heb hem wederom geupload
 
Jan Koehoorn

Jan Koehoorn

20/01/2006 16:10:00
Quote Anchor link
En welke PHP code heb je gebruikt? De methode van Robert of die van mij?

Ik zie trouwens heel gekke dingen staan in de HTML:

<body>
<body text="#668014">
<body link="#009ACD">
<body vlink="#556B2F">
<body alink="#009ACD">


Kun je ter controle eens dit doen nadat de query door het script in elkaar is gesleuteld?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  // query echoën
  echo $sql;
?>


Dan kunnen we kijken wat er uit rolt.
 

Pagina: 1 2 3 4 5 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.