Php İle Toplu Veriyi Sırayla Nasıl Db Kaydederim.
-
Merhaba arkadaşlar, Şöyle bir sorum var. Yardımcı olursanız menun olurum.
Şimdi merkez bankasından veri çekiyorum. Örneğin Dolar, Kanada Doları ve Kanada Doları olsun<?php $connect_web = simplexml_load_file('http://www.tcmb.gov.tr/kurlar/today.xml'); $usd_buying = $connect_web->Currency[0]->BanknoteBuying; $usd_selling = $connect_web->Currency[0]->BanknoteSelling; $euro_buying = $connect_web->Currency[3]->BanknoteBuying; $euro_selling = $connect_web->Currency[3]->BanknoteSelling; $kdolar_buying = $connect_web->Currency[7]->BanknoteBuying; $kdolar_selling = $connect_web->Currency[7]->BanknoteSelling; echo 'USD Alış: '.$usd_buying.'<br>USD Satış: '.$usd_selling.'<br>'; echo 'EUR Alış: '.$euro_buying.'<br>EUR Satış: '.$euro_selling; echo 'CAD Alış: '.$kdolar_buying.'<br>CAD Satış: '.$kdolar_selling; ?>
Yukardaki komutla çektim.
Ben bunları DB sırasıyla kaydetmek istiyorum.<?php $query = $db->prepare("INSERT INTO dolar SET alis = ?, satis = ?"); $insert = $query->execute(array( $usd_buying, $usd_selling )); if ( $insert ){ $last_id = $db->lastInsertId(); print "Kayıt işlemi başarılı!"; } ?>
Yukardaki komut ile tekli kayıt yapabiliyorum bunu çoklu olarak nasıl düzenlerim. Yani hepsini sırasıyla kaydetmesi için kodu nasıl düzenlemem lazım. Bu işlerden çok anlayan biri değilim. Öğrenmeye çalışıyorum bende.
-
hocam zaten yapmıssın sadace komutu 3 kere kopyalasan bıle ısını gorecektır
<?php $query = $db->prepare("INSERT INTO dolar SET alis = ?,satis =?"); $insert = $query->execute(array($usd_buying, $usd_selling)); $insert2 = $query->execute(array($euro_buying, $euro_selling)); $insert3 = $query->execute(array($kdolar_buying , $kdolar_selling)); if ( $insert && $insert2 && $inster3 ){ $last_id = $db->lastInsertId(); print "Kayıt işlemi başarılı!"; } ?>
istediğin daha farklı bırseymı
-
$query = $mysqli->prepare("INSERT INTO dolar SET alis = ?, satis = ?"); $stmt = $this->mysqli->prepare($query); $stmt->bind_param("ii", $alis, $satis); $this->mysqli->query("start transaction"); foreach ($krular as $kur) { $alis = $kur->alis; $satis = $kur->satis; $stmt->execute(); } $stmt->close(); $this->mysqli->query("COMMIT");
bind paramdaki ilk parametre ("ii") olan sırayla alış ve ssatışı integer olarak işaretliyo, string yapacaksan i leri S yap falan. tablodaki veri tipine göre. baya da hızlı insert eder bu
-
<?php /* MAIN */ $load = loadCurrencies(); if ($load != false) { $gC = "getCurrencies"; //kisaltmak icin. $usd_data = $gC(30); $euro_data = $gC(3); $kdolar_data = $gC(7); $db = new PDO('mysql:host=localhost;dbname=kurtest', "root", ""); $usdYaz = insertCurrency(["dolar", $usd_data]); $eurYaz = insertCurrency(["euro", $euro_data]); $cadYaz = insertCurrency(["kdolar", $kdolar_data]); echo checkInsert($usdYaz, $eurYaz, $cadYaz); } else { echo "Kur bilgisine ulasilamadi!"; } /* MAIN */ /* FUNC AREA */ function insertCurrency(array $data = null) { global $db; $query = $db->prepare("INSERT INTO $data[0] SET alis = ?, satis = ?"); if ($query->execute([$data[1]["buying"], $data[1]["selling"]])){ return true; } return false; }; function checkInsert(...$insert) { $s = ""; foreach ($insert as $single) { if (!$single) { $s .= "Yazilamadi!!"; } else { $s .= "Yazildi!"; } $s .= "\n<br>"; } return $s; } function loadCurrencies() { return simplexml_load_file('http://www.tcmb.gov.tr/kurlar/today.xml'); } function getCurrencies($ch) { global $load; $err = ["buying" => null, "selling" => null]; if ($load != false) { if (!isset($load->Currency[$ch])) { return $err; } return [ "buying" => $load->Currency[$ch]->BanknoteBuying, "selling" => $load->Currency[$ch]->BanknoteSelling, ]; } return $err; };
end tarafından 24/Mar/19 17:45 tarihinde düzenlenmiştir -
lazz bunu yazdı
hocam zaten yapmıssın sadace komutu 3 kere kopyalasan bıle ısını gorecektır
istediğin daha farklı bırseymı
Sağol reis
-
x-files bunu yazdılazz bunu yazdı
hocam zaten yapmıssın sadace komutu 3 kere kopyalasan bıle ısını gorecektır
istediğin daha farklı bırseymı
Sağol reis
yanlız bu tarz kullanımlarda end hocamın yazdıgı daha ıyı sonuc verıcektır hem moduler olur istedigin kadar kur ekleıyebılırsın