Filteren uit database

Status
Niet open voor verdere reacties.

Maartenv87

Gebruiker
Lid geworden
23 okt 2008
Berichten
72
Ik heb volgend script om de gegevens uit mijn database weer te geven.
Ik zou nu graag aan de hand van een dropdown menu kunnen filteren op bijvoorbeeld leerjaar of op vak.
Er zou dus boven de verschillende kolommen een dropdown menu moeten komen. Heb al zitten zoeken maar het nog niet kunnen vinden.

Alvast bedankt!

Zonder WHERE leerjaar = ".2de leerjaar." geeft hij wel alle resultaten

Online ziet dit er zo uit http://sbshasselt.be/ictco/maarten/htdocs/

Weergave.php
Code:
<?php 
mysql_connect('localhost','¨***','***'); 
mysql_select_db('sbshasselt_be') or die (mysql_error()); 

if(mysql_result(mysql_query("SELECT COUNT(id) FROM `formulier`"),0) == 0) 
  { 
    echo 'Er staan nog geen berichten in de database'; 
  } 
else 
  { 
  ?> 
<table width="100%"> 
<tr> 
<td width="50px"><b><p class="style3">ID</p></b></td> 
<td width="50px"><b><p class="style3">Naam</p></b></td> 
<td width="50px"><b><p class="style3">Leerjaar</p></b></td> 
<td width="50px"><b><p class="style3">School</p></b></td> 
<td width="50px"><b><p class="style3">Vak</p></b></td> 
<td width="50px"><b><p class="style3">Lesonderwerp</p></b></td> 
<td width="50px"><b><p class="style3">Doelstelling</p></b></td> 
<td width="50px"><b><p class="style3">ICT</p></b></td> 
</tr>
<?php 
ob_start();
  $qSelect_berichten  = mysql_query('SELECT * FROM `formulier` [B]WHERE leerjaar = ".2de leerjaar.[/B]"') or die (mysql_error()); 
  while($aBerichten = mysql_fetch_array($qSelect_berichten)) 
    { 
      echo '<tr> 
	  <td width="50px"><p class="style4">'.$aBerichten['id'].'</p></td> 
              <td width="50px"><p class="style4">'.$aBerichten['naam'].'</p></td> 
              <td width="50px"><p class="style4">'.$aBerichten['leerjaar'].'</p></td> 
              <td width="50px"><p class="style4">'.$aBerichten['school'].'</p></td> 
			  <td width="50px"><p class="style4">'.$aBerichten['vak'].'</p></td> 
			  <td width="50px"><p class="style4">'.$aBerichten['lesonderwerp'].'</p></td> 
<td width="50px"><p class="style4">'.$aBerichten['doelstelling'].'</p></td> 
<td width="50px"><p class="style4">'.$aBerichten['ict'].'</p></td> 

            </tr>'; 
    } 
     echo '</table>'; 
   } 
?>
 
Laatst bewerkt:
Volgensmij erkent mySQL alleen de enkele aanhalingstekens.

PHP:
mysql_query ( "SELECT naam FROM table WHERE naam='jan' " );

Probeer het eens met alleen enkele in de query zelf...
 
Ik vraag mij wel af waarvoor je de ob_start() gebruikt.
 
Ondertussen ben ik al verder geraakt en heb ik een filter kunnen maken.
Nu vraag ik mij of hoe ik kan filteren op 2 dingen en of dit mogelijk is?

Het voorbeeld: http://sbshasselt.be/ictco/maarten/htdocs/index.php

PHP-code

Zoek2.php

Code:
    echo "<HTML>\n
    <HEAD><TITLE>Filter</TITLE></HEAD>
    <BODY>
    
  
    <p>
    <FORM METHOD=\"POST\" ACTION=\"index.php\">
    <b>Filter op leerjaar:</b><br>
    <select name=\"leerjaar\" id=\"leerjaar\">
		      <option>   </option>
	      <option>1ste kleuter</option>
          <option>2de kleuter</option>
          <option>3de kleuter</option>
          <option>1ste lager</option>
          <option>2de lager</option>
          <option>3de lager</option>
          <option>4de lager</option>
          <option>5de lager</option>
          <option>6de lager</option>
	</select>
    <input type=\"submit\" name=\"submit\" value=\"Zoeken\">
    </p>
    
    </BODY>
    </HTML>";
Weergeven.php
Code:
if(mysql_result(mysql_query("SELECT COUNT(id) FROM `formulier`"),0) == 0) 
  { 
    echo 'Er staan nog geen berichten in de database'; 
  } 
else 
  { 
  ?> 
      <?php include("zoek2.php"); ?>
<table width="100%"> 
<tr> 
<td width="50px"><b><p class="style3">Leerjaar</p></b></td> 
<td width="50px"><b><p class="style3">Vak</p></b></td> 
<td width="50px"><b><p class="style3">Lesonderwerp</p></b></td> 
<td width="30%"><b><p class="style3">Doelstelling</p></b></td> 
<td width="30%"><b><p class="style3">ICT</p></b></td> 
</tr>
<?php 
  $sql = "SELECT * FROM `formulier` WHERE `leerjaar` LIKE '%$HTTP_POST_VARS[leerjaar]%'";
  $qSelect_berichten  = mysql_query($sql) or die (mysql_error()); 
  while($aBerichten = mysql_fetch_array($qSelect_berichten)) 
    { 
      echo '<tr> 
              <td width="50px"><p class="style4">'.$aBerichten['leerjaar'].'</p></td> 
			  <td width="50px"><p class="style4">'.$aBerichten['vak'].'</p></td> 
			  <td width="50px"><p class="style4">'.$aBerichten['lesonderwerp'].'</p></td> 
<td width="30%"><p class="style4">'.$aBerichten['doelstelling'].'</p></td> 
<td width="30%"><p class="style4"><a href="'.$aBerichten['ict'].'">'.$aBerichten['ict'].'</a></p></td> 

            </tr>'; 
    } 
     echo '</table>'; 
   }
 
Laatst bewerkt:
PHP:
SELECT veld1, veld2
FROM tabel
WHERE veld6 LIKE '%waarde1%'
AND veld 2 = 'waarde2'
Voorbeeldje in algemene zin :)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan