• 06-08-2010, 10:51:15
    #1
    Merhaba Arkadaşlar,
    Küçük bir sorunum var yardım ederseniz sevinirim. Sorunum şu küçük bir sepet sistemi yapıyorum yemek sitesi Kodların bir kısmını hazır olarak buldum kodlara sonradan RestoranAdı diye bir alan ekledim fakat sonradan eklediğim yeri veritabanına kaydettiremiyorum. Kullanıcı sipariş verirken açılır kutudan bir restoran seçecek ve seçtiği restoran veritabanına kaydolacak fakat yapamadım. Lütfen Yardım Edin. Kodlar Aşağıdaki gibi;
    sepet1.php
    <?php
    /*
    Bismillahirrahmanirrahim
    */
    
    include ("config.php");// Veritabani baglantisi yapildi
    $sql = "SELECT yemekadi,fiyat, resim,detay FROM yemek ORDER BY id ASC"; // Burda DESC , ORDER BY vs.. kullanabilirim. Ama Geregi yok simdi
    $result = mysql_query($sql);
    if (!$result) {
    echo "Sorguda hata var ($sql) sorguyu gözden geçirin: " . mysql_error();
    exit;
    }
    if (mysql_num_rows($result) == 0) {
    echo "Kayıtlı hiçbir bilgiye rastlanmadı.";
    exit;
    }
    include("sepet-class.php");
    echo "<table>";
    
    while ($row = mysql_fetch_assoc($result)) {
    echo "
    <form action='sepet1.php' method='POST'>
    
    <input type='hidden' name='yemek' value='".$row["yemekadi"]."'>
    <input type='hidden' name='fiyat' value='".$row["fiyat"]."'>
    <input type='hidden' name='adet' value='".$row["adet"]."'>
    <input type='hidden' name='restoranadi' value='".$row["restoranadi"]."'>
    
    <input type='hidden' name='durum' value='1'>
    <table border='1' width='48%' id='table1' bordercolorlight='#000000' bordercolordark='#000000' cellspacing='0' cellpadding='0' height='106'>
    	<tr>
    		<td rowspan='4' width='12%'>
    		<p align='center'><img src='".$row['resim']."'></td>
    		<td height='22' bgcolor='#C0C0C0' align='center' width='25%'>Yemek Adi</td>
    		<td height='22' bgcolor='#C0C0C0' align='center' width='27%'>Fiyati</td>
    		<td height='22' bgcolor='#C0C0C0' align='center' width='13%'>Adeti</td>
    		<td height='22' bgcolor='#C0C0C0' align='center' width='17%'>Restoran 
    		Seç</td>
    	</tr>
    	<tr>
    		<td width='25%' height='23'>".$row['yemekadi']."</td>
    		<td height='23' width='27%'>".$row['fiyat']."</td>
    		<td height='23' width='13%'>
    		<input type='text' name='adet' size='10' value='1'></td>
    		<td height='23' width='17%'>
    		<select size='1' name='restoranadi'>";
    		$sor = mysql_query ("SELECT * FROM restoran ORDER BY id DESC") or die ("Sorgu yapilamiyor.Böyle bir tablo yok");
    		while ($yaz=mysql_fetch_array($sor)) {
    		echo "<option>".$yaz["restoranadi"]."</option>";
    		
    		}
    		echo "</select></td>
    	</tr>
    	<tr>
    		<td colspan='4'>
    		<p align='center'><input type='Submit' value='Sepete Ekle'> </td>
    	</tr>
    	<tr>
    		<td colspan='4'>".$row['detay']."</td>
    	</tr>
    </table>
    </form>";
    }
    echo "</table>";
    mysql_free_result($result);
    
    ?>
    sepet-class.php

    <?php
    /*
    Bismillahirrahmanirrahim
    */
    
    //--Sepet Sinifi
    ob_start();
    session_start();
    class sepet {
    var $sepetteki_yemekler;
    
    function sepet () {
    	if (isset($_SESSION["sepetteki_yemekler"])) {
    	$this->sepetteki_yemekler = $_SESSION["sepetteki_yemekler"];
    	}
    	}
    
    function sepete_ekle ($yemek_no,$adet) {
    $this->sepetteki_yemekler[$yemek_no] = $adet;
    }
    
    function sepetten_cikar ($yemek_no,$adet,$restoranadi) {
    	if (isset($this->sepetteki_yemekler[$yemek_no])) {
    	if ($this->sepetteki_yemekler[$yemek_no] > $adet) {
    	$this->sepetteki_yemekler[$yemek_no] = $adet;
    	$this->sepetteki_yemekler[$yemek_no] = $restoranadi;
    	} else {
    	unset($this->sepetteki_yemekler[$yemek_no]);
    	}
    	}
    }
    
    function sepeti_kaydet () {
    	if (isset($this->sepetteki_yemekler)) $_SESSION["sepetteki_yemekler"] = $this->sepetteki_yemekler;
    	}
    
    function sepeti_listele () {
    	if (isset($_SESSION["sepetteki_yemekler"])) {
    	return $_SESSION["sepetteki_yemekler"];
    	} else {
    	return false;
    	}
    }
    
    function oturum_kapat () {
    #session_destroy();
    $_SESSION["sepetteki_yemekler"]='';
    header("Location: sepet-class.php");
    }
    }
    
    ?>
    
    <?php
    
    $yeni_sepet = new sepet;
    if ($_POST["durum"]==1) {
    $yeni_sepet->sepete_ekle($_POST["yemek"],$_POST["adet"]."-".$_POST["fiyat"]);
    $yeni_sepet->sepeti_kaydet();
    }
    
    
    if ($_POST["durum"]==2) {
    $yeni_sepet->sepetten_cikar($_POST["yemek"],$_POST["adet"]);
    $yeni_sepet->sepeti_kaydet();
    }
    
    if ($_POST["durum"]==3) {
    $yeni_sepet->oturum_kapat();
    }
    
    
    
    if ($_POST["durum"]==4) {
    
    include ("config.php");
    
    if($_SESSION['kullaniciadi'] == '' || $_SESSION['uye'] == ''){
    header("Location: giris.php");
    exit;
    }
    
    $kullaniciadi=$_SESSION['kullaniciadi'];
    
    $result1 = mysql_query("SELECT * FROM uyeler WHERE kullaniciadi='{$kullaniciadi}'");
    
    if (!$result1) {
    echo "Sorguda hata var ($sql) sorguyu gözden geçirin: " . mysql_error();
    exit;
    }
    
    $row1 = mysql_fetch_assoc($result1);
    
    $uyeid=$row1['id'];
    
    $yemekler = $yeni_sepet->sepeti_listele();
    while (list($anahtar,$deger,$restoranadi) = each($yemekler)) {
    
    $tutar=explode("-", $deger);
    $result= mysql_query("INSERT INTO `siparis`(`uyeid`,`siparis`,`fiyat`,`adet`) VALUES('{$uyeid}','{$anahtar}','{$tutar[1]}','{$tutar[0]}')") or die(mysql_error());
    
    }
    
    if (!$result) {
    echo "Sorguda hata var ($sql) sorguyu gözden geçirin: " . mysql_error();
    exit;
    }else{
    echo "<script>
    			alert(\"Sayin ".$kullaniciadi." siparisiniz alindi. En kisa zamanda isleme alinacaktir.\")
    			</script>";
    
    			echo "<br><center>Yönlendiriliyorsunuz <BR>Lütfen Bekleyin</center><br>";
    			header("Refresh: 1; url=sepet1.php");
    exit;
    }
    }
    
    $yemekler = $yeni_sepet->sepeti_listele();
    $durum=0;
    $sepet='<table border=1>';
    $toplamtutar=0;
    
    if($yemekler){
    while (list($anahtar,$deger,$restoranadi) = each($yemekler)) {
    
    $tutar=explode("-", $deger);
    $toplam=$tutar[0]*$tutar[1];
    $sepet.="<tr><td>Ürün ".$anahtar."</td><td>".$toplam." YTL ".$tutar[0].' adet </td>
    <td> <FORM method="POST" action="sepet1.php" method=post>
    <INPUT type="hidden" name="restoranadi" value="'.$restoranadi.'">
    <INPUT type="hidden" name="yemek" value="'.$anahtar.'">
    <INPUT type="hidden" name="adet" size="9" value="'.$deger.'">
    <input type=hidden name="durum" value=2>
    <INPUT type="submit" value="Sepeten Sil">
    </form></td></tr>';;
    $durum=1;
    $toplamtutar +=$toplam;
    }
    }else{
    echo "<h1>Sayin <font color=\"#FF6600\">".$kullaniciadi." </font>Suan Sepetiniz bos</h1>"."<br>";
    }
    
    if($durum){ 
    $bosalt= '<tr><td>&nbsp;</td><td><FORM method="POST" action="sepet1.php" method=post>
    <input type=hidden name="durum" value=3>
    <INPUT type="submit" value="Sepeti boşalt">
    </form></td><td><FORM method="POST" action="sepet1.php" method=post>
    <input type=hidden name="durum" value=4>
    <INPUT type="submit" value="Gönder">
    </form></td></tr>';
    $sepet.='<tr><td>Toplam Tutar:</td><td>'.$toplamtutar.'</td><td></td></tr>';
    }
    $sepet.=$bosalt;
    $sepet.="</table>";
    echo $sepet;
    ?>
    buda veritabanı

    CREATE TABLE `siparis` (
    `id` int(11) NOT NULL auto_increment,
    `uyeid` int(11) NOT NULL default '0',
    `siparis` varchar(300) NOT NULL,
    `fiyat` varchar(200) NOT NULL,
    `adet` int(10) NOT NULL default '1',
    `durumu` int(1) NOT NULL,
    `restoranadi` varchar(300) default NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=34 ;
  • 06-08-2010, 14:53:35
    #2
    Bilen Yokmu arkadaşlar ??
  • 06-08-2010, 15:57:32
    #3
    Seçilen Restorant eklenmiyor sanırım?

    $result= mysql_query("INSERT INTO `siparis`(`uyeid`,`siparis`,`fiyat`,`adet`) VALUES('{$uyeid}','{$anahtar}','{$tutar[1]}','{$tutar[0]}')") or die(mysql_error());
    Bu adımda "restoranadi" kayitli değil.

    $result= mysql_query("INSERT INTO `siparis`(`uyeid`,`siparis`,`fiyat`,`adet`,`restoranadi`) VALUES('{$uyeid}','{$anahtar}','{$tutar[1]}','{$tutar[0]}','{$restoranadi}')") or die(mysql_error());
    olarak bi deneyin.
  • 06-08-2010, 18:28:02
    #4
    Æon adlı üyeden alıntı: mesajı görüntüle
    Seçilen Restorant eklenmiyor sanırım?

    $result= mysql_query("INSERT INTO `siparis`(`uyeid`,`siparis`,`fiyat`,`adet`) VALUES('{$uyeid}','{$anahtar}','{$tutar[1]}','{$tutar[0]}')") or die(mysql_error());
    Bu adımda "restoranadi" kayitli değil.

    $result= mysql_query("INSERT INTO `siparis`(`uyeid`,`siparis`,`fiyat`,`adet`,`restoranadi`) VALUES('{$uyeid}','{$anahtar}','{$tutar[1]}','{$tutar[0]}','{$restoranadi}')") or die(mysql_error());
    olarak bi deneyin.
    İlk Olarak ilgin için teşekkür ederim,

    Senin öreneği denedim ama olmuyor Kodlara Restoran kısmını kodlara Sonradan ekledim. Kodları ilk hali gibi paylaştım. Senin söylediğinide uyguladım ama olmuyor. RestoranAdi Veritabanına kaydolmuyor. Nerede Eksik yapıyorum çözemedim hâla.
  • 07-08-2010, 16:11:59
    #5
    pc_programmer adlı üyeden alıntı: mesajı görüntüle
    İlk Olarak ilgin için teşekkür ederim,

    Senin öreneği denedim ama olmuyor Kodlara Restoran kısmını kodlara Sonradan ekledim. Kodları ilk hali gibi paylaştım. Senin söylediğinide uyguladım ama olmuyor. RestoranAdi Veritabanına kaydolmuyor. Nerede Eksik yapıyorum çözemedim hâla.
    Biraz debug işlemi yapın yada en basit şekilde çalışan kodları inceleyin.

    mysql_query("INSERT INTO....

    bölümünden önce çalışan sorguyu okuyarak basit bir izleme yapın.;
    echo "INSERT INTO `siparis`(`uyeid`,`siparis`,`fiyat`,`adet`,`restoranadi`) VALUES('{$uyeid}','{$anahtar}','{$tutar[1]}','{$tutar[0]}','{$restoranadi}'";
    çıkan sonucu bi inceleyin yada buraya ekleyin. Bu sonuca ulaşmaz ise $restoranadi değişkenini kendiniz girin. Onu mysql_query("INSERT INTO... bölümünden önce $restoranadi = "Test değişken"; yapın. Böylecek gönderilen resotranadi boş olmayacak.