WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 31.08.2005, 20:50   #1
ff
Veteran
 
Registriert seit: 13.11.1999
Beiträge: 466


Standard SQL-Abfrage via URL-Parameter

Wenn ich im Browser
mydomain.at/myscript.php?where_string=id=17
eintrage, wird das in meinem php-Script
PHP-Code:
$abfrage_ergebnis mysql_db_query($meine_db"SELECT * FROM $meine_tabelle WHERE $where_string"); 
richtig erkannt und der Datensatz mit der id=17 angezeigt.

Leider funktioniert das nur mit Zahlenfeldern.

Wie stelle ich das an, wenn ich ein Textfeld abfragen will:
mydomain.at/myscript.php?where_string=Tier=Katze

Das funktioniert ohne Hochkommas nicht.

Hat da jemand eine Idee?

Danke
ff
ff ist offline   Mit Zitat antworten
Alt 31.08.2005, 21:11   #2
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

du mußt $where_string mit einfachem hochkomma einschließen -> '$where_string' ...
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.
pc.net ist offline   Mit Zitat antworten
Alt 31.08.2005, 22:06   #3
ff
Veteran
 
Registriert seit: 13.11.1999
Beiträge: 466


Standard

Das funktioniert leider nicht. Die Variable $where_string soll ja Tier='Katze' liefern und nicht 'Tier=Katze'.

Das Problem sehe ich eher in den URL-Parametern. Wie bringe ich das $where_string="Tier=\'Katze\'" oder so aehnlich in einer URL unter?

Danke
ff
ff ist offline   Mit Zitat antworten
Alt 31.08.2005, 22:16   #4
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

aja, jetzt wird mir klar, was du willst ...

dann solltest du nicht beide paramater in einen reinstopfen, sondern diese trennen ...

mydomain.at/myscript.php?search_column=Tier&match_string=Katze
PHP-Code:
$abfrage_ergebnis mysql_db_query($meine_db"SELECT * FROM $meine_tabelle WHERE $search_column = '$match_string'"); 
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.
pc.net ist offline   Mit Zitat antworten
Alt 31.08.2005, 22:33   #5
ff
Veteran
 
Registriert seit: 13.11.1999
Beiträge: 466


Standard

Ja, das funktioniert so. Nur bin ich halt dann bei der Abfrage nicht so flexibel, wie ich es gerne haette. Dann braeuchte ich eine weitere Variable fuer den Operator (= ,LIKE, <, >, ...) und was mache ich bei Tier='Katze' AND Farbe='schwarz'?

Vermutlich bilde ich schon wieder etwas ein, was via URL gar nicht moeglich ist . . . schade

Danke jedenfalls fuer deine Hilfe!
ff
ff ist offline   Mit Zitat antworten
Alt 31.08.2005, 22:37   #6
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

naja, man kann halt nicht alles so wie man es gerne hätte in eine url packen ...
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.
pc.net ist offline   Mit Zitat antworten
Alt 01.09.2005, 00:43   #7
ff
Veteran
 
Registriert seit: 13.11.1999
Beiträge: 466


Standard

aber man soll die Hoffnung nicht aufgeben ;-)

Jedenfalls geht es auch, wenn man nun den Operator in die 1. Variable schreibt! Also:

mydomain.at/myscript.php?search_column=Tier =&match_string=Katze

bzw.

mydomain.at/myscript.php?search_column=Farbe LIKE&match_string=%schwarz%

PHP-Code:
$abfrage_ergebnis mysql_db_query($meine_db"SELECT * FROM $meine_tabelle WHERE $search_column  '$match_string'"); 
lg
ff
ff ist offline   Mit Zitat antworten
Alt 01.09.2005, 10:16   #8
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

ich würd dann aber den operator auch separat in einer eigenen variable übergeben ...
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.
pc.net ist offline   Mit Zitat antworten
Alt 01.09.2005, 11:54   #9
ff
Veteran
 
Registriert seit: 13.11.1999
Beiträge: 466


Standard

Hast du dafuer eine Begruendung, die ich momentan nicht erkennen kann?
ff ist offline   Mit Zitat antworten
Alt 01.09.2005, 12:16   #10
pc.net
Aussteiger
 
Benutzerbild von pc.net
 
Registriert seit: 07.10.2001
Ort: Nettistan
Beiträge: 12.997

Mein Computer

Standard

bei der parameter-übergabe würde ich jedenfalls leer- und operatorzeichen (=, <, >, !=, <=, >=) möglichst vermeiden ...

statt "=" würde ich das wort "equal" nehmen (analog dazu greater, less_then, not_equal, usw.) ... das ganze dann in php auf das entsprechende operator-zeichen zu ersetzen ist IMHO designmäßig unkritischer (vor allem in bezug auf fehlerquellen bei upgrade oder zusätzlicher einzubindender browser bzw. plattformen) ...
____________________________________
Praktizierender Eristiker

No hace falta ser un genio para saber quién dijo eso.
Der wirklich faule Mensch ist oft extrem fleißig, denn er will möglichst schnell wieder faul sein.
pc.net ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:30 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag