login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem: zoeken op eerste letter van de titel.

Offline daboytommy87 - 11/03/2006 14:35 (laatste wijziging 11/03/2006 19:15)
Avatar van daboytommy87Nieuw lid Hallo allemaal,

Ik heb een probleempje met het zoeken naar de eerste letter van een titel van een film.
Het probleem is dat wanneer ik op de letter klik er niets gebeurd.

ik heb het volgende:

  1. <?php
  2. error_reporting("E_ALL");
  3. include("db_connectie2.php");
  4. $query = "SELECT Letter FROM letters ORDER BY Letter";
  5. $result = mysql_query($query);
  6. ?>
  7.  
  8. <html>
  9. <head>
  10. <title>Letters</title>
  11.  
  12. </head>
  13.  
  14. <body>
  15. <?php
  16. echo "<table>";
  17. echo "<tr>";
  18.  
  19. if(!isset($_GET['letter'])){
  20. while ($rij = mysql_fetch_array($result)){
  21. echo "<td><a href=\"select.php?beginletter=".$rij["Letter"]."\">".$rij["Letter"]."</a> | </td>\n";
  22. }
  23. }
  24. elseif(isset($_GET['letter'])){
  25. $query = "SELECT Titel FROM film WHERE Titel='".addslashes($_GET['letter'])."' ORDER BY Titel";
  26. $result = mysql_query($query)or die(mysql_error());
  27.  
  28. if(mysql_num_rows($result) == 0){
  29. echo "Er zijn nog geen films gevonden met begin letter <b>".$_GET['letter']."</b>";
  30. }
  31. else{
  32. //woorden weergeven
  33. while($rij = mysql_fetch_array($result)){
  34. echo $rij['Titel']."<br>"; //moet hij weergeven
  35. }
  36.  
  37. }
  38. }
  39. else{
  40. echo "fout in je script!";
  41. }
  42. ?>
  43. </tr>
  44. </table>
  45. </body>
  46. </html>


Wie o wie kan mij helpen?

Alvast bedankt

Rensjuh edit:
  1. [code]
tags![/code]

10 antwoorden

Gesponsorde links
Offline Button - 11/03/2006 14:40 (laatste wijziging 11/03/2006 14:41)
Avatar van Button PHP ver gevorderde plaats je code tussen code-tags.
Ik raad je aan, als iets wil zoeken in je db, LIKE te gebruiken.
als je toch select wil gebruiken wat me nogal raar lijkt en beetje onmogelijk om alleen maar op één letter van een héél woord te zoeken (of heb jij een veld aangemaakt met alleen maar de eerste letter? dan zou het wel kunnen)zou het meer iets moeten zijn zoals
  1. $query="SELECT * FROM letters WHERE letter='".$letter."'";

pas het wel even aan aan jouw script

edit: zeg me als ik fout zit, maar ik heb weining tijd
Offline daboytommy87 - 11/03/2006 15:03 (laatste wijziging 11/03/2006 15:04)
Avatar van daboytommy87 Nieuw lid het gaat niet zozeer om het stukje van:
$query="SELECT Letter FROM letters ORDER BY Letter;

Want dat resultaat is:
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |

Het gaat over het stukje dat wanneer je op de letter klikt, dat deze dan geen resultaten geeft

toch bedankt
Offline BramBo - 11/03/2006 15:41
Avatar van BramBo JS gevorderde misschien in de query :

  1. SELECT Titel FROM film WHERE Titel REGEX '^".addslashes($_GET['letter']).".*' ORDER BY Titel
Offline daboytommy87 - 11/03/2006 15:46
Avatar van daboytommy87 Nieuw lid Nopes werkt ook niet helaas, heb dit forum-item in de verkeerde categorie gezet, moet eigenlijk staan bij mysql/php. Heb hem daar dus geopend met als titel: Zoeken op beginletter werkt niet.
Offline Simon - 11/03/2006 16:18
Avatar van Simon PHP expert
  1. GEBRUIK CODE TAGS [code]
!!!!!![/code]

ten eerste
  1. if(isset($_GET['beginletter']))
ipv
  1. if(isset($_GET['letter']))

en je moet LIKE gebruiken:
  1. <?php
  2. $query = mysql_query("SELECT Titel FROM film WHERE Titel LIKE '".addslashes($_GET['letter'])."'%' ORDER BY Titel") or die(mysql_error());
  3. ?>
Offline daboytommy87 - 11/03/2006 18:41
Avatar van daboytommy87 Nieuw lid Het werkt. Hartstikke bedankt. Stom van me dat ik die LIKE er niet in had zitten. Is het heel belangrijk dat het beginletter is ipv gewoon letter? Is dat een standaard variabele? En die code tags heb ik nog nooit mee gewerkt als ik heel eerlijk ben... en weet ook niet waar ze voor dienen, kan je dat misschien toelichten.
Offline Rens - 11/03/2006 18:43
Avatar van Rens Gouden medaille

Crew algemeen
De var naam maakt opzich niet zoveel uit, zolang hij maar duidelijk is.

Die code-tags dienen ervoor om je code te highlighten zodat je kleurtjes krijgt.
Dat is makkelijker om je code te kunnen onderscheiden.
Je gebruikt ze zo:
  1. [code]hier komt dan je code te staan
[/code]
Offline daboytommy87 - 11/03/2006 19:10 (laatste wijziging 11/03/2006 19:18)
Avatar van daboytommy87 Nieuw lid dat is voorop dit forum? weer wat geleerd. Heb ik nog een vraag. Ik heb nu dat je a t/m z als beginletter kan kiezen, maar nu wil ik er ook 1 met overige tekens. Hoe pak ik dat aan?
Offline Maarten - 11/03/2006 19:48
Avatar van Maarten Erelid Je geeft dan een andere letter door, bv. # .

In je code zet je dan iets in de aard van
  1. <?php
  2. if($letter == '#') {
  3. // selecteer alles
  4. } else {
  5. // selecteer enkel data beginnende met $letter
  6. }
  7. ?>


Mits wat logica kan je dat zelf ook uitdokteren...
Offline daboytommy87 - 11/03/2006 20:00 (laatste wijziging 11/03/2006 20:05)
Avatar van daboytommy87 Nieuw lid Okeej, hartstikke bedankt! Maar als ik dat doe, dan selecteerd hij alles, dus ook alle titels beginnend met een letter A t/m Z. Maar dat was niet de bedoeling. Ik wil echt alleen de getallen.

  1. <?php
  2. echo "<table>";
  3. echo "<tr>";
  4. echo "<td>| <a href=\"select_film.php?beginletter=#\">0 t/m 9</a> | </td>";
  5. while ($rij = mysql_fetch_array($result)){
  6. echo "<td><a href=\"select_film.php?beginletter=".$rij["Letter"]."\">".$rij["Letter"]."</a> | </td>\n";
  7. }
  8. ?>
  9. </tr>
  10. </table>


Dit staat nu in mij script.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.277s