addcart.php problemi.
arkadaşlar sürekli ayni hatayi aliyorum yardimci olursaniz sevinirim...
aldığım hata:
[URL=www.resimupload.com/ds208473300_aaaaa.html][IMG]http://pic1.resimupload.com/r7/thumb_208473300.JPG[/IMG][/URL]
kod kısmı:
<?php
session_start();
include "connection.php";
if($_POST["sel_item_id"]!= "") {
$get_iteminfo = "select item_title from store_items
where id = '$_POST[sel_item_id]'";
$get_iteminfo_res = mysql_query($get_iteminfo)
or die(mysql_error( ));
if(mysql_num_rows($get_iteminfo_res) < 1) {
header("Location: seestore.php");
exit;
}else{
$item_title =mysql_result($get_iteminfo_res,0, 'item_title');
$addtocart = " insert into store_shoppertrack values
(' ', '$_COOKIE[PHPSESSID]', '$_POST[sel_item_id]',
'$_POST[sel_item_qty]','$_POST[sel_item_size]',
'$_POST[sel_item_color]', now( ))";
mysql_query($addtocart);
header("Location showcart.php");
exit;
}
} else {
header("Location: seestore.php");
exit;
}
?>
Sayda ki sorgulardan birinde hata var. Bu şekilde bir soz dizimi kullandığızda hatanın nereden kaynaklandığını anlamak benim için mumkun değil.
Bakınız sorgularınızı şu şekilde düzenler ve yaparsanız sorun büyük ihtimalle kalkacaktır.
$id=$_POST['id'];
"SELECT `sutun_adi` FROM `tablo_adi` WHERE `id`='$id';"
SORGUDAKİ KIRMIZI YERLERE DİKKAT EDİNİZ.
Sütun adını, tablo adını ve WHERE 'den sonraki sütun isminde yatay tırnak yani AltGr + , (Virgül) hotkeyini kullanınız.
Aynı şekilde değişken isimleri için ise tek tırnak yani Shift + 2 ( 2 tuşu NumPad'den değil. ) hotkeyini kullanınız.
Unutmayın çıkan hata bir MYSQL SORGUSU SÖZ DİZİMİ HATASI...
Aldığınız hata syntax hatası (söz dizimi hatası)
ve sırası ile hatalarınız:
1) include "connection.php"; // include(); sürekli kullanacağınız bir fonksiyondur. Kullanımı bu şekilde çalışıyor olsa da yanlıştır.
doğrusu: include("connection.php"); // olmalıdır. eliniz buna yatsın, kaybetmezsiniz...
-------------------------------------
2) $_POST["sel_item_id"] // burada post edeceğiniz sel_item_id değişkenini tek tırnak içerisinde kullanmanız her zaman yararınızadır.
doğrusu:$_POST['sel_item_id']
--------------------------------------------------------------------------
3)$get_iteminfo = "select item_title from store_items
where id = '$_POST[sel_item_id]'"; // bu satırdaki post işleminizde değişkeni bu defa hiçbirşekilde paranteze almamışsınız.
Buna ek olarak o satırı şunun ile değiştiriniz çünkü başlıca hata sebepleriniz arasında yer alıyor:
doğrusu: $get_iteminfo = "select item_title from store_items
where id = '".$_POST['sel_item_id']."'";
--------------------------------------------------------------------------
4) $addtocart = " insert into store_shoppertrack values
(' ', '$_COOKIE[PHPSESSID]', '$_POST[sel_item_id]',
'$_POST[sel_item_qty]','$_POST[sel_item_size]',
'$_POST[sel_item_color]', now( ))";
mysql_query($addtocart);
Doğrusu: yukarıda, özellikle bir önceki maddeden yararlanarak buradaki hatalarınızı da görebilirsiniz. Ayrıca bu sorguları şu şekilde yapmanız daha çok yardımcı olacaktır size:
$addtocart= mysql_query("INSERT INTO store_shoppertrack ( id, hede, hödö, vs ) VALUES (' ','$hede', '$hödö', '$vs' ) ");
--------------------------------------------------------------------------
5) header("Location showcart.php"); // bu satırda Location komutundan sonra iki nokta üstüste girilmediğinden hata alırsınız.
doğrusu: header("LOCATION:showcart.php"); // (location küçük yazılması bişey değiştirmez.)
6) exit; // bu fonksiyonu da include gibi düşünebilirsiniz parantezleri kullanmanız yararınızadır.
doğrusu: exit(); // olacaktır ama bu satırda zaten çok saçma. Nedenine gelince, zaten derleyici o satıra geçmeden lokasyonunu değiştirecek. Çünkü son (kullanımı yanlış da olsa ) komutunuzda header(); ile sayfayı yönlendiriyorsunuz... Bu yüzden bu satırdaki exit(); çok gereksiz. kod hantallığı bkz. 1 byte 1 byte'tır. :) exit; = 5 byte :) neyse.
Aynı gereksizlik bir sonraki yönlendirme sonunda da var etti mi 10 byte :)
Umarım yardımcı olabilmişimdir. Bütün bunları yazmadan size direkt çalışan kodu yazsam benim için daha kolay olacaktı, ama hazırcılık iyi birşey değildir; iyi bir sayfa iyi bir kodlamadan ibarettir. Ne kodladığınızı bilin, hatalarınızı düzeltin, sizler de gelecek nesillere yardımcı olun inşaallah.
İyi çalışmalar dilerim...