If abfrage in MYSQL Abfrage
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
ausdruck
bedanken
bedingung
code
dank
datenbank
frage
operator
rein setzen
spalte
spalten
statement
suche
switch
tide
verschiedene spalten
zeile
zweck
-
Hi dank drafed, bin ich zwar weiter. (auch wenn ich etwas gebraucht habe eh ich die kleinen ' vor dem einen weggehauen habe.)
Jedenfalls war da ja noch ne 2. Frage im Raum. Die ich beim besten willen nicht hinkriege. Und zwar, kann ich eine IF Abfrage mitten rein setzen? (2. Zeile). Der Zweck ist der, wenn beides mal, die selbe Spalte ausgewählt wird, dann soll es eine Or Abfrage, Quasi suche die Datensätze mit dem oder mit dem User. Ansonsten soll (wenn 2 verschiedene Spalten abgefragt werden), dann soll er mir eben die Datensätze raussuchen, wo der User das gemacht hat.
$result = mysql_query("SELECT Spalten FROM datenbank WHERE ".$_POST['where1']." = '".$_POST['was1']."' if($_POST['where1'] = $_POST['where2']) { Or } else { AND }; ".$_POST['where2']." = '".$_POST['was2']."'
Danke im Vorraus. Bedanken tu ich mich erst in der nächsten Frage. Sonst sind hier bald die hälfte der Threads von mir ^^
Beitrag zuletzt geändert: 29.7.2009 15:49:50 von saalko -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mach das doch einfach so:
$where1 = $_POST['where1']; $where2 = $_POST['where2']; $was1 = $_POST['was1']; $was2 = $_POST['was2']; if($where1 == $where2){ $result = mysql_query("SELECT Spalten FROM datenbank WHERE $where1 = '$was2' Or $where2 = '$was2'"); }else{ $result = mysql_query("SELECT Spalten FROM datenbank WHERE $where1 = '$was2' AND $where2 = '$was2'"); }
-
naja, vielleicht soll das auch noch erweitert werden. Und irgendwann habe ich dann 30 Möglichkeiten und wenn ich dann auch nur einen Wert ändern muss, oder etwas dazuschreiben will, muss ich alle 30 Abfragen ändern.
Von daher wäre mir eine if (oder gleich switch) Abfragemöglichkeit mittendrin wesentlich lieber.
EDIT: Dankedammach, auf die einfachsten Schen kommt man natürlich nicht.:TIDE
Beitrag zuletzt geändert: 29.7.2009 17:49:55 von saalko -
Wie währe es mit diesem Code?
$sql1 = "SELECT spalten FROM datenbanktabelle WHERE ".$_POST['where1']." = '".$_POST['was1']."'"; if(bedingung) $sql2 = ' AND '; else $sql2 = ' OR '; $sql3 = $_POST['where1']." = '".$_POST['was1']."';"; $sql = $sql1.$sql2.$sql3; $result = mysql_query($sql);
mfg drafed-map -
Was du suchst ist der Ternary Operator
Das ganze sieht dann so aus:
"SELECT Spalten FROM datenbank WHERE " . $_POST['where1'] . " = '" . $_POST['was1'] . "'" . ($_POST['where1'] == $_POST['where2'] ) ? " OR " : " AND " . $_POST['where2'] . " = '" . $_POST['was2'] . "'"
Der Ternary Operator ist sowas wie ein inline-if:
Der Ausdruck
liefert B, falls A wahr ist, und liefert C, falls A falsch ist.A ? B : C
Sprich, folgende beiden Statements sind äquivalent:
$category = ($age < 22) ? "minor" : "adult";
if ($age < 22) $category = "minor"; else $category = "adult";
Beitrag zuletzt geändert: 30.7.2009 10:04:26 von census -
Ah OK, sieht zwar etwas kompliziert aus, (aber ich denke mit ner Hilfeseite klappt das.) Danke, mit drafed-map hätte es wohl auch geklappt, aber das ist auch mal ein interessanter weg.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage