2017-04-27 2 views
0

Zuerst wählen Sie Abfrage aus, wenn id gerade Menge sonst insert(id, quantity) Abfrage in meinem Fall ausführen aktualisieren existiert nur Abfragephp gU mehrere Abfrage in Schleife

$fodid = $data->orfid; 
$quantity = $data->orqnt; 

include('db.php');  

try{        
    $sqlchk="SELECT `orfoodid` AS FROM `orders` where `orfoodid`=':chkfoodid';"; 
    $sqlupdate="UPDATE `resturant`.`orders` SET `orfoodqnt` = ':chcount' WHERE `orders`.`orfoodid` = ':chfodid';"; 
    $sql="INSERT INTO `resturant`.`orders` (`orfoodid`, `orfoodqnt`) VALUES (:foodid,:count);"; 

    for($i=0;$i<sizeof($fodid);$i++){ 

     $rs = $conn->prepare($sqlchk); 
     $rs->execute(array(':chkfoodid'=>$fodid[$i]));  
     $result=$rs->fetch(PDO::FETCH_ASSOC);  

     if(!$result) 
     { 
      $rs = $conn->prepare($sqlupdate); 
      $rs->execute(array(':chfodid'=>$fodid[$i], 
          ':chcount'=>$quantity[$i])); 
      echo 'Order updated';      
     } else {   
      $rs = $conn->prepare($sql); 
      $rs->execute(array(':foodid'=>$fodid[$i], 
          ':count'=>$quantity[$i])); 
      echo 'Order Saved'; 
     }   

    }       
    $conn=null; 
}catch (PDOException $e) { 
    print "Error!: " . $e->getMessage() . "<br/>"; 
    die(); 
} 
+0

Nur eine Anmerkung: Eine Aussage muss nur einmal vorbereitet werden. Also bereite dich vor und gib alle Namen und einen lesbaren Namen wie '$ selectStmt' an. – JustOnUnderMillions

+0

Und wo ist deine konkrete Frage? – JustOnUnderMillions

+0

ein anderer Hinweis, verwenden Sie stattdessen die Anweisung ['in doppelte Aktualisierung einfügen '] (https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html) statt – hassan

Antwort

0

ausgeführt aktualisiere ich mein Problem gelöst es Syntaxfehler war ‚: chkfoodid 'entfernen Sie einfach einzelne Zitate: chkfoodid