2016-04-07 12 views
-1

Veritabanındaki bazı tabloları eklemek ve güncelleştirmek için mysql sorgularıyla bir php betiği yazmam gerekiyor. Tüm sorguların çalıştırıldığından emin olmak için işlemleri kullanmalıyım. Sorun, ilk sorgu verilerini bir süre döngüsünde ikinci sorgunun girdi değerleri olarak kullanmam gerektiğidir. Örnek bir senaryo yazdım ama işe yaramıyor. Veri ekleme veya güncelleme yok. Lütfen yardım et..!İlk sorgu verileri, ikinci sorguda, işlem ile bir süre döngü tarafında kullanılır. Nasıl..?

İşte php komut dosyası. Bu sorun bu olacak.

$processes = array(); 

    $select_qty = "SELECT * FROM stock_master WHERE itemid='$itemId'"; 
    $result_qty = mysql_query($select_qty); 

    while($row = mysql_fetch_assoc($result_qty)){ 

     $id = $row['id']; 
     $stokqty = $row['availableqty']; 


     $processes[] = "UPDATE stock_master SET availableqty = '$stokqty' WHERE itemid = '$id'"; 
     $processes[] = "INSERT INTO nista_bill_master (billno, billdate, icode, iname, warehouse, quantity) VALUES ('$id', 'xx', 'xx', 'xx','xx', '$stokqty')"; 

    } 

    mysql_query("SET AUTOCOMMIT=0"); 
    mysql_query("START TRANSACTION"); 

    $count_processes = count($processes); 
    for($i=0; $i < $count_processes; $i++){ 
     try { 
      $q = mysql_query($processes[$i]); 
      if (!$q) throw new Exception(mysql_error()); 
     } 
     catch (Exception $e) { 
      mysql_query("ROLLBACK"); 
      break; 
     } 
    } 
    mysql_query("COMMIT"); 
    mysql_query("SET AUTOCOMMIT=1"); 
+0

' mysql_ ve olmamalıdır: Son

$processes[] = "INSERT INTO nista_bill_master (billno, billdate, icode, iname, warehouse, quantity) VALUES ('$id', 'xx', 'xx', 'xx','xx', '$stokqty',)"; 

Kaldır'ı "" koyduk bu açıklamada "" aşağıda gibi bir ifade biçiminde Kullanılmış. Lütfen [Neden PHP'de mysql_ * işlevlerini kullanmamalıyım?] (Http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) neden ve ne hakkında bilgi için okuyunuz? ne ile değiştirilir. –

+0

Varolan bir programı düzenliyorum. Bu mysql (mysqli değil) kullanılır. Peki ben ne yapacağım..? – Hirantha

+0

Mysql'in mysqli ile değiştirilmesi oldukça basittir. [Docs] 'u okuyun (http://php.net/manual/en/book.mysqli.php) ve fonksiyon çağrılarının çoğunun farklı isimlerle benzer isimlere sahip olduğunu göreceksiniz. Ayrıca [hazırlanmış ifadeleri kullanarak] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) de araştırmak isteyeceksiniz. –

cevap

0

Hey bu sorun olacak. PHP'de fonksiyonlar artık yok `*

$processes[] = "INSERT INTO nista_bill_master (billno, billdate, icode, iname, warehouse, quantity) VALUES ('$id', 'xx', 'xx', 'xx','xx', '$stokqty')"; 
+0

Hayır, düzeliyorum. Ama işe yaramıyor. – Hirantha

+0

hata nedir ??? – vishu

+0

Veri eklenmedi. İşlem kısmı çalışmıyor. – Hirantha

İlgili konular