• 10-01-2019, 17:58:30
    #1
    Arkadaşlar herkese selamlar kolay gelsin


    arkadaşlar Aşşağıdaki gibi hata alıyorum hatayı bulamadım sorun nerde olabilir

    simdiden yardım eden herkese teşekkürler

    SORUN function urunlericek BÖLÜMÜNÜ YAZDIKTAN SONRA OLUSTU




    ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\wamp64\www\dersler\dah.php on line 68

    ( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\wamp64\www\dersler\dah.php on line 68



    <?php 
    try  {
    	$veritabani = new PDO("mysql:host=localhost;dbname=stoktakip;charset=utf8", "root","123456");
    	$veritabani->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	
    	
    } catch (PDOException $e) {
    	die($e->getMessege());
    	
    }
    
    
    
    
    class stok {
    	
    	function katogoriust ($veritabani){
    		
    	$sorgu="select * from kategori ";
    	$verson=$veritabani->prepare($sorgu);
    	$verson->execute();
    	
    	while($sonson=$verson->fetch(PDO::FETCH_ASSOC)):
    	echo '<a id="link" href="index.php?hareket=uruncek&id'.$sonson["id"].'" style="padding-top:40px;">'.$sonson["ad"].'---</a> ';	
    	
    	endwhile;	
    		
    		
    		}
    	
    	
    	function tumurunler ($veritabani){
    		
    	$sorgu1="select * from urunler ";
    	$verson1=$veritabani->prepare($sorgu1);
    	$verson1->execute();
    	
    	while($sonson1=$verson1->fetch(PDO::FETCH_ASSOC)):
    	?>
    	
        <div class="col-md-1 table-bordered " id="kutuliste">        
            <div class="row" style="text-align:center">
            <div class="col-md-12" >Ürün Adı <?php echo $sonson1["ad"]; ?></div> 
              <div class="col-md-12"><b class="text-danger">Stok : <?php echo $sonson1["stok"]; ?></b></div> 
            <div class="col-md-12"><input name="guncel" type="submit" class="btn btn-outline-success" value=">" style="margin-bottom:3px; " /></div>        
            </div>
            
            </div>
        
        
        
        	<?php
    	
    	endwhile;	
    		
    		
    		
    		
    		}
    	
    	
    	function urunlericek ($veritabani,$katid){
    		
    		
    		
    		$sorgu2="select * from urunler where katid=$katid ";
    		$verson2=$veritabani->prepare($sorgu2);
    		$verson2->execute();
    	
    	while($sonson2=$verson2->fetch(PDO::FETCH_ASSOC)):
    	
    		?>
    	
        <div class="col-md-1 table-bordered " id="kutuliste">        
            <div class="row" style="text-align:center">
            <div class="col-md-12" >Ürün Adı <?php echo $sonson2["ad"]; ?></div> 
              <div class="col-md-12"><b class="text-danger">Stok : <?php echo $sonson2["stok"]; ?></b></div> 
            <div class="col-md-12"><input name="guncel" type="submit" class="btn btn-outline-success" value=">" style="margin-bottom:3px; " /></div>        
            </div>
            
            </div>
        
        
        
        	<?php
    	endwhile;
    		}
    	
    	}
    
    ?>


    index php


    <!-- KATEGORİ BÖLÜM -->
    <div class="row border-bottom">
    <?php 
    	$stok->katogoriust($veritabani);
    	 ?>
    </div>
    		<div class="col-md-3"><form class="form-inline">
      <label class="my-1 mr-2" for="inlineForm<?php  require_once("dah.php"); 
    $stok= new stok;
    try  {
    	$veritabani = new PDO("mysql:host=localhost;dbname=stoktakip;charset=utf8", "root","123456");
    	$veritabani->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	
    	
    } catch (PDOException $e) {
    	die($e->getMessege());
    	
    }
    
     ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="dosya/tasarim.css" />
    <head>
    
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>STOK TAKİP SİSTEMİ</title>
    </head>
    <body>
    
    <div class="container table-bordered" id="cont">
    
    <!-- ÜST BÖLÜM -->
    <div class="row border-bottom" style="min-height:60px">
    		<div class="col-md-3" id="ustbolum"><h4>Kullanıcı Adı</h4></div>
    		<div class="col-md-9" id="ustbolum"><ul class="nav justify-content-end" >
      <li class="nav-item"  id="islem">
        <a class="nav-link btn btn-outline-dark" href="#">İşlemler</a>
      </li>
      <li class="nav-item" id="islem">
        <a class="nav-link btn btn-outline-dark" href="#">Şifre Değiştir</a>
      </li>
      <li class="nav-item" id="islem">
        <a class="nav-link btn btn-outline-dark"  href="#">Çıkış</a>
      </li>
    
    </ul></div>
    </div>
    <!-- ÜST BÖLÜM -->CustomSelectPref">Listeleme</label>
      <select class="custom-select my-1 mr-sm-2" id="inlineFormCustomSelectPref">
        <option value="1">Kutu</option>
        <option value="2">Liste</option>
         </select>
      <button type="submit" class="btn btn-primary my-1">Uygula</button>
    </form></div>
    
    <!-- KATEGORİ BÖLÜM -->
    
    <!-- ORTA BÖLÜM -->
    <div class="row">
    <?php 
    @$hareket=$_GET["hareket"];
    switch($hareket):
    
    case"uruncek";
    @$katid=$_GET["id"];
    $stok->urunlericek($veritabani,$katid);
    break;
    default:
    $stok->tumurunler($veritabani);
    endswitch;
    
    
    
     ?>
    
     <!-- LİSTELEME İSKELET
    
    <table class="table table-hover text-center">
        <thead>
          <tr>
            <th>Ürün Adı</th>
            <th>Stok Durumu</th>
            <th>İşlem</th>
          </tr>
        </thead>
        
        <tbody>
        
          <tr>
            <td>Ürün Adı</td>
            <td><b class="text-danger">000</b></td>
            <td><input name="guncel" type="submit" class="btn btn-outline-success" value=">" style="margin-bottom:3px; " /></td>
          </tr>
       <!-- EKLEMELER BURADAN DEVAM EDECEK 
       
          
        </tbody>
      </table>
    -->
    
    
    
    
    
    <!-- KUTU LİSTENİN İSKELETİ
    
    		<div class="col-md-1 table-bordered " id="kutuliste">        
            <div class="row" style="text-align:center">
            <div class="col-md-12" >Ürün Adı</div> 
              <div class="col-md-12"><b class="text-danger">Stok :</b></div> 
            <div class="col-md-12"><input name="guncel" type="submit" class="btn btn-outline-success" value=">" style="margin-bottom:3px; " /></div>        
            </div>
            
            </div>
            
     -->   
    		
    </div>
    <!-- ORTA BÖLÜM -->
    
    
    
    
    
    
    </div>
    
    <div class="container table-bordered table-info text-center">
    <!-- SAYFALAMA BÖLÜM -->
    <div class="row" style="min-height:30px;">
    		<div class="col-md-12">SAYFALAMA</div>		
    </div>
    <!-- SAYFALAMA BÖLÜM -->
    </div>
    
    </body>
    </html>
  • 10-01-2019, 18:05:00
    #2
    tüm pdo işlemlerini do catch içine alıp dener misiniz
  • 10-01-2019, 18:07:36
    #3
    $sorgu2="select * from urunler where katid = :katid";
    $verson2=$veritabani->prepare($sorgu2);
    $verson2->execute(["katid" => $katid]);
    Sorgu içerisinde değişken kullanmayın, değişkenleri ya execute içinde ya da bindparam şeklinde yapın, ufak bir araştırmayla kaynak bulabilirsiniz.
  • 10-01-2019, 18:24:07
    #4
    otzidemajour adlı üyeden alıntı: mesajı görüntüle
    tüm pdo işlemlerini do catch içine alıp dener misiniz
    öncelikle zaman ayırıp cevapyazdığınız için cok teşekkürler hocam
    ama dediğiniz gibi yaptım olmadı
    sorun urunlericek fonksiyonunu yazarklen olustu


    Scarecrow adlı üyeden alıntı: mesajı görüntüle
    $sorgu2="select * from urunler where katid = :katid";
    $verson2=$veritabani->prepare($sorgu2);
    $verson2->execute(["katid" => $katid]);
    Sorgu içerisinde değişken kullanmayın, değişkenleri ya execute içinde ya da bindparam şeklinde yapın, ufak bir araştırmayla kaynak bulabilirsiniz.
    hocam tekrardan zaman ayırıp cevap yazdığınız için teşekkürler
    dediğiniz gibi yaptım dreamwiver hata olarak kabul etti kodunuzu ,yani sonuc alamadım hata devam ediyor
  • 10-01-2019, 18:28:46
    #5
    ozgun58 adlı üyeden alıntı: mesajı görüntüle
    öncelikle zaman ayırıp cevapyazdığınız için cok teşekkürler hocam
    ama dediğiniz gibi yaptım olmadı
    sorun urunlericek fonksiyonunu yazarklen olustu




    hocam tekrardan zaman ayırıp cevap yazdığınız için teşekkürler
    dediğiniz gibi yaptım dreamwiver hata olarak kabul etti kodunuzu ,yani sonuc alamadım hata devam ediyor
    Hata olarak kabul etmesi zor benim gördüğüm bir hata yok yazdığım kodda.Notepad++ gibi uygulamalarla çalışırsanız aslında daha iyi olur.Büyük ihtimalle dediğim olaydan kaynaklanıyor o hata.
  • 10-01-2019, 18:36:39
    #6
    Scarecrow adlı üyeden alıntı: mesajı görüntüle
    Hata olarak kabul etmesi zor benim gördüğüm bir hata yok yazdığım kodda.Notepad++ gibi uygulamalarla çalışırsanız aslında daha iyi olur.Büyük ihtimalle dediğim olaydan kaynaklanıyor o hata.
    hocam gercekten ilgi ve alakanızdan dolayı cok çok teşekkürler

    udmyden kurs aldım hoca stok takip yazıyor bende mantığını anlayıp kendim yazıyorum , mantığını anlayıp kendim yazdım yani hocamın yazdığı gibi yazdım hocanın yazdığı kodlara bakıyorum aynı ama bende böyle hata veriyor yani
    bir yeri eksik yapıyorum farketmiyorum yoksa dediğiniz gibi olcağını düşünmüyorum hocam oda deişkeni sorguda kullanıyor
  • 10-01-2019, 18:40:04
    #7
    ozgun58 adlı üyeden alıntı: mesajı görüntüle
    hocam gercekten ilgi ve alakanızdan dolayı cok çok teşekkürler

    udmyden kurs aldım hoca stok takip yazıyor bende mantığını anlayıp kendim yazıyorum , mantığını anlayıp kendim yazdım yani hocamın yazdığı gibi yazdım hocanın yazdığı kodlara bakıyorum aynı ama bende böyle hata veriyor yani
    bir yeri eksik yapıyorum farketmiyorum yoksa dediğiniz gibi olcağını düşünmüyorum hocam oda deişkeni sorguda kullanıyor
    Rica ederim de yalnız onu yazan hocanız ya üşenmiş ya da gerçekten yanlış anlamayın ama pdo hakkında bilgisi yok, zaten herkes sırf bunlar yüzünden mysql'i terkedip pdo'ya geçti bindparam vs yapmadıktan sonra pdo kullanmanın bir anlamı yok.Teamviewer bilgilerinizi pm atarsanız bir bakalım.
  • 10-01-2019, 18:46:36
    #8
    Scarecrow adlı üyeden alıntı: mesajı görüntüle
    Rica ederim de yalnız onu yazan hocanız ya üşenmiş ya da gerçekten yanlış anlamayın ama pdo hakkında bilgisi yok, zaten herkes sırf bunlar yüzünden mysql'i terkedip pdo'ya geçti bindparam vs yapmadıktan sonra pdo kullanmanın bir anlamı yok.Teamviewer bilgilerinizi pm atarsanız bir bakalım.

    494 252 711 54ixy6 buyrun hocam
  • 10-01-2019, 19:13:28
    #9
    Eğer yeni başladıysanız yolun başındayken sınıf kullanımlarını biraz değiştirin.

    - Öncelikle bir tane "veritabani" isimli sınıf oluşturun. Bu sınıf içerisinde PDO objesini örnekleyip, $db isimli bir değişkene objeyi atayın.
    - Daha sonra "veritabani" isimli sınıftan "stok" isimli yeni bir sınıfı extend edin (veritabanı sınıfının özelliklerinin stok isimli sınıf tarafından miras alınmasını sağlayın)
    - "Stok" sınıfı içerisindeki metotların hiç birinde html kullanmayın. Eğer veritabanından veri sorguladığınız zaman sonuç dönmüyorsa false, dönüyorsa dizi değişken olarak verilerin dönmesini sağlayın.
    - Html ile ilişkili kısımları ise sınıfı kullanacağınız yerde yapın.

    <?php
    
    class Veritabani {
    
        protected $db;
        public function __construct() {
            try {
                $this->db = new PDO("mysql:host=localhost;dbname=stoktakip;charset=utf8", "root","123456");
                $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            }
            catch(PDOException $e)
            {
                die($e->getMessage());
            }
        }
    
    }
    
    class Stok extends Veritabani{
    
        public function __construct() {
            parent::__construct();
        }
        public function kategori_ust() {
            $sql = "select * from kategori";
            $sorgu = $this->db->prepare($sql);
            $sorgu->execute();
            return $sorgu->rowCount() > 0 ? $sorgu->fetchAll(PDO::FETCH_ASSOC) : false;
        }
    
        public function tum_urunler() {
            $sql = "select * from urunler";
            $sorgu = $this->db->prepare($sql);
            $sorgu->execute();
            return $sorgu->rowCount() > 0 ? $sorgu->fetchAll(PDO::FETCH_ASSOC) : false;
        }
    
        public function urunleri_cek($kategori) {
            $sql = "select * from urunler where katid = ?";
            $sorgu = $this->db->prepare($sql);
            $sorgu->execute(array($kategori));
            return $sorgu->rowCount() > 0 ? $sorgu->fetchAll(PDO::FETCH_ASSOC) : false;
        }
    
    }