Database filteren door radio button én select list

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Shana vermeiren

shana vermeiren

15/06/2011 13:33:41
Quote Anchor link
Hoi
Ik maak een applicatie waar er records gefilterd worden uit een databank op basis van
1) de waarde van een radio button
2) de waarde van een select list (dropdown)

Wat de applicatie nu doet is filteren op basis van de dropdown list, maar wanneer ik er een filter met radio buttons in wil verwerken, gata het niet meer. Dit is wat ik tot nu toe heb

Dit zijn de 2 formulieren op de eerste pagina:

<div id="keuze">
<form method="post" action="filter.php">
<input type="radio" name="keuze" value="Persoonlijk"/>Persoonlijke hulp
<input type="radio" name="keuze" value="Telefoon" style="margin-left:100px"/>Telefonische hulp
<input type="radio" name="keuze" value="chat" style="margin-left:120px"/>Chat
<input type="radio" name="keuze" value="mnu" style="margin-left:160px"/>Maakt niet uit
</form>

</div>

<div id="comments">
<form method="post" action="filter.php">
<select name="selectlist">
<option value="zelfmoord">Zelfmoord</option>
<option value="ouders">Ouders</option>
<option value="school">School</option>
<option value="drugs">Drugs</option>
<option value="alcohol">Alcohol</option>
<option value="liefde">Liefde</option>
<option value="zwanger">Zwanger</option>
</select>
<input type="submit" id="sendbtn" value="Verzend" class="sendbtn">
</form>

dit is de php code op de 2de pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
include ('connection.php');
session_start();

$variable = $_POST['selectlist'];
$keuze = $_POST['keuze'];

?>


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
<?php
if($variable == 'drugs' && $keuze =='Persoonlijk'){
$result = mysql_query("SELECT OrganisatieNaam,BegeleiderTel,BegeleiderMail,Beschrijving,website FROM tblorganisaties WHERE `drugs`=1 AND 'Persoonlijk'=1;");
echo "<table border='1'>
    <tr>
      <th>Organisatie</th>
      <th>Tel</th>
      <th>Email</th>
      <th>Website</th>
      <th>Beschrijving</th>
    </tr>"
;
    while ($row = mysql_fetch_array($result)) {
      echo "<tr>";
      echo "<td>" . $row['OrganisatieNaam'] . "</td>";
      echo "<td>" . $row['BegeleiderTel'] . "</td>";
      echo "<td>" . $row['BegeleiderMail'] . "</td>";
      echo  "<td> <a href='".$row['website']."'>" . $row['website'] . "</a></td>";
      echo "<td>" . $row['Beschrijving'] . "</td>";
      echo "</tr>";
    }

  echo "</table>";
  }



Alvast bedankt voor jullie hulp

[size=xsmall][i]Toevoeging op 15/06/2011 13:34:48:[/i][/size]

als foutmelding krijg ik undefined index voor zowel $keuze als $variable
 
PHP hulp

PHP hulp

21/05/2024 15:55:43
 
- SanThe -

- SanThe -

15/06/2011 13:45:18
Quote Anchor link
Je hebt twee formulieren. De eerste heeft geen submitknop dus die zal je nooit kunnen verzenden. Waarom maak je daar niet één formulier van?
 
Shana vermeiren

shana vermeiren

15/06/2011 13:46:35
Quote Anchor link
ik vond het makkelijker voor de opmaak om er 2 formulieren van te maken
het is wél de bedoeling dat de verzendknop de waarde van de radio button meegeeft
 
- SanThe -

- SanThe -

15/06/2011 13:52:38
Quote Anchor link
Je kan toch altijd maar één formulier posten.
 
Shana vermeiren

shana vermeiren

15/06/2011 13:53:28
Quote Anchor link
en zou het dan wél werken met de code die ik al heb denk je?

Toevoeging op 15/06/2011 14:02:07:

hmm ik heb er nu 1 formulier van gemaakt en ik krijg geen fouten meer, MAAR als ik een radio button aanduid, geeft hij een lege tabel
de query is juist, want ik heb hem eerst getest:

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
<?php
if($variable == 'drugs' && $keuze =='chat'){
$result = mysql_query("SELECT OrganisatieNaam,BegeleiderTel,BegeleiderMail,Beschrijving,website FROM tblorganisaties WHERE `drugs`=1 AND 'chat'=1");
echo "<table border='1'>
    <tr>
      <th>Organisatie</th>
      <th>Tel</th>
      <th>Email</th>
      <th>Website</th>
      <th>Beschrijving</th>
    </tr>"
;
    while ($row = mysql_fetch_array($result)) {
      echo "<tr>";
      echo "<td>" . $row['OrganisatieNaam'] . "</td>";
      echo "<td>" . $row['BegeleiderTel'] . "</td>";
      echo "<td>" . $row['BegeleiderMail'] . "</td>";
      echo  "<td> <a href='".$row['website']."'>" . $row['website'] . "</a></td>";
      echo "<td>" . $row['Beschrijving'] . "</td>";
      echo "</tr>";
    }

  echo "</table>";
  }

?>
 
- SanThe -

- SanThe -

15/06/2011 14:06:07
Quote Anchor link
In principe wel zo te zien.

Alleen een paar notes:
- Geen $vars nutteloos copiëren. (regel 5 en 6)
- Check of er gepost is met if($_SERVER['REQUEST_METHOD'] == 'POST')
- Bouw foutafhandeling in.
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/
- Geen quotes en backtics om tabelnamen.
WHERE `drugs`=1 AND 'Persoonlijk'=1
- Gebruik bij echo enkele quotes zodat de html valid is met zijn dubbele quotes.
Dus niet echo "<table border='1'>";
Maar echo '<table border="1">';
- Gebruik mysql_fetch_assoc($result)
in plaats van mysql_fetch_array($result).
Gewijzigd op 15/06/2011 14:07:21 door - SanThe -
 
Shana vermeiren

shana vermeiren

15/06/2011 14:09:16
Quote Anchor link
het rare is gewoon, als ik de query uitvoer in de localhost, komen er 5 records en hier krijg ik geen enkele

ik heb ook bovenaan de 2de pagina een echo $keuze; gedaan en de optie die wordt aangeduid wordt wel degelijk meegegeven, dus ik snap niet waarom ik dan geen resultaten krijg
 
- SanThe -

- SanThe -

15/06/2011 14:14:18
Quote Anchor link
Dat komt door WHERE `drugs`=1 AND 'chat'=1
De backtics rond drugs horen daar niet. (Maar dit is niet het probleem)
Bij 'chat'=1 kijk jij of de tekst 'chat', en niet het veld chat, gelijk is aan 1. Om chat horen geen quotes te staan. (Dit is het probleem)
Gewijzigd op 15/06/2011 14:22:38 door - SanThe -
 
Shana vermeiren

shana vermeiren

15/06/2011 14:16:13
Quote Anchor link
oooh joepie! het is gelukt!
ik heb voor de quotes van chat dezelfde gebruikt als die van drugs

toch heel fel bedankt voor de hulp!!
 
- SanThe -

- SanThe -

15/06/2011 14:21:44
Quote Anchor link
Shana vermeiren op 15/06/2011 14:16:13:
oooh joepie! het is gelukt!
ik heb voor de quotes van chat dezelfde gebruikt als die van drugs


Niet doen. Gewoon GEEN quotes (= backtics) is het beste.
Gewijzigd op 15/06/2011 14:22:06 door - SanThe -
 



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.