Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP, mySQL] Formular und Query formulieren (https://www.delphipraxis.net/73312-%5Bphp-mysql%5D-formular-und-query-formulieren.html)

Ultimator 15. Jul 2006 15:19


[PHP, mySQL] Formular und Query formulieren
 
Hallo auch :hi:

Da mein Kumpel mich gefragt hat, ob ich ihm mal was helfen könnte, und das ausgeartet ist, darf ich mich jetzt mit PHP und mySQL beschäftigen :mrgreen:

Folgendes:
Ich hab ein Formular geschrieben, wo man 3 Dinge eingeben kann, aber keines davon muss. Auf Buttonklick werden diese 3 Werte, egal ob leer oder nicht, an ein PHP-Script per GET weitergeleitet. Dort möchte ich nun mit diesen Werten eine DB-Abfrage starten, die etwa so aussehen soll:
SQL-Code:
SELECT * FROM TestTable WHERE Feld1=$_GET["Spielername"] AND Feld2=$_GET["Allianz"] AND Feld3=$_GET["Koordinaten"];
Das klappt ja auch, aber eben nur, wenn alle 3 Werte von meinem Formular übermittelt werden. Es soll aber eben auch möglich sein, nach nur zwei, einem oder gar keinem Kriterium zu suchen, um die Suche in der DB entsprechend eingrenzen zu können.

Muss ich da wirklich mit X IFs arbeiten, oder geht das auch komfortabler? :pale:

Hoffentlich könnt ihr mir helfen, denn ich bin bei der Wärme nicht im Stande, den Überblick zu behalten, wenn ich das mit den vielen IFs machen muss :)

Soltle noch was unklar sein, einfach fragen ;)

MfG, Ulti

Ultimator 15. Jul 2006 15:19

Re: [PHP, mySQL] Formular und Query formulieren
 
//edit: Ächz, aus versehn den Zitat-Buttan anstelle des Edit-Buttons erwischt...

monta 15. Jul 2006 15:40

Re: [PHP, mySQL] Formular und Query formulieren
 
^^einmal hätte auch gelangt :wink:

Du könntest doch mittels If überprüfen, ob deine Variablen leer oder belegt sind, und wenn sie belegt sind, dann erst den entsprechenden Where-String zusammenbauen.

ungefähr so:
Code:
if ($_GET["Spielername"] != '')
{
$where = $_GET["Spielername"];
}
if ($_GET["Allianz"] != '')
{
  if ($where != '')
  {
    $where .= ' AND '.$_GET["Allianz"];
  }
  else
  {
    $where = $_GET["Allianz"];
  }
}
if ($_GET["Koordinaten"] != '')
{
  if ($where != '')
  {
    $where .= ' AND '.$_GET["Koordinaten"];
  }
  else
  {
    $where = $_GET["Koordinaten"];
  }
}
ungetestet, aber ungefähr so müsste es zumindest gehen.

Ultimator 15. Jul 2006 16:02

Re: [PHP, mySQL] Formular und Query formulieren
 
Danke, hat wunderbar geklappt :)
Ich musste halt noch anpassen, dass auch der Feldname mitgeschrieben wird, etwa so:
Code:
if ($_GET["SpielerName"] != "")
 { 
  $where = "Spielername=\"" . $_GET["SpielerName"] . "\"";
 }

freak4fun 15. Jul 2006 16:47

Re: [PHP, mySQL] Formular und Query formulieren
 
Und immer an die Sicherheit denken. ;)

Zitat:

Feld1=$_GET["Spielername"]
GET-Variablen immer erst überprüfen, denn sie sind böse! :evil: :mrgreen:

MfG
freak

monta 15. Jul 2006 18:42

Re: [PHP, mySQL] Formular und Query formulieren
 
Zitat:

Zitat von Ultimator
Danke, hat wunderbar geklappt :)
Ich musste halt noch anpassen, dass auch der Feldname mitgeschrieben wird, etwa so:
Code:
if ($_GET["SpielerName"] != "")
 { 
  $where = "Spielername=\"" . $_GET["SpielerName"] . "\"";
 }

upps, das hatte ich vergessen, aber klappt ja.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz