NOT LIKE richtig verwenden

Steusi

Nasenbär
Hallo Leute,
wie wende ich NOT LIKE richtig an?

Ich habe einen Suchbegriff, welcher die Datenbank durchlaufen soll, findet er etwas soll er weiter arbeiten. Kann dieser Suchbegriff aber nicht in der Datenbank gefunden werden soll eine Fehlermeldung erscheinen.
Mein Problem mit NOT LIKE, ich erhalte immer die Fehlermeldung.
In einem Datensatz findet er mein Suchbegriff, aber in allen anderen natürlich nicht.

Ich komme auf keinen grünen Zweig, kann mir jemand einen Rat geben
 
Hi,

Ich habe einen Suchbegriff, welcher die Datenbank durchlaufen soll, findet er etwas soll er weiter arbeiten. Kann dieser Suchbegriff aber nicht in der Datenbank gefunden werden soll eine Fehlermeldung erscheinen.
Mein Problem mit NOT LIKE, ich erhalte immer die Fehlermeldung.
In einem Datensatz findet er mein Suchbegriff, aber in allen anderen natürlich nicht.

Ich verstehe kein Wort. Poste bitte Deine Abfrage, was sie Deiner Meinung nach tun soll und was sie liefert.

LG
 
Sind zu viele Funktionen und Verschachtelungen, da würde auf die schnelle kaum einer durch sehen ich nehm ein Beispiel.


Meine DB:

Code:
ID	|	Name
1	|	Hans
2	|	Hannes
3	|	Klaus

Abfrage, sollte als Beispiel reichen:
PHP:
"SELECT * FROM ".$db_tab." WHERE $colum." LIKE '%".$search."%'";

Ich setzte für
$search folgendes ein: "Hans"

Wird gefunden kein Problem.

PHP:
"SELECT * FROM ".$db_tab." WHERE $colum." NOT LIKE '%".$search."%'";
Ich setzte für
$search folgendes ein: "Hans"

Werden nun alle anderen Daten gefunden.

Ich möchte eine Abfrage, welche prüft ob der Datensatz "Hans" vorhanden ist, wenn nicht möchte ich eine Fehlermeldung!
Wie muss die Abfrage in diesem Fall aussehen?
 
Zuletzt bearbeitet:
Hi.

SQL:
select exists(select * from table where spalte like %wert%)
\edit: Allerdings könntest du auch deine erste Abfrage beibehalten. Wenn ein leeres Ergebnis zurückkommt weißt du schließlich auch das der Suchbegriff nicht drin war. Wobei die exists Abfrage wahrscheinlich schneller sein dürfte.

Gruß
 
Zuletzt bearbeitet:
Es klappt bei mir nicht, er zeigt mir nicht die nicht gefundenen Einträge an?

PHP:
		for($j=0;$j< sizeof($suchwort); $j++) {
			$exist = "SELECT EXISTS(SELECT * FROM ".$db_tab." WHERE ".$suchwort[$j].")";
			$check_exist = mysql_query($exist);
			//var_dump($exist);
			//var_dump($check_exist);
			if(!$check_exist) {
				echo("Dieser Eintrag ".substr($suchwort[$j],12,$_SESSION["eingabelaenge"][$j])." ist nicht vorhanden");
			}
		}
 
Zuletzt bearbeitet:
Oh sorry, hab natürlich vergessen zu sagen was in der Variable steht:
PHP:
$suchwort[$i] = $colum." LIKE '%".$_POST['nummer'][$i]."%'";

dadurch sieht es so aus:
PHP:
"SELECT EXISTS(SELECT * FROM daten2009 WHERE data LIKE '%xxx%')"

leider werden alle EInträge als vorhanden angezeigt?
 
Ich hatte schon die ganze Zeit Bauchschmerzen dabei was du immer mit deinem Fehler wolltest, aber ich hatte bis jetzt nichts gesagt.

Warum sollte denn da ein Fehler erzeugt werden? Eine Abfrage ist immer erfolgreich außer man hat einen Fehler in der SQL Abfrage, der Server ist nicht erreichbar usw.

Aber eine korrekte Abfrage ob ein Wert in einer Tabelle drin ist oder nicht, ist doch keine Fehlersituation. Ich weiß ja nicht weshalb du diese Überprüfung vornehmen willst, aber evtl. solltest du einen Constraint dafür einsetzen?!

Du mußt das Ergebnis der Abfrage einfach auswerten (wenn sie erfolgreich war).

Gruß
 
Jemand sucht bei mir in der DB nach bestimmten Kundennummern (sagen wir er gibt 20 gleichzeitig ein) sind diese vorhanden wird weiter gearbeitet. Ich möchte nur, das auch angezeigt wird, welche eingegebenen Kundennummern nicht in der DB enthalten sind.

Sprich, Ihre eingegebene Kundennummer ist in der Datenbank nicht enthalten.
 
Jemand sucht bei mir in der DB nach bestimmten Kundennummern (sagen wir er gibt 20 gleichzeitig ein) sind diese vorhanden wird weiter gearbeitet. Ich möchte nur, das auch angezeigt wird, welche eingegebenen Kundennummern nicht in der DB enthalten sind.

Sprich, Ihre eingegebene Kundennummer ist in der Datenbank nicht enthalten.
Ok. Dann mußt du einfach nur das Resultat der Abfrage überprüfen und nicht nur den Fehlerstatus der Abfrage.

Gruß
 

Neue Beiträge

Zurück