[PHP] Çözemediğim Hata 2

ddddddddddd

Profesör
Katılım
5 Ocak 2011
Mesajlar
1,851
Reaksiyon puanı
19
Puanları
218
Kod:
<?php
					$sql="Select * From articless order by id desc LIMIT 0,5";
					$query=mysql_query($sql);
					while($read=mysql_fetch_assoc($query)) {
					$id     =$read['id'];
					$title  =$read['title'];
					echo "<li><a href='#'>$title</a></li>";
					}
				    ?>



Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\blog\index.php on line 69

hatası alıyorum yardmlarınızı bekliyorum.
 

muratveb

Profesör
Katılım
23 Temmuz 2009
Mesajlar
2,197
Reaksiyon puanı
56
Puanları
228
Şöyle dene bir
PHP:
<?PHP
  $sql              = mysql_query("SELECT * FROM articless ORDER BY id DESC LIMIT 0,5");
  While($aktar = mysql_fetch_assoc($sql)){
  $id               = $aktar['DB_id'];
  $title            = $aktar['DB_title'];
  echo '<li><a href="#">'.$title.'</a></li>';
  }

?>
 

ddddddddddd

Profesör
Katılım
5 Ocak 2011
Mesajlar
1,851
Reaksiyon puanı
19
Puanları
218
Şöyle dene bir
PHP:
<?PHP
  $sql              = mysql_query("SELECT * FROM articless ORDER BY id DESC LIMIT 0,5");
  While($aktar = mysql_fetch_assoc($sql)){
  $id               = $aktar['DB_id'];
  $title            = $aktar['DB_title'];
  echo '<li><a href="#">'.$title.'</a></li>';
  }

?>

o zamanda bu Parse error: syntax error, unexpected '}', expecting ',' or ';' in C:\wamp\www\blog\index.php on line 72 hatayı verdi.
 

muratveb

Profesör
Katılım
23 Temmuz 2009
Mesajlar
2,197
Reaksiyon puanı
56
Puanları
228
o zamanda bu Parse error: syntax error, unexpected '}', expecting ',' or ';' in C:\wamp\www\blog\index.php on line 72 hatayı verdi.

O hatayı vermemesi lazım .

PHP:
<?PHP 
  $sql              = mysql_query("SELECT * FROM articless ORDER BY id DESC LIMIT 0,5"); 
  While($aktar = mysql_fetch_assoc($sql))
  { 
  $id               = $aktar['DB_id']; 
  $title            = $aktar['DB_title']; 
  echo '<li><a href="#">'.$title.'</a></li>'; 
  } 

?>
 

ddddddddddd

Profesör
Katılım
5 Ocak 2011
Mesajlar
1,851
Reaksiyon puanı
19
Puanları
218
O hatayı vermemesi lazım .

PHP:
<?PHP 
  $sql              = mysql_query("SELECT * FROM articless ORDER BY id DESC LIMIT 0,5"); 
  While($aktar = mysql_fetch_assoc($sql))
  { 
  $id               = $aktar['DB_id']; 
  $title            = $aktar['DB_title']; 
  echo '<li><a href="#">'.$title.'</a></li>'; 
  } 

?>

hocam halısın ilk verdiğinizde ?> tagını unutmuşum fakat 2 sindede aynı sorun devam ediyor.

hata3.png
 

muratveb

Profesör
Katılım
23 Temmuz 2009
Mesajlar
2,197
Reaksiyon puanı
56
Puanları
228
hocam halısın ilk verdiğinizde ?> tagını unutmuşum fakat 2 sindede aynı sorun devam ediyor.

hata3.png

Yukardaki tabloda 'id' diye bir alan yokki ? int var ? Neden id çekmişsiniz sql ile ?

Doğrusu bu olcak şimdi;
PHP:
<?PHP  
  $sql              = mysql_query("SELECT * FROM articless ORDER BY id DESC LIMIT 0,5");  
  While($aktar = mysql_fetch_assoc($sql)) 
  {  
  $int              = $aktar['int'];  
  $title            = $aktar['title'];  
  echo '<li><a href="#">'.$title.'</a></li>';  
  }  

?>
 

ddddddddddd

Profesör
Katılım
5 Ocak 2011
Mesajlar
1,851
Reaksiyon puanı
19
Puanları
218
Yukardaki tabloda 'id' diye bir alan yokki ? int var ? Neden id çekmişsiniz sql ile ?

Doğrusu bu olcak şimdi;
PHP:
<?PHP  
  $sql              = mysql_query("SELECT * FROM articless ORDER BY id DESC LIMIT 0,5");  
  While($aktar = mysql_fetch_assoc($sql)) 
  {  
  $int              = $aktar['int'];  
  $title            = $aktar['title'];  
  echo '<li><a href="#">'.$title.'</a></li>';  
  }  

?>

dostum çok sağol sende olmasan.iletişime geçsem aslında senle :)
 

muratveb

Profesör
Katılım
23 Temmuz 2009
Mesajlar
2,197
Reaksiyon puanı
56
Puanları
228
Her daim burdayım. Elimden geldğince bilgim yettiği kadar yardımcı olurum hocam ne demek yeterki faydam olsun biraz da olsa :) Kolay gelsin.
 

muratveb

Profesör
Katılım
23 Temmuz 2009
Mesajlar
2,197
Reaksiyon puanı
56
Puanları
228
Rica ederim ama yukarda gözden kaçırdığım bir şey var.

$sql = mysql_query("SELECT * FROM articless ORDER BY id DESC LIMIT 0,5");

değil,

$sql = mysql_query("SELECT * FROM articless ORDER BY int DESC LIMIT 0,5");

olmalıydı. Bu gözümden kaçmış sonradan fark ettim. Bilginiz olsun. İyi geceler iyi çalışmalar.
 

ddddddddddd

Profesör
Katılım
5 Ocak 2011
Mesajlar
1,851
Reaksiyon puanı
19
Puanları
218
Rica ederim ama yukarda gözden kaçırdığım bir şey var.

$sql = mysql_query("SELECT * FROM articless ORDER BY id DESC LIMIT 0,5");

değil,

$sql = mysql_query("SELECT * FROM articless ORDER BY int DESC LIMIT 0,5");

olmalıydı. Bu gözümden kaçmış sonradan fark ettim. Bilginiz olsun. İyi geceler iyi çalışmalar.

ben halletim hocam sağol :)
 

Turab Garip

Dekan
Emektar
Katılım
30 Mayıs 2007
Mesajlar
6,902
Reaksiyon puanı
181
Puanları
1,243
Sorguları çalıştırıp çıktıları aldıktan sonra mysql_free_result($sql); komutunu çalıştırarak RAM'i boşaltıp sunucuyu rahatlatmak iyi olur. Nitekim script çalışma zamanı sonuna kadar sorgu sonuçları birikeceğinden, bu işlemi yapmak performansa katkı sağlar.
 

Ozan Akcora

Öğrenci
Katılım
10 Mayıs 2011
Mesajlar
11
Reaksiyon puanı
0
Puanları
0
Çözümü bulmuşsunuz zaten ama; aşadığın problemde, gözden kaçan hataları görebilmek için,

mysql_query fonksiyonunu çalıştırdıktan sonra, echo mysql_error(); dersen, query'de bir hata varsa hatayı basacaktır. Aldığın hata query'de bir hata olduğu zaman oluyor.
 

ddddddddddd

Profesör
Katılım
5 Ocak 2011
Mesajlar
1,851
Reaksiyon puanı
19
Puanları
218
Kod:
<div id="main">	
        <?PHP
        $sql = "SELECT * FROM articless ORDER BY id desc LIMIT 0,3" ;  
  $query = mysql_query($sql);
  while($aktar=mysql_fetch_assoc($query)){
    $id     =$aktar['id'];
    $title  =$aktar['title'];
    $tarih  =$aktar['date']; 
    $articles =$aktar['acticles'];
    $hit     =$aktar['hit']; 
  
?>	
		
		
			<div class="post">
			
				<a name="TemplateInfo"></a>	
				<h1><?php echo $title; ?></h1>
				<p><?php echo $articles; ?></p>
                
				
				<p class="post-footer align-right">					
					<a href="index.php?id=<?php echo $id; ?>" class="readmore">[....]Devamı</a>
					<a href="index.html" class="comments">Okunma <?php echo $hit; ?></a>
					<span class="date"><?php echo $date;?></span>	
				</p>
				
			</div>
			<br />
		<?php
        }
        ?>

resimhata.png


_________________

hata3-1.png



Çözemediğim bir hata daha arkadaşlar.

---------- Post added at 13:00 ---------- Previous post was at 11:17 ----------

hatayı çözdüm herkese teşekkür ederim.
 

Ozan Akcora

Öğrenci
Katılım
10 Mayıs 2011
Mesajlar
11
Reaksiyon puanı
0
Puanları
0
$query = mysql_query($sql);

Bu satırdan sonra echo mysql_error(); yazmanı tavsiye ederim. Onu yazdığında SQL ile alakalı hataları ayrıca yazacaktır. Çözmeni hızlandırır.
 

ddddddddddd

Profesör
Katılım
5 Ocak 2011
Mesajlar
1,851
Reaksiyon puanı
19
Puanları
218
Kod:
<?PHP
        $id = $_GET['id'];
        if(isset($id)){
            $sql = "Select * From articless where id=$id";
            } 
            else {
        
        $sql = "SELECT * FROM articless ORDER BY id desc LIMIT 0,3" ;  
  }
  $query = mysql_query($sql);
  while($aktar=mysql_fetch_assoc($query)){
    $id         =$aktar['id'];
    $title      =$aktar['title'];
    $date       =$aktar['date']; 
    $articles   =$aktar['articles'];
    $hit        =$aktar['hit']; 
  
?>

Notice: Undefined index: id in C:\wamp\www\blog\index.php on line 177

hatası alıyorum arkadaşlar.bulamadım hatayı
 

muratveb

Profesör
Katılım
23 Temmuz 2009
Mesajlar
2,197
Reaksiyon puanı
56
Puanları
228
Kod:
<?PHP
        $id = $_GET['id'];
        if(isset($id)){
            $sql = "Select * From articless where id=$id";
            } 
            else {
        
        $sql = "SELECT * FROM articless ORDER BY id desc LIMIT 0,3" ;  
  }
  $query = mysql_query($sql);
  while($aktar=mysql_fetch_assoc($query)){
    $id         =$aktar['id'];
    $title      =$aktar['title'];
    $date       =$aktar['date']; 
    $articles   =$aktar['articles'];
    $hit        =$aktar['hit']; 
  
?>
Notice: Undefined index: id in C:\wamp\www\blog\index.php on line 177

hatası alıyorum arkadaşlar.bulamadım hatayı

Sql ile çektiğiniz ve $id'ye atadığınız kısmı farklı bir değişken ismine atayn sanırım ondan öyle bir hata alıyorsunuz. Tam olarak içerik ne bilmiyorum ama aklıma gelen o oldu. Çünkü üsttede alttada id'ye bişey atamaya çalışmıssınız. Alttakini $idd olarak değiştirip bir deneyin.

PHP:
<?PHP
        $id = $_GET['id'];
        if(isset($id)){
            $sql = "Select * From articless where id=$id";
            } 
            else {
        
        $sql = "SELECT * FROM articless ORDER BY id desc LIMIT 0,3" ;  
  }
  $query = mysql_query($sql);
  while($aktar=mysql_fetch_assoc($query)){
    $idd        =$aktar['id'];
    $title      =$aktar['title'];
    $date       =$aktar['date']; 
    $articles   =$aktar['articles'];
    $hit        =$aktar['hit']; 
  }
?>
gibi.

Ve programın While döngüsünü kapatmayı unutmayın. Yazdığınız programda } süslü parantezi kapatmamışsınız :) Onuda kapatın .
 

ddddddddddd

Profesör
Katılım
5 Ocak 2011
Mesajlar
1,851
Reaksiyon puanı
19
Puanları
218
hocam çözdüm hata değil uyarıymış başına @koydum gitti.blog kodluyorum bu arada.
 

muratveb

Profesör
Katılım
23 Temmuz 2009
Mesajlar
2,197
Reaksiyon puanı
56
Puanları
228
hocam çözdüm hata değil uyarıymış başına @koydum gitti.blog kodluyorum bu arada.

Evet tabi üstteki id atanmazssa undefined hatasına düşer. Yada boş olduğu durumlarda. Her sayfalama konusunda Get ile veri çekerken boş olma ihtimalinden bende sürekli hata bastırma kodu koyuorum. İyi yapmışsınz.
 

Turab Garip

Dekan
Emektar
Katılım
30 Mayıs 2007
Mesajlar
6,902
Reaksiyon puanı
181
Puanları
1,243
Oradaki uyarı, söz konusu dizi elemanının olmadığını söylüyor; yani aslında çok önemli bir uyarı. @ operatörü ile sadece hata bastırılmış olur; onun yerine index neden atanmamış bunu tespit edip o hatayı çözmek daha iyi olacaktır. Yoksa yazıların ID'si alınamadığı için ileride işlem yaparken başka hatalarla karşılaşırsın.

Yapman gereken, URL ile bir ID geçilip geçilmediğini kontrol etmek. Şu satırın üstüne:
Kod:
        $id = $_GET['id'];

Şunu yapıştırman uyarıyı kaldıracaktır:
Kod:
        if (isset($_GET['id']))
 
Üst