v2.5.2
Giriş yap

FOREACH

t00000001
637 defa görüntülendi ve 1 kişi tarafından değerlendirildi

şu kodu yazıyorum

if (isset($_POST['siparistamam'])) {
       $isimsy=$_POST['isimsoyisim'];
       $sirket=$_POST['sirket'];
       $adres=$_POST['adres'];
       $sehir=$_POST['sehir'];
       foreach ($_POST['alan'] as $key => $value) {
        $db->query("insert into siparis(alan_kadi) values ('$value')");
       }
       foreach ($_POST['veren'] as $key => $value) {
        $db->query("insert into siparis(veren_kadi) values ('$value')");
       }
       foreach ($_POST['fiyat'] as $key => $value) {
        $db->query("insert into siparis(toplam_tutar) values ('$value')");
       }
       foreach ($_POST['urunid'] as $key => $value) {
        $db->query("insert into siparis(urun_id) values ('$value')");
       }
       $db->query("insert into siparis(isimsoyisim,adres,sirket,sehir) values('.$isimsy.','.$adres.','.$sirket.','.$sehir.')");
 
}

//gelen değerlerin hepsi array eminim

Warning: foreach() argument must be of type array|object, string given in C:\Program Files\Xampp\htdocs\htdocs\Kitapkap\islem.php on line 25

şu hatayı alıyorum nerede hata yapıyorum acaba kurduğum algoritma mı sıkıntılı

tayfunerbilen
1255 gün önce

burada aldığın hata post değerinin array olmamasıyla alakalı dolayısı ile foreach'e sokmadan önce şu şekilde kontrol etmen daha doğru olacaktır;

if (isset($_POST['siparistamam'])) {
   $isimsy=$_POST['isimsoyisim'];
   $sirket=$_POST['sirket'];
   $adres=$_POST['adres'];
   $sehir=$_POST['sehir'];
   if (isset($_POST['alan']) && is_array($_POST['alan'])){
       foreach ($_POST['alan'] as $key => $value) {
        $db->query("insert into siparis(alan_kadi) values ('$value')");
       }
   }
   if (isset($_POST['veren']) && is_array($_POST['veren'])){
       foreach ($_POST['veren'] as $key => $value) {
        $db->query("insert into siparis(veren_kadi) values ('$value')");
       }
   }
   if (isset($_POST['fiyat']) && is_array($_POST['fiyat'])){
       foreach ($_POST['fiyat'] as $key => $value) {
        $db->query("insert into siparis(toplam_tutar) values ('$value')");
       }
   }
   if (isset($_POST['urunid']) && is_array($_POST['urunid'])){
       foreach ($_POST['urunid'] as $key => $value) {
        $db->query("insert into siparis(urun_id) values ('$value')");
       }
   }
   $db->query("insert into siparis(isimsoyisim,adres,sirket,sehir) values('.$isimsy.','.$adres.','.$sirket.','.$sehir.')");
}

ayrıca print_r() ile dump ederek gelen değerlerini kontrol etmen gerek, sen eminsin ama öyle geliyor mu bir kontrolün yok gibi, en basit olarak şöyle bakıp karar ver doğruluğuna;

print_r($_POST);