Yapmak istediğim şey bu vidyonun sonunda var. Burada adam farklı bilgileri grup şeklinde kayıt ediyor. Ben sepetteki ürünleri kayıt etmek istiyorum.
https://www.youtube.com/watch?v=MFqVkF-m8Gg
Tekrar merhabalar. Arkadaşlar şu an kayıt yapabiliyorum. Sorunu buldum. Form'daki input'ların "name" değerlerinin yanına [] işaretlerini koymuştum. Kaldırınca kaydetmeye başladı. Yalnız, ben tek post ile sepetteki ürünlerimin hepsini kaydetmek istiyorum. Halâ yapamadım anlayacağınız. Yani sepetimde 5 ürün var. Form'u post edince o 5 ürün de kaydolacak. ister veritabanına ister txt belgesine farketmez. Az daha sabır :) başaracacağız.
Önemli değil. Yalnız şöyle bir hata alıyorum. Tam da execute($arr) yazan yerde.
PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\\AppServ\\www\\ornek\\tamamlanansiparisler.php on line
Abdullah bey, daha kolay bir yöntemi yok mu? Program silip yeniden başka bir program kurmam lazım.
abdullah bey benim versiyon 7.3. Ne yapabilirim acaba? :)
'$arr[0]', '$arr[1]'
Bunun gibi mi? Bu söylediğim yerde syntax hatası var diyor. Benim versiyon 7.3 yalnız.
"array" lerin değerlerini alıyoruz ve "$arr" değişkenine aktardık. "array_pop", ise diziden son elemanı silme işlemi yapıyordu. Biz burada ne yapmış oluyoruz. Daha da önemlisi "...$arr" yazan yere ne yazmam lazım. Hata var gibi orada.
Merhaba. Şimdi benim bu kodları düzenleyebilmem için ne yaptığını anlamam lazım. Öncelikle bu (ilk) satırda hata veriyor. Ne hatası olduğu belli değil.
public function insert(string $table, array $data): bool
Şimdi burada "insert" isimli bir fonksiyon kullanmışız. Burada "string" i ve "array" i niye yazdık. Aşağıdaki kodda da, "sql" isimli bir dizi değişken oluşturmuşuz.
$sql = [];
foreach ($data as $key => $value) {
Ben bu yapıdan pek bir şey anlamadım. Açıklayabilir misiniz, size zahmet?
Verileri array ile çekmeyi bilemedim. txt dosyaya da kayıt edilebilir. Fark etmez.
Burada normalde iki tane form var. Kafa karışıklığı olmasın diye 1'e indirdim.
formsayfasi.php
<form action="tamamlanansiparisler.php" method="post" enctype="multipart/form-data">
<div class="alici-kisiselbilgiler-div">
<div class="alici-adi-soyadi-yazisi">
Adı - Soyadı: *
</div>
<div class="alici-adi-soyadi-input">
<input type="text" name="aliciadisoyadi" />
</div>
<div class="firma-adi-yazisi">
Firma (İsteğe Bağlı)
</div>
<div class="firma-adi-input">
<input type="text" name="alicifirma" />
</div>
<div class="ulke-adi-yazisi">
Ülke: *
</div>
<div class="ulke-adi">
Türkiye
</div>
<div class="sehir-adi-yazisi">
Şehir: *
</div>
<div class="sehir-adi-input">
<select name="Sehir">
<option value="0">Şehir Seçiniz</option>
<option value="1">Adana</option>
<option value="2">Adıyaman</option>
<option value="3">Afyonkarahisar</option>
<option value="4">Ağrı</option>
<option value="5">Amasya</option>
<option value="6">Ankara</option>
<option value="7">Antalya</option>
<option value="8">Artvin</option>
<option value="9">Aydın</option>
<option value="10">Balıkesir</option>
<option value="11">Bilecik</option>
<option value="12">Bingöl</option>
<option value="13">Bitlis</option>
<option value="14">Bolu</option>
<option value="15">Burdur</option>
<option value="16">Bursa</option>
<option value="17">Çanakkale</option>
<option value="18">Çankırı</option>
<option value="19">Çorum</option>
<option value="20">Denizli</option>
<option value="21">Diyarbakır</option>
<option value="22">Edirne</option>
<option value="23">Elazığ</option>
<option value="24">Erzincan</option>
<option value="25">Erzurum</option>
<option value="26">Eskişehir</option>
<option value="27">Gaziantep</option>
<option value="28">Giresun</option>
<option value="29">Gümüşhane</option>
<option value="30">Hakkâri</option>
<option value="31">Hatay</option>
<option value="32">Isparta</option>
<option value="33">Mersin</option>
<option value="34">İstanbul</option>
<option value="35">İzmir</option>
<option value="36">Kars</option>
<option value="37">Kastamonu</option>
<option value="38">Kayseri</option>
<option value="39">Kırklareli</option>
<option value="40">Kırşehir</option>
<option value="41">Kocaeli</option>
<option value="42">Konya</option>
<option value="43">Kütahya</option>
<option value="44">Malatya</option>
<option value="45">Manisa</option>
<option value="46">Kahramanmaraş</option>
<option value="47">Mardin</option>
<option value="48">Muğla</option>
<option value="49">Muş</option>
<option value="50">Nevşehir</option>
<option value="51">Niğde</option>
<option value="52">Ordu</option>
<option value="53">Rize</option>
<option value="54">Sakarya</option>
<option value="55">Samsun</option>
<option value="56">Siirt</option>
<option value="57">Sinop</option>
<option value="58">Sivas</option>
<option value="59">Tekirdağ</option>
<option value="60">Tokat</option>
<option value="61">Trabzon</option>
<option value="62">Tunceli</option>
<option value="63">Şanlıurfa</option>
<option value="64">Uşak</option>
<option value="65">Van</option>
<option value="66">Yozgat</option>
<option value="67">Zonguldak</option>
<option value="68">Aksaray</option>
<option value="69">Bayburt</option>
<option value="70">Karaman</option>
<option value="71">Kırıkkale</option>
<option value="72">Batman</option>
<option value="73">Şırnak</option>
<option value="74">Bartın</option>
<option value="75">Ardahan</option>
<option value="76">Iğdır</option>
<option value="77">Yalova</option>
<option value="78">Karabük</option>
<option value="79">Kilis</option>
<option value="80">Osmaniye</option>
<option value="81">Düzce</option>
</select>
</div>
<div class="ilce-adi-yazisi">
İlçe / Semt: *
</div>
<div class="ilce-adi-input">
<input type="text" name="aliciilce" />
</div>
<div class="telefon-yazisi">
Telefon: *
</div>
<div class="telefon-input">
<input type="text" name="alicitelefon" />
</div>
<div class="eposta-yazisi">
E-Posta Adresi: *
</div>
<div class="eposta-input">
<input type="text" name="alicieposta" />
</div>
<!-- <div class="formundevami"> -->
<div class="siparisnotlari-yazisi">
Şiparişiniz İle İlgili Not Bırakabilirsiniz - (İsteğe Bağlı)
</div>
<div class="siparisnotlari-textarea">
<textarea name="siparisnotlari"></textarea>
</div>
<div class="siparisitamamla">
<input type="submit" name="formbir" value="Siparişi Tamamla" />
</div>
<!-- Sepetim Sayfasından çekilmesi gereken inputlar başlangıç -->
<?php
$sepeturunlerigoster = $db->query("SELECT * FROM sepeteeklenenurunler");
while ($urunekle = $sepeturunlerigoster->fetch()) {
?>
<div class="sepetionayla-fiyatgosterimi-div" style="display:none;">
<div class="sepetimurunleri-sayfasi-urunadi">Ürün Adı:
<?php echo $urunekle['urun_adi']; ?>
<input type="text" name="urununadi[]" value="<?php echo $urunekle['urun_adi']; ?>" />
</div>
<div class="sepetimurunleri-sayfasi-stokkodu" style="display:none;">Stok Kodu:
<?php echo $urunekle['urun_stokkodu']; ?>
<input type="number" name="urununstokkodu[]" value="<?php echo $urunekle['urun_stokkodu']; ?>" />
</div>
<div class="sepetimurunleri-sayfasi-stoksayisi" style="display:none;">Stok Adedi:
<?php echo $urunekle['urun_stoksayisi']; ?>
<input type="number" name="urununstoksayisi[]" value="<?php echo $urunekle['urun_stoksayisi']; ?>" />
</div>
<!-- <form action="" method="post"> -->
<div class="sepetimurunleri-sayfasi-fiyati">Fiyatı:
<input type="number" name="unitPrice[]" value="<?php echo $urunekle['urun_fiyati']; ?>" />
TL
</div>
<div class="sepetimurunleri-sayfasi-adet-sayisi">Adedi:
<input type="number" name="productCount[]" value="1" />
</div>
</div>
<?php } ?>
<div class="genislik">
<div class="odemetablosu-yazisi">
Ödeme Tablosu
<div class="odemetablosu-yazisi-border"> </div>
</div>
<div class="odemetablosu" id="output"></div>
<div class="toplamtablosu" id="info"> </div>
</div>
<!-- Sepetim Sayfasından çekilmesi gereken inputlar bitiş -->
</div>
</form>
tamamlanansiparisler.php
<div class="skinserisiurunleri-sayfasi-div">
<?php
if ($_POST['formbir']) {
$aliciadisoyadi = $_POST['aliciadisoyadi'];
$alicifirma = $_POST['alicifirma'];
$Sehir = $_POST['Sehir'];
$aliciilce = $_POST['aliciilce'];
$alicitelefon = $_POST['alicitelefon'];
$alicieposta = $_POST['alicieposta'];
$siparisnotlari = $_POST['siparisnotlari'];
$urununstokkodu = $_POST['urununstokkodu'];
$urununstoksayisi = $_POST['urununstoksayisi'];
$unitPrice = $_POST['unitPrice'];
$productCount = $_POST['productCount'];
$urunstokkodu = count($urununstokkodu);
$urunstoksayisi = count($urununstoksayisi);
$urunadet = count($productCount);
$toplam = array_sum($unitPrice);
$onaylananurunlerigoster = $db->query("INSERT INTO sepetonaylanan
(sepetonaylanan_adisoyadi, sepetonaylanan_firmaadi, sepetonaylanan_sehiradi,
sepetonaylanan_ilcesemt, sepetonaylanan_telefon, sepetonaylanan_eposta,
sepetonaylanan_siparisnotlari, sepetonaylanan_urun_stokkodu,
sepetonaylanan_urun_stoksayisi, sepetonaylanan_urun_fiyati,
sepetonaylanan_urun_adedi) VALUES
('$aliciadisoyadi', '$alicifirma', '$Sehir', '$aliciilce', '$alicitelefon',
'$alicieposta', '$siparisnotlari', '$urunstokkodu', '$urunstoksayisi',
'$toplam', '$urunadet')");
if($onaylananurunlerigoster) {
echo "Siparişiniz Başarıyla Tamamlanmıştır";
} else {
echo "Kayıt başarısız!";
}
?>
</div>