mysql Abfrage mit Datensatz auslassen

swamp1001

Mitglied
Mahlzeit vieleicht kann mir einer helfen.
Und zwar möchte ich eine mysql Abfrage machen bei der ich nach einem bestimmten Suchbegriff suche in verschiedenen Spalten und wenn in Spalte oe eine 1 drin ist soll er sie nicht anzeigen. Hier ist meine Abfrage:
PHP:
$sql="select * from daten where name like '%$suchbegriff%' or id like '$suchbegriff' or sn like '$suchbegriff' or history like '%$suchbegriff%' or strasse like '%$suchbegriff%' $sort";

Ich bekomme das einfach nicht hin, vieleicht hat jemand eine Idee.
Danke..
 
SQL find ich so schön weil man das was man will zum Großteil einfach ins Englische übersetzt :D
Zum Beispiel:
Code:
SELECT * FROM `suppliers`
WHERE `supplier_name` NOT LIKE 'T%';
http://www.techonthenet.com/sql/like.php
Backticks für Tabellen- und Feldernamen empfehle ich dabei auch gleich mal ;) (vgl. Code hier und in der URL)
 
Zuletzt bearbeitet:
Geht bei mir leider nicht oder ich habe da was falsch gemacht kannst du mir vieleicht die komplette Abfrage mit meinen Daten schreiben ?
 
Es müsste so aussehen:
PHP:
$sql = "SELECT * FROM `daten` WHERE `name` NOT LIKE '%$suchbegriff%' OR `id` NOT LIKE '$suchbegriff' OR `sn` NOT LIKE '$suchbegriff' OR `history` NOT LIKE '%$suchbegriff%' OR `strasse` NOT LIKE '%$suchbegriff%' $sort";
 
Das eher nicht, da du dabei auch etwas lernen sollst und die Antwort präsentieren wäre pädagogischer Nonsens (siehe Jean Piaget "Die Äquilibration der kognitiven Strukturen" oder was von Klafki).
Viel eher kannst du deine Lösung präsentieren oder selbst auf Fehlersuche gehen (siehe Abschnitt c - http://www.tutorials.de/forum/php/20021-neu-regeln-fuers-php-board-bitte-komplett-durchlesen.html).

EDIT: Das Problem vereinfachen auf zunächst eine Spalte wäre von Vorteil, NOT LIKE Funktioniert sicherlich.
 
Zuletzt bearbeitet:
Hm geht so auch nicht ich will ja nicht alles auslassen sondern nur wenn im feld oe eine 1 drin ist.
Vielen Danke für eure Hilfe.
 
swamp1001, es wäre sehr schön wenn du dir ein Tutorial deiner Wahl zu SQL durchliest oder direkt folgendes mal ansiehst:
http://www.sql-und-xml.de/sql-tutorial/

Das Problem was du beschreibst zählt zu den kleinen Grundlagen und eine Antwort findet sich schon auf den ersten Seiten.

Dazu nochmal: Teste deine Anweisung in phpMyAdmin oder einer ähnlichen Umgebung (falls soetwas gegeben ist) und dir werden die Fehler der Anweisung (sofern vorhanden) direkt angezeigt, sowie auch das Ergebnis. (Regeln im PHP-Forum Abschnitt c)

EDIT:
Ja dann schreib doch einfach WHERE `oe` NOT LIKE 1 rein.
Selbst die Antwort von "einfach nur crack" wird nicht dem entsprechen was du suchst.

OT:
Solltest du nochmal Fragen zu SQL und Datenbanken haben bist du im Forum "Relationale Datenbanksysteme" besser aufgehoben.
 
Zuletzt bearbeitet:
Ich habe es jetzt so probiert
PHP:
SELECT * FROM `daten` WHERE `name` like '%a%' or `strasse` like '%a%' and `oe`not like '1'
Aber er zeigt mir immer noch die mit 1 im Datensatz an.
Vieleicht hat jemand eine Idee ich weiss nicht mehr weiter. bitte.
 
Wenn ich die abfrage ohne meinen anderen Suchbegriff mache geht es aber er muss auch nach den anderen sachen suchen und nur die mit 1 drin auslassen.
 
Zurück