hallo allemaal ,
ik probeer een goede zoekfunctie te schrijven, waarmee je in bepaalde catogorien kan zoekn. en dat werkt prachtig maar als je geen catogorie kiest dan zit je met het probleem dat hij ook helemaal niets vind. Hoe moet ik dit oplossen is mijn script gewoon fout of ....
<?
$zoek = $_GET['zoekterm'];
$scat = $_GET['subcat'];
$cat = $_GET['cat'];
if($cat==''){
$sqlquery = "SELECT * FROM add_tb WHERE subrubriek='$scat' AND bericht LIKE '%$zoek%'";
}else if($scat==''){
$sqlquery = "SELECT * FROM add_tb WHERE rubriek=".$cat." AND bericht LIKE '%$zoek%'";
}else if($cat=='' || $scat==''){
$sqlquery = "SELECT * FROM add_tb WHERE bericht LIKE '%$zoek%'";
}else{
$sqlquery = "SELECT * FROM add_tb WHERE rubriek=".$cat." AND subrubriek='$scat' AND bericht LIKE '%$zoek%'";
}
$result = mysql_query($sqlquery) or die(mysql_error());

if (mysql_num_rows($result) > 0) {
while($row = mysql_fetch_assoc($result)) {

echo $row['titel'];
echo "<br/><br/>";
}
}else{
echo "Er zijn geen advertenties gevonden";
}

?>
geen vars kopiëren
en je fout afhandelingen klopt gewoon niet.

@

het klopt gewoon van geen kanten.

- de volgorde van je ifs kloppen niet
- ooit van isset() en empty() gehoord?
In het begin staat <? in plaats van <?php
Patrick schreef op 02.06.2009 15:23
In het begin staat <? in plaats van <?php

dat is idd niet netjes maar maakt nix uit voor het script
Sommige hosts wel, heb ik eens gehad..
Patrick schreef op 02.06.2009 15:23
In het begin staat <? in plaats van <?php


dit heb ik alleen even gedaan zodat het op het forum te zien is in een apart vak
rvw schreef op 02.06.2009 15:19
geen vars kopiëren
en je fout afhandelingen klopt gewoon niet.

what? uhm je fout afhandeling heeft toch weinig te maken met de werking van het script als het FOUTLOOS! werkt? Maar hoe bedoel je geen vars kopieren? hoe moet ik het anders neer zetten?????
niet bumpen.
je fout afhandeling heeft alles te maken met de werking van een script!
en foutloos is het niet anders had het gewerkt!

$zoek = $_GET['zoekterm'];
$scat = $_GET['subcat'];
$cat = $_GET['cat'];

hier kopieer je vars.
moet ik dan inplaats van

$zoek = $_GET['zoekterm'];
$scat = $_GET['subcat'];
$cat = $_GET['cat'];
$sqlquery = "SELECT * FROM add_tb WHERE bericht LIKE '%$zoek%'";

het dan zo doen?

$sqlquery = "SELECT * FROM add_tb WHERE bericht LIKE '%$_GET['zoekterm'];%'";
<?
if(isset($_GET['zoekterm'])){
if(isset($_GET['cat']) and isset($_GET['subcat']))
{
$sqlquery = "SELECT * FROM add_tb WHERE rubriek=" . mysql_real_escape_string( $_GET['cat'] ) . " AND subrubriek='" . mysql_real_escape_string( $_GET['scat'] ) . "' AND bericht LIKE '%" . mysql_real_escape_string( $_GET['zoekterm'] ) . "%'";
}
else if(isset($_GET['cat']))
{
$sqlquery = "SELECT * FROM add_tb WHERE rubriek=" . mysql_real_escape_string( $_GET['cat'] ) . " AND bericht LIKE '%" . mysql_real_escape_string( $_GET['zoekterm'] ) . "%'";
}
else if(isset($_GET['subcat']))
{
$sqlquery = "SELECT * FROM add_tb WHERE subrubriek='" . mysql_real_escape_string( $_GET['scat'] ) . "' AND bericht LIKE '%" . mysql_real_escape_string( $_GET['zoekterm'] ) . "%'";
}
else
{
$sqlquery = "SELECT * FROM add_tb WHERE bericht LIKE '%" . mysql_real_escape_string( $_GET['zoekterm'] ) . "%'";
}

if (mysql_num_rows($result) > 0) {
while($row = mysql_fetch_assoc($result)) {

echo $row['titel'];
echo "<br/><br/>";
}
}
else{
echo "Er zijn geen advertenties gevonden";
}
}

else{

echo "Er moet wel en zoek term ingvuld worden anders zoek ik naar niks!";
}
?>


dit lijkt er meer op.
nu moet je nog wel de de fout afhandeling iets beter maken.
zoals je het nu hebt opgeschreven werkt het voor geen meter dan krijg ik nooit resultaten ook niet als ik een catogorie invul

Reageren