MySQL- Abfrage WHERE url != '' "
Swen
- php
0 Cheatah0 campah
0 Frank Jonas0 Bernhard Mecl0 Reiner
Hallo,
Ich rufe mit:
$abfrage = "SELECT * from $tab_verzeichnis WHERE url != '' AND ort LIKE 'TEST' ORDER BY RAND() LIMIT 1";
eine MySQL-Datenbank ab.
Und es sollen nur Einträge ausgegeben werden, in denen eine URL steht - das würde ja mit WHERE url != '' funktionieren. Leider Sind in der DAtenbank auch Einträge wo im Feld url nur Leerzeichen stehen oder irgendwelche Zeichen. Di esollen natürlich nicht ausgegeben werden. Die URLs werden immer in der Form www.test.de oder test.de gespeichert.
Wie krieg ich das jetzt hin, das nur die Zeilen ausgeben werden, in denen auch eine korrekte URL steht?
Danke,
Swen
Hi,
Leider Sind in der DAtenbank auch Einträge wo im Feld url nur Leerzeichen stehen oder irgendwelche Zeichen.
tja, da fragt man sich doch: Wie sind die da rein gekommen?
Man sollte grundsätzlich dafür sorgen, dass in einer DB nur Werte stehen, die auch einen Sinn ergeben. Also: _Vor_ dem INSERT INTO prüfen.
Di esollen natürlich nicht ausgegeben werden.
In den meisten Sprachen heißt eine Funktion zum Abtrennen bestimmter Zeichen TRIM.
Die URLs werden immer in der Form www.test.de oder test.de gespeichert.
Das sind keine URLs, sondern Hostnamen.
Wie krieg ich das jetzt hin, das nur die Zeilen ausgeben werden, in denen auch eine korrekte URL steht?
Bei Deiner Art der Speicherung kommt das nie vor ;-)
Cheatah
Cheatah ist wieder KLEINLICH heute!
Potzenprobleme??? ;)
Cheatah ist wieder KLEINLICH heute!
Potzenprobleme??? ;)
Cheatah ist nicht kleinlich, Cheatah weist auf die systematischen Designprobleme der bisherigen Lösung hin. Genau dasselbe hätte ich gerade selber gemacht - spare es mir aber, denn doppelt gemoppelt hält nicht besser, sondern bläht das Forum auf.
- Sven Rautenberg
Hi,
Cheatah ist wieder KLEINLICH heute!
mit Kleinlichkeit hat das nichts zu tun - es ist doch wichtig zu wissen, dass das Problem nicht mit SQL gelöst werden sollte, oder?
Potzenprobleme??? ;)
Was sind "Potzen"?
Cheatah
Hallo Swen,
Du müsstest Dir überlegen, wann ein Eintrag gültig ist und diesen dann als regulären Ausdruck formulieren WHERE url LIKE ...
Wenn Du das nicht hinbekommst, bleibt Dir nur, per Hand alle Einträge zu überprüfen. Solange Du ein Filterkriterium nicht beschreiben kannst, wird Dir auch kein anderer aus der Ferne helfen können.
Gruß Frank
Wie krieg ich das jetzt hin, das nur die Zeilen ausgeben werden,
in denen auch eine korrekte URL steht?
Vermutlich wirst Du mit SELECT ... WHERE url REGEXP ... glücklich werden.
http://www.mysql.com/doc/en/Pattern_matching.html
http://www.mysql.com/doc/en/Regexp.html
Hallo,
Wie krieg ich das jetzt hin, das nur die Zeilen ausgeben werden, in denen auch eine korrekte URL steht?
vielleicht ein zu einfacher Gedanke, aber speicher doch nur valide URLs!
Reiner