21. januar 2002 - 08:47Der er
5 kommentarer og 1 løsning
Jeg vil søge på en del af et ord??
Hej jeg vil søge på en del af et ord og har brugt den her bynavn like \'%$bynavn%\'. Det virker ok men hvis man ikke skriver noget i søge felte henter den hele databasen. ikke så smart.
$personer = mysql_query(\"SELECT stat, adressen, firma, telefon, mobil, id , bynavn FROM personer WHERE firma = \'$firma\' OR telefon = \'$telefon\' OR adressen like \'%$adressen%\' OR postnr = \'$postnr\' OR bynavn like \'%$bynavn%\'\"); Jeg har flere ting jeg kan søge på. På den side jeg kommer fra og kun en submit knap. Så nar jeg kun udfylder et søge felt er de andre tomme og så går det galt. Kan det ikke skrives i en sql setning?
Ok. Hmm Nu har jeg lavet noget i php. $sql = \"SELECT stat, adressen, firma, telefon, mobil, id , bynavn FROM personer WHERE\"; if($firma !=\"\"){ $sql = $sql . \" firma = \'$firma\' \"; } if($adressen !=\"\"){ $sql = $sql . \" adressen like \'%$adressen%\' \"; } if($telefon !=\"\"){ $sql = $sql . \" telefon = \'$telefon\' \"; } if($bynavn !=\"\"){ $sql = $sql . \" bynavn like \'%$bynavn%\' \"; } if($postnr !=\"\"){ $sql = $sql . \" postnr = \'$postnr\' \"; } if($firma !=\"\" && $adressen !=\"\"){ $sql = $sql . \" firma = \'$firma\' OR adressen like \'%$adressen%\'\"; } if($firma !=\"\" && $telefon !=\"\"){ $sql = $sql . \" firma = \'$firma\' OR telefon = \'$telefon\'\"; } if($firma !=\"\" && $bynavn !=\"\"){ $sql = $sql . \" firma = \'$firma\' OR bynavn = \'$bynavn\'\"; } if($firma !=\"\" && $postnr !=\"\"){ $sql = $sql . \" firma = \'$firma\' OR postnr = \'$postnr\'\"; } if($adressen !=\"\" && $telefon !=\"\"){ $sql = $sql . \" adressen like \'%$adressen%\' OR telefon = \'$telefon\'\"; } if($adressen !=\"\" && $bynavn !=\"\"){ $sql = $sql . \" adressen like \'%$adressen%\' OR bynavn like \'%$bynavn%\'\"; } if($adressen !=\"\" && $postnr !=\"\"){ $sql = $sql . \" adressen like \'%$adressen%\' OR bynavn like \'%$postnr%\'\"; } if($telefon !=\"\" && $postnr !=\"\"){ $sql = $sql . \" telefon = \'$telefon\' OR postnr = \'$postnr\'\"; } if($telefon !=\"\" && $bynavn !=\"\"){ $sql = $sql . \" telefon = \'$telefon\' OR bynavn = \'$bynavn\'\"; }
Det virker men jeg kan ikke få det ril at virke når jeg skriver noget i adressen og i bynavn. Der bruger jeg adressen like \'%$adressen\' OR bynavn like \'%$bynavn\' Kan man ikke bruge sådan to like\'er i en setning?
Ikke helt, med dit input var med til at løse problemet. Takker her fra. Hvis der er nogen der er interessert i løsningen så er den her: $sql = \"SELECT stat, adressen, firma, telefon, mobil, id , bynavn, postnr FROM personer WHERE\"; if($firma !=\"\" && $adressen !=\"\"){ $sql = $sql . \" firma = \'$firma\' AND adressen like \'%$adressen%\'\"; } if($firma !=\"\" && $telefon !=\"\"){ $sql = $sql . \" firma = \'$firma\' AND telefon = \'$telefon\'\"; } if($firma !=\"\" && $bynavn !=\"\"){ $sql = $sql . \" firma = \'$firma\' AND bynavn like \'%$bynavn%\'\"; } if($firma !=\"\" && $postnr !=\"\"){ $sql = $sql . \" firma = \'$firma\' AND postnr = \'$postnr\'\"; } if($adressen !=\"\" && $telefon !=\"\"){ $sql = $sql . \" adressen like \'%$adressen%\' AND telefon = \'$telefon\'\"; } if($adressen !=\"\" && $bynavn !=\"\"){ $sql = $sql . \" adressen like \'%$adressen%\' AND bynavn like \'%$bynavn%\'\"; } if($adressen !=\"\" && $postnr !=\"\"){ $sql = $sql . \" adressen like \'%$adressen%\' AND postnr = \'$postnr\'\"; } if($telefon !=\"\" && $postnr !=\"\"){ $sql = $sql . \" telefon = \'$telefon\' AND postnr = \'$postnr\'\"; } if($telefon !=\"\" && $bynavn !=\"\"){ $sql = $sql . \" telefon = \'$telefon\' AND bynavn like \'%$bynavn%\'\"; } if($firma !=\"\" && $telefon ==\"\" && $adressen ==\"\" && $postnr ==\"\" && $bynavn ==\"\"){ $sql = $sql . \" firma = \'$firma\'\"; } if($firma ==\"\" && $telefon ==\"\" && $adressen !=\"\" && $postnr ==\"\" && $bynavn ==\"\"){ $sql = $sql . \" adressen like \'%$adressen%\'\"; } if($firma ==\"\" && $telefon !=\"\" && $adressen ==\"\" && $postnr ==\"\" && $bynavn ==\"\"){ $sql = $sql . \" telefon = \'$telefon\'\"; } if($firma ==\"\" && $telefon ==\"\" && $adressen ==\"\" && $postnr ==\"\" && $bynavn !=\"\"){ $sql = $sql . \" bynavn like \'%$bynavn%\'\"; } if($firma ==\"\" && $telefon ==\"\" && $adressen ==\"\" && $postnr !=\"\" && $bynavn ==\"\"){ $sql = $sql . \" postnr = \'$postnr\'\"; } if($firma ==\"\" && $telefon ==\"\" && $adressen ==\"\" && $postnr ==\"\" && $bynavn ==\"\"){ echo \'Du indtsatede ikke noget i nogen af søgefelterne!\'; die; } //echo $sql; $personer = mysql_query($sql);
MVH Pappasmirf
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.