Pdo Güncellemede Sıkıntı
-
Mürid ve mürideler pdo veritabanı kullanıyorum ve kafasına göre bazen güncelliyor bazen güncellemiyor kodda nerede hata yaptığımı bir bakabilirmisiniz.. verileri bot otomatik çekiyor onda sıkıntı yok yazıdırınca eksiksiz veriyor yalnız güncellemede sıkıntı veiryor.
iki tane güncelleme yaptım bir tanesi tabloları boşaltsın diğeride bottan çektiği verileri eklemesi için ...
<?php
require('inc/simple_html_dom.php');
include('inc/ayar.php');
include("inc/fonksiyon.php");
@$id = $_GET[id];
@$_SESSION["id"]=$id;
$sql = $db->prepare("SELECT * FROM oyunlar WHERE id= ?");
$sql->execute(array($id));
$row=$sql->fetch(PDO::FETCH_ASSOC);
$verit=$row['verit'];
$slink=$row['slink'];
$html = file_get_html($slink);
$table = $html->find('table', 0);
$sorgu = $db->prepare("SELECT COUNT(*) FROM verit");
$sorgu->execute();
$say = $sorgu->fetchColumn();
$rowData[0]="";
$rowData[1]="";
$rowData[2]="";
$rowData[3]="";
for($a = 1; $a < $say; $a++) {
$guncelle = $db->prepare("UPDATE verit SET epin=?, kars=?, afiyat=?, stok=? WHERE id = ?");
$guncelle->execute(array($rowData[0],$rowData[1],$rowData[2],$rowData[3],$a));
}
$a=0;
foreach($table->find('tr') as $row) {
$rowData = array();
foreach($row->find('td') as $cell) {
$rowData[] = $cell->innertext;
}
@$rowData[0]= replaceSpace($rowData[0]);
@$rowData[1]= replaceSpace($rowData[1]);
@$rowData[2]= replaceSpace($rowData[2]);
@$rowData[3]= replaceSpace($rowData[3]);
$guncelle = $db->prepare("UPDATE $verit SET epin=?, kars=?, afiyat=?, stok=? WHERE id = ?");
$guncelle->execute(array($rowData[0],$rowData[1],$rowData[2],$rowData[3],$a));
$a++;
}
?>
-
Update için niye verilerin sıralı idye sahip olmasını bekliyorsun? Update sorgusunda where id yerine where oyunkod ya da where oyunadi gibi eşsiz bir kolon kullanmalısın. ID değişebilir oyun adı değişmez.
Ayrıca bir kere prepare edip defalarca execute edebilirsin.
-
up
-
Hocam kodlarda bir sıkıntı göremedim fakat
ilk güncellemede $verit , ikinci de ise verit kullanmışsın bunlar doğru mu tablo yapını bilmediğim için birşey diyemiyorum ama kodlar doğru.
Not: Kodlarının karmaşıklığı ise ayrı bir konu bence biraz daha düzenli kod yazmalısın ayrıca fonksiyon class vs kullanımı işini kolaylaştırır.
