2012-03-31 8 views
-6

enthalten Ich habe diesen Code unter: $ insert = array();Ich möchte nicht '1' neben String

for ($i = 1, $n = $_POST['sessionNum']; $i <= $n; ++$i) 
    { 

     if($_POST['sessionNum'] == '1'){ 
      $insert[] = "'" . mysql_real_escape_string($_POST['id']) . ($i == 1 ? '' : $i) . "'"; 
     }else{ 
      $insert[] = "'" . mysql_real_escape_string($_POST['id']) . "'"; 
     } 


    $insert[] .= "' ". mysql_real_escape_string($_POST['textMarks']) . "'"; 
    } 

    $sql = "INSERT INTO Session (SessionId, TotalMarks) 
    VALUES (" . implode('), (', $insert) . ")"; 


    mysql_query($sql); 

Was der obige Code tut, ist, dass es eine Zahl neben dem $ _POST [ ‚id‘] fügt je nachdem, was die Zahl ist in dem $ _POST [ ‚sessionNum‘].

Wenn zum Beispiel $ _POST ['sessionNum'] '3' und $ _POST ['id'] VBV ist, dann wird 'VBV3' angezeigt.

Aber was ich will ist, dass, wenn $ _POST ['SessionNum'] '1' ist, ich will nicht, VBV1 'sondern nur' VBV 'angezeigt, wie es eine einzige Sitzung ist.

Wie kann dies erreicht werden?

+6

Sie * tun * jetzt, wie eine for-Schleife funktioniert, aber Sie haben nie von einer 'if' Aussage gehört? – GolezTrol

+3

hast du diesen Code tatsächlich geschrieben? Wenn ja, sollten Sie sofort daran denken, eine if-Bedingung hinzuzufügen, bevor Sie diese Zahl verketten. – asgs

+0

Nein, ich habe eine vorherige Frage beantwortet. – MichaelRushton

Antwort

1
for ($i = 1, $n = $_POST['sessionNum']; $i <= $n; ++$i) 
{ 
    $insert[] = "'" . mysql_real_escape_string($_POST['id']) . ($n == 1 ? '' : $i) . "'"; 
} 
+0

Hallo, Danke für die Antwort, aber es ist nicht ganz das, was ich meinte und es war meine Schuld, weil ich das nicht erwähnt habe. Was ich will ist, dass, wenn es nur eine Sitzung gibt ($ _POST ['sessionNum') gleich 1, dann zeige es als 'VBV', aber wenn es mehrere Sitzungen zB ($ _POST ['SessionNum'] gleich 3, dann wird angezeigt 'VBV1'. 'VBV2' und 'VBV3'. Ich habe meinen Code mit der if-Anweisung aktualisiert, die die SessionId in die Datenbank – user1304197

+0

Edited nicht einfügt, um Ihre Klarstellung widerzuspiegeln. – MichaelRushton

+0

Sie wissen also, was anders ist: '($ i == 1? '': $ i) 'wurde geändert in' ($ n == 1? '': $ i) '. – MichaelRushton

Verwandte Themen