login  Naam:   Wachtwoord: 
Registreer je!
 Forum

zoekscript

Offline neluz - 12/07/2009 19:34 (laatste wijziging 12/07/2009 19:35)
Avatar van neluzNieuw lid hoi ik ben een soort van marktplaats script aan het bouwen, nu moet ik er een zoekfunctie in zien te maken... maar daar heb ik nogal enkele problemen mee ...
opties die je kunt kiezen :
trefwoord:
categorie:
subcategorie:
prijs min:
prijs max:
soort: aangeboden / gezocht

het zoekscript werkt bijna..
hij zoekt al op trefwoorden in de categorien en subcategorien maar ik ondervind problemen als ik bij de prijs min/max en soorten aankom ..... msschn dat iemand hier enig idee heeft?

  1. <?
  2.  
  3. $Subcategorie = $_POST['Subcategorie'];
  4. $Categorie = substr($_POST['Categorie'], 21,2);
  5. $Trefwoord = $_POST['Trefwoord'];
  6. $Prijs1 = $_POST['Prijs1'];
  7. $Prijs2 = $_POST['Prijs2'];
  8. $Soort = $_POST['Soort'];
  9. $Plaats = $_POST['Plaats'];
  10.  
  11. $db = mysql_connect($sql_host, $sql_user, $sql_password) or die("Er is iets fout gegaan. Er kon geen contact gemaakt worden met de database.");
  12. mysql_select_db($sql_db) or die("Er is iets fout gegaan. De geselecteerde database bestaat niet.");
  13.  
  14. if ($Categorie == "geen-url")
  15. {
  16. $Categorie = "";
  17. }
  18.  
  19. if (($Trefwoord) && (!$Categorie) && (!$Subcategorie) && (!$Prijs_min) && (!$Prijs_max) && (!$Soort))
  20. {
  21. $query = mysql_query("SELECT * FROM advertentie WHERE tekst LIKE '%$Trefwoord%' OR titel LIKE '%$Trefwoord%'");
  22. $result = mysql_num_rows($query);
  23.  
  24. }
  25.  
  26. else if (($Trefwoord) && ($Categorie) && ($Subcategorie) && (!$Prijs_min) && (!$Prijs_max) && (!$Soort))
  27. {
  28. $query = mysql_query("SELECT * FROM advertentie WHERE categorie_id ='$Categorie' AND subcategorie_id='$Subcategorie' AND tekst LIKE '%$Trefwoord%' OR titel LIKE '%$Trefwoord%'");
  29. $result = mysql_num_rows($query);
  30.  
  31. }
  32.  
  33. else if ((!$Trefwoord) && ($Categorie) && ($Subcategorie) && (!$Prijs_min) && (!$Prijs_max) && (!$Soort))
  34. {
  35. $query = mysql_query("SELECT * FROM advertentie WHERE categorie_id ='$Categorie' AND subcategorie_id='$Subcategorie'");
  36. $result = mysql_num_rows($query);
  37.  
  38. }
  39.  
  40. else if (($Trefwoord) && ($Categorie) && ($Subcategorie) && (!$Prijs_min) && (!$Prijs_max) && ($Soort))
  41. {
  42. $query = mysql_query("SELECT * FROM advertentie WHERE categorie_id ='$Categorie' AND subcategorie_id='$Subcategorie' AND soort='$Soort' AND tekst LIKE '%$Trefwoord%' OR titel LIKE '%$Trefwoord%'");
  43. $result = mysql_num_rows($query);
  44.  
  45. }
  46.  
  47. else if ((!$Trefwoord) && ($Categorie) && ($Subcategorie) && (!$Prijs_min) && (!$Prijs_max) && ($Soort))
  48. {
  49. $query = mysql_query("SELECT * FROM advertentie WHERE categorie_id ='$Categorie' AND subcategorie_id='$Subcategorie' AND soort='$Soort'");
  50. $result = mysql_num_rows($query);
  51.  
  52. }
  53.  
  54. else if ((!$Trefwoord) && ($Categorie) && ($Subcategorie) && ($Prijs_min) && ($Prijs_max) && (!$Soort))
  55. {
  56. $query = mysql_query("SELECT * FROM advertentie WHERE categorie_id ='$Categorie' AND subcategorie_id='$Subcategorie' AND prijs BETWEEN '$Prijs_min' AND '$Prijs_max'");
  57. $result = mysql_num_rows($query);
  58.  
  59. }
  60.  
  61. else if (($Trefwoord) && ($Categorie) && ($Subcategorie) && ($Prijs_min) && ($Prijs_max) && (!$Soort))
  62. {
  63. $query = mysql_query("SELECT * FROM advertentie WHERE categorie_id ='$Categorie' AND subcategorie_id='$Subcategorie' AND prijs BETWEEN '$Prijs_min' AND '$Prijs_max' AND tekst LIKE '%$Trefwoord%' OR titel LIKE '%$Trefwoord%'");
  64. $result = mysql_num_rows($query);
  65.  
  66. }
  67.  
  68. else if ((!$Trefwoord) && ($Categorie) && ($Subcategorie) && ($Prijs_min) && ($Prijs_max) && ($Soort))
  69. {
  70. $query = mysql_query("SELECT * FROM advertentie WHERE categorie_id ='$Categorie' AND subcategorie_id='$Subcategorie' AND soort='$Soort' AND prijs BETWEEN '$Prijs_min' AND '$Prijs_max'");
  71. $result = mysql_num_rows($query);
  72.  
  73.  
  74. }
  75.  
  76. else if (($Trefwoord) && ($Categorie) && ($Subcategorie) && ($Prijs_min) && ($Prijs_max) && ($Soort))
  77. {
  78. $query = mysql_query("SELECT * FROM advertentie WHERE categorie_id ='$Categorie' AND subcategorie_id='$Subcategorie' AND soort='$Soort' AND prijs BETWEEN '$Prijs_min' AND '$Prijs_max' AND tekst LIKE '%$Trefwoord%' OR titel LIKE '%$Trefwoord%'");
  79. $result = mysql_num_rows($query);
  80.  
  81. }
  82.  
  83. ?>



  1. <table width="702" cellpadding="0" cellspacing="0">
  2. <tr>
  3. <td width="100%" valign="top" align="left">
  4.  
  5. <?
  6.  
  7. echo "<table cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" border=\"0\">";
  8. echo "<tr>";
  9. echo "<td bgcolor=\"$primaire_kleur\" class=\"klein\">";
  10. echo "<table cellspacing=\"1\" cellpadding=\"2\" width=\"100%\" border=\"0\">";
  11. echo "<tr>";
  12. echo "<td width=\"105\"><b><font color=\"#000000\">Soort</td>\n";
  13. echo "<td width=\"230\"><b><font color=\"#000000\">Product</td>\n";
  14. echo "<td width=\"75\"><b><font color=\"#000000\">Prijs</td>\n";
  15. echo "<td width=\"70\"><b><font color=\"#000000\">Datum</td>\n";
  16. echo "<td width=\"50\"><b><font color=\"#000000\">Gezien</td>\n";
  17. echo "<td width=\"50\"><b><font color=\"#000000\">Afbeelding</td>\n";
  18. echo"</tr>";
  19. echo "</table>";
  20. echo "</td>";
  21. echo "</tr>";
  22. echo "</table>";
  23.  
  24. if (!$result)
  25. {
  26. echo "<table width=\"85%\">\n";
  27. echo "<tr>\n";
  28. echo "<td>\n";
  29. echo "<br>Helaas, er zijn geen advertenties gevonden die voldoen aan uw zoekopdracht.\n";
  30. echo "</td>\n";
  31. echo "</tr>\n";
  32. echo "</table>\n";
  33. }
  34.  
  35. else
  36. {
  37. while($object = mysql_fetch_object($query))
  38. {
  39. $advertentie_id = $object->advertentie_id;
  40. $lid_id = $object->lid_id;
  41. $soort = $object->soort;
  42. $titel = $object->titel;
  43. $prijs = $object->prijs;
  44. $datum = $object->datum;
  45. $impressie = $object->impressie;
  46.  
  47. echo "<table cellspacing=\"1\" cellpadding=\"2\" width=\"100%\" border=\"0\">";
  48. echo "<tr bgcolor=\"$secundaire_kleur\">";
  49. echo "<td width=\"100\">";
  50. echo "$soort";
  51. echo "</td>";
  52. echo "<td width=\"220\">";
  53. echo "<a href=\"../advertenties/advertentie.php?advertentie_id=$advertentie_id\">$titel</a>";
  54. echo "</td>";
  55. echo "<td width=\"75\">";
  56.  
  57. if ((substr($prijs,0,1) >= 1) && (substr($prijs,0,1) <= 9))
  58. {
  59. echo " $prijs";
  60. }
  61.  
  62. else
  63. {
  64. echo "$prijs";
  65. }
  66.  
  67. $thumb = "../thumbs/$advertentie_id.jpg";
  68.  
  69. $thumb1 = "../thumbs/$advertentie_id";
  70. $thumb1 .= "_extra.jpg";
  71.  
  72. $thumb2 = "../thumbs/$advertentie_id";
  73. $thumb2 .= "_extra2.jpg";
  74.  
  75. $thumb3 = "../thumbs/$advertentie_id";
  76. $thumb3 .= "_extra3.jpg";
  77.  
  78.  
  79. echo "</td>";
  80. echo "<td width=\"75\">";
  81. echo "".date("j",$datum) ."-" .date("m",$datum) ."-" .date("Y",$datum);
  82. echo "</td>";
  83. echo "<td width=\"50\">";
  84. echo "$impressie";
  85. echo "</td>";
  86. echo "<td width=\"50\">";
  87. if (file_exists($thumb))
  88. {
  89. echo "<a href=\"/advertenties/foto_tonen.php?advertentie_id=$advertentie_id\"><img src=\"$thumb\" width=\"50\" height=\"37\" border=\"0\"></a>";
  90. }
  91.  
  92. else if (file_exists($thumb1))
  93. {
  94. echo "<a href=\"/advertenties/foto_tonen.php?advertentie_id=$advertentie_id\"><img src=\"$thumb1\" width=\"50\" height=\"37\" border=\"0\"></a>";
  95. }
  96.  
  97. else if (file_exists($thumb2))
  98. {
  99. echo "<a href=\"/advertenties/foto_tonen.php?advertentie_id=$advertentie_id\"><img src=\"$thumb2\" width=\"50\" height=\"37\" border=\"0\"></a>";
  100. }
  101.  
  102. else if (file_exists($thumb3))
  103. {
  104. echo "<a href=\"/advertenties/foto_tonen.php?advertentie_id=$advertentie_id\"><img src=\"$thumb3\" width=\"50\" height=\"37\" border=\"0\"></a>";
  105. }
  106. else if (!file_exists($thumb))
  107. {
  108. echo "<img src=\"http://www.goedkopevoetbalshirts.nl/image/geenafbeelding.jpg\" width=\"50\" height=\"37\" border=\"0\"></a>";
  109. }
  110.  
  111. echo "</td>";
  112. echo "</tr>";
  113. echo "</table>";
  114. }
  115.  
  116. }
  117.  
  118.  
  119. ?>
  120.  
  121. </td>
  122. </tr>
  123. </table>


alvast bedankt 

4 antwoorden

Gesponsorde links
Offline Martijn - 12/07/2009 20:04
Avatar van Martijn Crew PHP mssn ff haakjes na bom je min en maxprijs? want je doet daarna nog meerdere AND's, mssn kan ie dat niet hebben.

Apart from that, mssn moet je een beter systeem maken voor je zoeken 

  1. if($hoeJeHetDoet == "categorie"){
  2. $searchKolom = "categorie";
  3. }
  4. else{
  5. $searchKolom = "onderwerp"
  6. }
  7.  
  8. $sQuery = mysql_query("SELECT id FROM ".$searchKolom." WHERE voorwaarde=true") or die(mysql_error());


Uiteraard is dit niet veel meer dan een voorbeeldje, maar je kunt dus ziet dat je met een if/else makkelijker je query kan voorbereiden.
Het voordeel hiervan is dat je onderaan 1 maal je query laat uitvoeren, aangepast door je if/else-jes, en als je dan een aanpassing aan je query wilt maken, je maar 1 query hoeft te doen 
Offline valles10 - 13/07/2009 11:01
Avatar van valles10 HTML interesse In mijn zoekscript heb ik gwn where $type

$type zijn dan die opties: prijs, naam, markt,..
Offline Martijn - 13/07/2009 11:41
Avatar van Martijn Crew PHP dan met zoekwoord etc. Je hebt veelsteveel elseifjes 
Offline valles10 - 13/07/2009 18:18
Avatar van valles10 HTML interesse
DeviourSoul schreef:
dan met zoekwoord etc. Je hebt veelsteveel elseifjes 

hmm vind je?

nja, neluz ik raad je aan om toch eens te "herscripten"

1. heb je dit volledig zelf gemaakt?
2. als je op basis van ergens gehaal dhebt, vanwaa rheb je het dan?
3. zou je eens kort willen samenvatten wat er moet gebeuren want ik zie met al die elseifjes waar deviour op luide, dat je veel eisen moet hebben?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.222s