lostyazilim
tr.link

Veri Güncelleme Veri Çekme Database Yardımı

5 Mesajlar 940 Okunma
acebozum
tr.link

cengzsen cengzsen GraphicDesigner Kullanıcı
  • Üyelik 03.09.2016
  • Yaş/Cinsiyet 26 / E
  • Meslek Grafik Tasarım
  • Konum Sakarya
  • Ad Soyad C** Ş**
  • Mesajlar 174
  • Beğeniler 35 / 34
  • Ticaret 4, (%100)
Merhabalar , veri çekme botu yazıyorum kendimi geliştirmek için çektiğim sitede stok sayıları mevcut yapmak istediğim şu;

Veri tabanında ki ürün adı aynı ise tekrardan yazdırma stok sayısını güncelle


set_time_limit(0);

$db=new PDO("mysql:host=localhost;dbname=etkin",'root','');

require_once 'simple_html_dom.php';
// Create DOM from URL or file
$html = file_get_html('https://www.*sitedi*promosyon.com/promosyonurunleri-ajanda-kapaklari-27.html');

$sonuc=$html->find('#isimkat a');

foreach ($sonuc as $key) {
$url="".$key->href;
$html = file_get_html($url);

echo $isim=$html->find('#urundetaylar h1',0)->plaintext;
echo "
";

echo $kod=$html->find('#urundetaylar li',1);
echo "
";

echo $fiyat=$html->find('#urundetaylar li',1)->plaintext;
echo "
";

echo $stok=$html->find('#urundetaylar li',5)->plaintext;
echo "
";

$resim=$html->find('#urunbuyukresim img',0)->src;
$resim_yol=uniqid().".jpg";

$sql=$db->prepare("SELECT * FROM etkin WHERE etkin_id=? Order By etkin_kod DESC");
$sql = $db->prepare("UPDATE etkin SET etkin_kod = ?");
$sql->execute([$kod]);



$sql=$db->prepare("INSERT INTO etkin SET etkin_isim=?,kategori_id=?,etkin_kod=?,etkin_fiyat=?,etkin_stok=?,etkin_resim=?");

$sql->execute([$isim,3,$kod,$fiyat,$stok,$resim_yol]);


if ($sql->rowCount()>0) {
echo "kayıt başarılı";
$veri2=file_get_contents("$resim");
$kayit=fopen('images/'.$resim_yol,"w+");
fwrite($kayit, $veri2);
fclose($kayit);
}

}

echo "
";
?>
FikirUssu

kişi bu mesajı beğendi.

elektronikssl
webimgo

FikirUssu FikirUssu Yazılım Firması Kullanıcı
  • Üyelik 02.12.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek Yazılım Mühendisi
  • Konum Ankara
  • Ad Soyad B** E**
  • Mesajlar 146
  • Beğeniler 43 / 42
  • Ticaret 41, (%100)
Yapmanız gereken aslında şu;

1. Bot ile verileri çekeceksiniz.
2. Bottan gelen verileri SELECT count( *) as sayisi FROM table WHERE kolon_adi = 'bottanGelenVeriBaslig' şeklinde saydıracaksınız. Eğer sayı 0'dan büyük ise veri başlığı %100 eşleşiyor ve if şartı ile kontrol ettikten sonra güncelleyeceksiniz.


Mevcut gönderdiğin kodda tamamiyle veri eklemeyi yapmışsın.


Başarılar diliyorum
 

 

cengzsen cengzsen GraphicDesigner Kullanıcı
  • Üyelik 03.09.2016
  • Yaş/Cinsiyet 26 / E
  • Meslek Grafik Tasarım
  • Konum Sakarya
  • Ad Soyad C** Ş**
  • Mesajlar 174
  • Beğeniler 35 / 34
  • Ticaret 4, (%100)
Bedirhan hocam, tam odaklanamadım muhtemelen acemiliğimden dolayı beni mazur görün kod üzerinde editleme yaparak izah etmeniz mümkün mü değerli vaktinizi almaz isem?
 

 

darkcoder darkcoder WM Aracı Kullanıcı
  • Üyelik 05.10.2020
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım
  • Konum İstanbul Anadolu
  • Ad Soyad H** Y**
  • Mesajlar 161
  • Beğeniler 2 / 54
  • Ticaret 3, (%100)
cengzsen Bu şekilde deneyebilir misiniz?



set_time_limit(0);

$db=new PDO("mysql:host=localhost;dbname=etkin",'root','') ;

require_once 'simple_html_dom.php';
// Create DOM from URL or file
$html = file_get_html('https://www.*sitedi*promosyon.com/promosyonurunleri-ajanda-kapaklari-27.html');

$sonuc=$html->find('#isimkat a');

foreach ($sonuc as $key) {
$url="".$key->href;
$html = file_get_html($url);

echo $isim=$html->find('#urundetaylar h1',0)->plaintext;
echo "
";

echo $kod=$html->find('#urundetaylar li',1);
echo "
";

echo $fiyat=$html->find('#urundetaylar li',1)->plaintext;
echo "
";

echo $stok=$html->find('#urundetaylar li',5)->plaintext;
echo "
";

$resim=$html->find('#urunbuyukresim img',0)->src;
$resim_yol=uniqid().".jpg";

$sql=$db->prepare("SELECT * FROM etkin WHERE etkin_id=? Order By etkin_kod DESC");
$sql = $db->prepare("UPDATE etkin SET etkin_kod = ?");
$sql->execute([$kod]);
// Aynı isimden bir kayıt olduğu varsayılırsa ; (Eğer çoklu kayıt var ise id ye göre while ile işlem yapılabilir.)
$sor=$db->prepqare("SELECT etkin_isim,etkin_stok FROM etkin WHERE etkin_isim=?");
$sor->execute(array("$isim"));
$say=$sor->rowCount();
if($say>0){
$diz=$sor->fetch(PDO:: FETCH_ASSOC);
$guncel_stok=$diz['etkin_stok']+1;
$sql=$db->prepare("UPDATE etkin SET etkin_stok=? WHERE etkin_isim=?");
$sql->execute(array("$guncel_stok","$isim"));
}else{
$sql=$db->prepare("INSERT INTO etkin SET etkin_isim=?,kategori_id=?,etkin_kod=?,etkin_fiyat=?,etkin_stok=?,etkin_resim=?");
$sql->execute(array("$isim","3","$kod","$fiyat","$stok","$resim_yol"));
}
// Değişiklikler bitiş
if ($sql->rowCount()>0) {
echo "kayıt başarılı";
$veri2=file_get_contents("$resim");
$kayit=fopen('images/'.$resim_yol,"w+");
fwrite($kayit, $veri2);
fclose($kayit);
}

}

echo "
";
?>
 

 

wmaraci
wmaraci

cengzsen cengzsen GraphicDesigner Kullanıcı
  • Üyelik 03.09.2016
  • Yaş/Cinsiyet 26 / E
  • Meslek Grafik Tasarım
  • Konum Sakarya
  • Ad Soyad C** Ş**
  • Mesajlar 174
  • Beğeniler 35 / 34
  • Ticaret 4, (%100)
hocam bu hatayı alıyorum

KP-25 Gizli Spiralli Ajanda Kapak
Fiyat FİYAT ALINIZ

Fiyat FİYAT ALINIZ
Toplam Stok 1999

Fatal error: Uncaught Error: Call to undefined method PDO::prepqare() in C:\laragon\www\vericek\dom\example\yeni.php:37 Stack trace: #0 {main} thrown in C:\laragon\www\vericek\dom\example\yeni.php on line 37
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al