$query = "UPDATE orders SET ordersStatus = :ordersStatus WHERE ordersNumber = :ordersNumber";
$statement = $db->prepare($query);
$statement->execute(['ordersStatus' => 2, 'ordersNumber' => $post['merchant_oid']]);
$merchant_oid = $post['merchant_oid'];
// ÜRÜN ÇEKME
$productID = $statement['ordersProductID'];
$accountSQL = $db->prepare("SELECT accountID FROM account WHERE accountProductID = :accountProductID AND accountStatus = 1 LIMIT 1");
$accountSQL->execute(['accountProductID' => $productID]);
$accountDetail = $accountSQL->fetch(PDO::FETCH_ASSOC);
// Eğer ilgili kullanıcı bulunursa
if ($accountDetail) {
$accountId = $accountDetail['accountID'];
// account status update
$query1 = "UPDATE account SET accountStatus = 2, accountOrdersId=:accountOrdersId WHERE accountID = :accountID ";
$statement1 = $db->prepare($query1); // Corrected: Changed $query to $query1
$success = $statement1->execute(['accountOrdersId' => $merchant_oid, 'accountID' => $accountId]);
if ($success) {
$query = "UPDATE orders SET ordersStatus = :ordersStatus WHERE ordersNumber = :ordersNumber";
$statement = $db->prepare($query);
$statement->execute(['ordersStatus' => 2, 'ordersNumber' => $merchant_oid]);
} else {
// Handle update failure
}
} PHP Update yapmıyor
5
●98
- 07-05-2024, 14:42:36Üyeliği durdurulduPaytr entegrasyonu yapıyorum her şey iyi güzel fakat verilen ürünün accountStatus ve accountOrdersId güncellemesini bir türlü yaptıramadım bir çok kez kontrol ettim kodları nafile yardımcı olabilir misiniz?
- 07-05-2024, 15:07:08Hocam ilk önce GPT'ye bir sor istersen problemini, aşağıdakini yazdı:
----
Kodunuzu incelediğimde, bazı olası sorunları tespit ettim. İşte dikkat etmeniz gereken bazı noktalar:- $statement değişkenine sorgu çalıştırdıktan sonra veri almak için fetch işlemi yapmadınız. Bu nedenle $statement üzerinden doğrudan ordersProductID gibi bir değeri almaya çalıştığınızda hata alıyorsunuz. Bunun yerine sorguyu çalıştırdıktan sonra veriyi çekmelisiniz.
- İkinci bir önemli nokta, ikinci UPDATE işlemindeki değişken isimleri. İlk UPDATE sorgusunda :accountOrdersId olarak belirttiğiniz değişkeni ikinci UPDATE sorgusunda kullanmadınız. Bu nedenle bu değişkeni $merchant_oid olarak değiştirmeniz gerekebilir.
- Ayrıca, herhangi bir SQL hatası durumunda bunu belirtmek için hata işleme mekanizması eklemek iyi bir uygulamadır. Örneğin, $db->prepare ve $db->execute çağrılarından dönen sonuçları kontrol ederek hata olup olmadığını kontrol edebilir ve gerekirse uygun şekilde işleyebilirsiniz.
$query = "UPDATE orders SET ordersStatus = :ordersStatus WHERE ordersNumber = :ordersNumber"; $statement = $db->prepare($query); $statement->execute(['ordersStatus' => 2, 'ordersNumber' => $post['merchant_oid']]); $merchant_oid = $post['merchant_oid']; // ÜRÜN ÇEKME $productID = $post['ordersProductID']; // Veriyi çek $accountSQL = $db->prepare("SELECT accountID FROM account WHERE accountProductID = :accountProductID AND accountStatus = 1 LIMIT 1"); $accountSQL->execute(['accountProductID' => $productID]); $accountDetail = $accountSQL->fetch(PDO::FETCH_ASSOC); // Eğer ilgili kullanıcı bulunursa if ($accountDetail) { $accountId = $accountDetail['accountID']; // account status update $query1 = "UPDATE account SET accountStatus = 2, accountOrdersId=:accountOrdersId WHERE accountID = :accountID "; $statement1 = $db->prepare($query1); $success = $statement1->execute(['accountOrdersId' => $merchant_oid, 'accountID' => $accountId]); if ($success) { $query2 = "UPDATE orders SET ordersStatus = :ordersStatus WHERE ordersNumber = :ordersNumber"; $statement2 = $db->prepare($query2); $statement2->execute(['ordersStatus' => 2, 'ordersNumber' => $merchant_oid]); } else { // Handle update failure } }Bu düzeltmelerle, kodunuzun beklenen şekilde çalışması gerektiğini umuyorum. - 07-05-2024, 15:09:21Üyeliği durdurulduburakalaca adlı üyeden alıntı: mesajı görüntüle
<?php if (!isset($post['merchant_oid'])) { // merchant_oid değeri yoksa hata ver veya işlemi durdur die('merchant_oid is required'); } $merchant_oid = $post['merchant_oid']; $query = "UPDATE orders SET ordersStatus = :ordersStatus WHERE ordersNumber = :ordersNumber"; $statement = $db->prepare($query); $statement->execute(['ordersStatus' => 2, 'ordersNumber' => $merchant_oid]); // ÜRÜN ÇEKME $statement = $db->prepare("SELECT ordersProductID FROM orders WHERE ordersNumber = :ordersNumber"); $statement->execute(['ordersNumber' => $merchant_oid]); $orderDetail = $statement->fetch(PDO::FETCH_ASSOC); if ($orderDetail) { $productID = $orderDetail['ordersProductID']; $accountSQL = $db->prepare("SELECT accountID FROM account WHERE accountProductID = :accountProductID AND accountStatus = 1 LIMIT 1"); $accountSQL->execute(['accountProductID' => $productID]); $accountDetail = $accountSQL->fetch(PDO::FETCH_ASSOC); // Eğer ilgili kullanıcı bulunursa if ($accountDetail) { $accountId = $accountDetail['accountID']; // account status update $query1 = "UPDATE account SET accountStatus = 2, accountOrdersId = :accountOrdersId WHERE accountID = :accountID"; $statement1 = $db->prepare($query1); $success = $statement1->execute(['accountOrdersId' => $merchant_oid, 'accountID' => $accountId]); if ($success) { echo "Hesap ve sipariş durumu başarıyla güncellendi."; } else { // Handle update failure echo "Hesap durumu güncellenirken bir hata oluştu."; } } else { echo "İlgili hesap bulunamadı veya zaten güncel."; } } else { echo "Sipariş detayları bulunamadı."; } ?> - 07-05-2024, 15:44:28Üyeliği durdurulduselimkoc adlı üyeden alıntı: mesajı görüntüleTeşekkür ederim olduJanevu adlı üyeden alıntı: mesajı görüntüle