Skript mit fünf Abfragen funktioniert nur teilweise

jobbi

Grünschnabel
Hallo erstmal zusammen

ich sitz jetzt schon 2 tage an diesem problem, ich hab ne Abfrage die über 3 Texteingaben und 2 Selectboxen variabel gestaltet werden kann. Komisch ist nur, dass 3 Abfragen funktionieren und 2 nicht, obwohl mit Ausnahme der übergebenen Variable alles gleich ist.

Versteht das einer, dann bitte ich um Hilfe

PHP:
if ($Suchfeld1!="") {

    $abfrage ="SELECT * FROM Stamm WHERE stellenbezeichnung like '%$Suchfeld1%' ";
    $ergebnis= mysql_query($abfrage);

}


if ($Suchfeld2!="") {

    $abfrage ="SELECT * FROM Stamm WHERE branche like '%$Suchfeld2%' ";
    $ergebnis= mysql_query($abfrage);


}

if ($Suchfeld3!="") {

    $abfrage ="SELECT * FROM Stamm WHERE Region like '%$Suchfeld3%' ";
    $ergebnis= mysql_query($abfrage);


}


if ($Suchfeld4!="") {

    $abfrage = "SELECT * FROM Stamm WHERE Arbeitsort like '%$Suchfeld4%' ";
    $ergebnis= mysql_query($abfrage);


}

 if($Suchfeld5!="") {

    $abfrage = "SELECT * FROM Stamm WHERE Anforderungen like '%$Suchfeld5%' or Kurzbeschreibung like '%$Suchfeld5%' ";
    $ergebnis= mysql_query($abfrage);


}


In einer statischen Abfrage funktioniert alles, also Tabellen, Spalten und Datensätze sind vorhanden und Zugriff funktioniert. Daher bin ich etwas ratlos!!
 
Die MySQL-Ergenbisressourcen werden jeweils in derselben Variable gespeichert – ist das Absicht?
 
Ja es wird am Ende mittels

PHP:
  while ($row = mysql_fetch_array($ergebnis))       



                 {

ausgegeben. funktioniert bei Suchfeld 3,4 und 5 auch Prima nur 1 und 2 wollen nicht.
 
Ich meine ja nur, dass damit die Variable immer überschrieben wird. So ist am Ende nur das Ergenbis der letzten Abfrage verfügbar, die anderen wurden ja überschrieben.
 
Ja das ist absolut in Ordnung so, aber im Normalfall sollte er ja zumindest ein Ergebnis liefern wenn eine Suche über eines der ersten Felder erfolgt. Und als absoluter Anfänger auf diesem Gebiet finde ich leider den Fehler in der Syntax nicht.
 
Hmm..

da triffts mich jetzt etwas unvorbereitet, da ich ja noch blutiger Anfänger bin.....
Also meine Variablen werden per Post übergeben....

In den Rest muss ich mich jetzt erstmal einlesen, ich meld mich dann wieder wenns entweder klappt oder ich mir alle Haare ausgerissen hab.

Trotzdem schonmal vielen Dank für die Hilfe!
 
Vielleicht solltest du dir die Abfragedefinitionen auch einfach mal komplett ausgefüllt ausgeben lassen und sie manuell überprüfen.
 
Ich habe jetzt erstmal den Inhalt der Variablen überprüft, der ist in Ordnung. Allerdings habe ich jetzt eine else Bedingung an die While gehängt in der er nach Prüfung ob sich Inhalt im Query befindet ausgibt das keine daten vorhanden sind. Die entsprechenden Daten sind aber vorhanden, also frage ich mich warum er die Abfrage nicht richtig ausführt
 
Dann probier mal Folgendes:
PHP:
$query = '
	SELECT
	        *
	  FROM
	        `Stamm`
	  WHERE
	        0
	';
if( $Suchfeld1 != '' ) {
	$query .= ' OR `stellenbezeichnung` LIKE "%'.mysql_real_escape_string($Suchfeld1).'%"';
} 
if( $Suchfeld2 != '' ) {
	$query .= ' OR `branche` LIKE "%'.mysql_real_escape_string($Suchfeld2).'%"';
}
if( $Suchfeld3 != '' ) {
	$query .= ' OR `Region` LIKE "%'.mysql_real_escape_string($Suchfeld3).'%"';
} 
if( $Suchfeld4 != '' ) {
	$query .= ' OR `Arbeitsort` LIKE "%'.mysql_real_escape_string($Suchfeld4).'%"';
} 
if( $Suchfeld5 != '' ) {
    $query .= ' OR `Anforderungen` LIKE "%'.mysql_real_escape_string($Suchfeld5).'%" OR `Kurzbeschreibung` LIKE "%'.mysql_real_escape_string($Suchfeld5).'%"';
}

$result = mysql_query($query)
	or die(mysql_error());
 
Zurück