Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
If else in SQL-Abrage - Schreibweise? Geht wahrscheinlich ganz schnell :-) [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
If else in SQL-Abrage - Schreibweise? Geht wahrscheinlich ganz schnell :-)


 
Timbob
19-01-2008, 18:44 
 
Hallo,

ich will einen Vergleich von mehren Variablen machen und jeweils entscheiden, ob eine Variable ins sie ins SQL-Kommando kommt:

Orginal SQL:
$sql = "UPDATE `students` SET
`klasse` = '".$_POST["klasse"]."',
`klassenlehrer` = '".$_POST["klassenlehrer"]."'
WHERE `id` = '".$_POST["SchuelerdetailsID"]."';";

Mein Ansatz- if-Abfrage ins SQL-Kommando:
(aber meine Verkettung ist falsch)
$sql = "UPDATE `students` SET
`klasse` = '".$_POST["klasse"]."'," .
if (($_POST["klassenlehrer"]) != ($_POST["klassenlehrer_vgl"]))
{ "`klassenlehrer` = '".$_POST["klassenlehrer"]."'," .}
WHERE `id` = '".$_POST["SchuelerdetailsID"]."';";

Kann mir jemand sagen, wie der Code richtig aussieht?

Gruß Tim

 
IchBinIch
19-01-2008, 18:55 
 
Entweder nimmst du dafür die Kurzschreibweise:

$sql = 'anfang' . (1=1 ? 'ggf. mitte' : '') . 'ende';

oder herkömmlich der reihe nach aufbauen:

$sql = 'anfang';
if(1=1)
$sql.= 'ggf. mitte';
$sql.= 'ende';

Fertig

 
ezkimo
19-01-2008, 19:02 
 
Ich find's immer wieder amüsant, was so alles ganz schnell gehen soll. Zugegeben, geht es ganz schnell. Definiere einfach Deine if Anweisung vor dem SQL Query.

Beispiel 1:

if ($_POST['bla'] != $_POST['blubb']) {
$sql_kl = ", bla = '" . $_POST['bla'] . "'";
}


In Kurzform sieht das Beispiel dann so aus:

$sql = "UPDATE `students` SET
`klasse` = '" . $_POST["klasse"] . "'
" .
( ($_POST['klassenlehrer'] != $_POST['klassenlehrer_vgl']) ? ", klassenlehrer = '" . $_POST['klassenlehrer'] . "'" : "" )
. "
WHERE id = " . $_POST['SchuelerdetailsID'] . "";


Da sind aber mehr oder weniger Grundlagen.

 
Timbob
19-01-2008, 20:18 
 
Danke! Hab auf dem Schlauch gestanden...

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:17 Uhr.