PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : suchfunktion mit 4 Input.


bello
30.01.2006, 19:35:47
Hallo
Ich find den Wald vor Bäumen nicht!!!!!!!!
Fehlermeldung
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
if($_POST['company']=='' and $_POST['country']=='' and $_POST['city']=='' and $_POST['zipcode']==''){
$auswahl='';
}else{
$auswahl=" ";
if($_POST['company']!='')
{
$auswahl1="`company` LIKE '%".$_POST['company']."%'";
}
else
{
$auswahl1='';
}
if($_POST['country']!='')
{
if($_POST['company']!='')
{
$or1=" AND ";
}
else
{
$or1='';
}
$auswahl2=$or1."`country` LIKE '%".$_POST['country']."%'";
}else{
$auswahl2='';
}
if($_POST['city']!=''){
if($_POST['company']!=''||$_POST['country']!=''){
$or2=" AND ";
}else{
$or2='';
}
$auswahl3=$or2."`city` LIKE '%".$_POST['city']."%'";
}else{
$auswahl3='';
}
if($_POST['zipcode']!='')
{
if($_POST['company']!=''||$_POST['country']!=''||$_POST['city']!='')
{
$or3=" AND ";
}
else
{
$or3='';
}
$auswahl4=$or3."`zipcode` LIKE '%".$_POST['zipcode']."%'";
}
else
{
$auswahl4='';
}
$auswahl=$auswahl.$auswahl1.$auswahl2.$auswahl3.$auswahl4.")";
$ergebinis = "SELECT * FROM `mlsp`LEFT JOIN `customer` ON `mlsp`.`idcustomer` = `customer`.`customerid` WHERE `customer`. ".$auswahl."";
$sql = mysql_query($ergebinis) or die(mysql_error());
}
echo ausgabe.:
SELECT * FROM `mlsp` LEFT JOIN `customer` ON `mlsp`.`idcustomer` = `customer`.`customerid` WHERE `customer`. `company` LIKE '%Inmo Europe%')You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

vieleicht habe ich auch nur ein denkfehler.
Wäre für jeden Tipp Dankbar

Tino

Usul
30.01.2006, 21:31:53
mach mal vor deiner sql-abfrage mit mysql_query ein echo $ergebinis.'<br>'; und poste hier die ausgabe. denn offensichtlich ist ja dein sql-statement falsch.

ich wuerde uebrigens so an die sache rangehen: php-myadmin anwerfen und die sql-abfrage dort absetzen. wenn php-myadmin meckert, dann so lange dinge weglassen, bis die abfrage funzt. dann wieder die weggelassenen befehle hinzufuegen bis man den fehler hat. jedenfalls sollte jeder irgendwann selbst dazu instande sein, seine sql-befehle zu debuggen.

auf anhieb wuerde ich sagen du hast eine klammer geschlossen, die du nie geoeffnet hast.

(ich wuerde uebrigens den variablennamen $ergebnis vorschlagen, aber das nur nebenbei)

bello
31.01.2006, 22:26:21
Hallo
code von oben ist nicht mehr aktuell.
if(!empty($_POST['company'])
OR !empty($_POST['city'])
OR!empty($_POST['country'])
OR !empty($_POST['zipcode']))
{$ergebnis = "SELECT * FROM `customer`
WHERE `customer`.`company` IKE'%".$_POST['company']."%'
AND`customer`.`city` LIKE'%".$_POST['city']."%'
AND`customer`.`country`LIKE'%".$_POST['country']."%'
AND`customer`.`zipcode`LIKE'%".$_POST['zipcode']."%'";$ergebnis;$sql
= mysql_query($ergebnis) or die(mysql_error());

Also wenn ich ich eine Tabelle abfrage geht das auch alles aber wenn ich eine zweite einbaue bekomme ich keine anzeige mehr.

$ergebnis = "SELECT * FROM `customer` LEFT JOIN `customerg`
WHERE`customer`.`company` LIKE
'%".$_POST['company']."%'AND`customer`.`city` LIKE
'%".$_POST['city']."%'AND`customer`.`country`LIKE
'%".$_POST['country']."%'AND`customer`.`zipcode`LIKE
'%".$_POST['zipcode']."%' AND
`customerg`.`company`LIKE'%".$_POST['company']."%' AND
`customerg`.`city` LIKE'%".$_POST['city']."%'
AND`customerg`.`country`LIKE'%".$_POST['country']."%'AND
`customerg`.`zipcode`LIKE'%".$_POST['zipcode']."%'";

ausgabe echo
$ergebinis.'<br>';You have an error in your SQL syntax;
check the manual thatcorresponds to your MySQL server
version for the right syntax to use near'WHERE
`customer`.`company` LIKE '%Adu Immo%'
AND`customerg`.`company` LIKE '%Adu' at line 1
Dank für eure hilfe

Usul
31.01.2006, 23:42:38
denn offensichtlich ist ja dein sql-statement falsch.

ich wuerde uebrigens so an die sache rangehen: php-myadmin anwerfen und die sql-abfrage dort absetzen. wenn php-myadmin meckert, dann so lange dinge weglassen, bis die abfrage funzt. dann wieder die weggelassenen befehle hinzufuegen bis man den fehler hat. jedenfalls sollte jeder irgendwann selbst dazu instande sein, seine sql-befehle zu debuggen.


Mach folgende Code-Aenderung:

mysql_query($ergebnis) or die($ergebnis.'<br>'.mysql_error());

Und poste hier die Ausgabe. Dein Fehler liegt (wie ich es ja schon einmal sagte) in der SQL-Abfrage, die wiederrum in $ergebnis gespeichert ist. Lies dir trotzdem nochmal mein Vorschlag zum selber-debuggen durch.