FOREACH
ş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ı
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
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);