mysql_fetch_array() Hatası..YARDIM

Kodla Büyü

SheqiL_

Üye
Mesajlar
13
merhabalar.ben phpde kayıtları listeletmek için php kodu yazıyorum ama mysq_fetch_array() hatası veriyor.Yardımlarını bekliyorum.Şimdiden teşekkür ederim.
Kod aşagıdadır.

Kod:
<table width="200" border="1">
  <tr><td>ID</td>
    <td>Basl&#305;k</td>
    <td>&#304;&ccedil;erik</td>
    <td>Yazar</td>
    <td>mail</td>
  </tr>
  <?php
include('db.php');
$sql=mysql_query("select * from defter where id");
$getir=mysql_fetch_array($sql);
while($getir){
?>
  <tr>
  	<td><?php echo $getir['id']; ?></td>
    <td><?php echo $getir['baslik']; ?></td>
    <td><?php echo $getir['icerik']; ?></td>
    <td><?php echo $getir['yazar']; ?></td>
    <td><?php echo $getir['mail']; ?></td>
  </tr>
 <?php } ?>
</table>
 
2 Mantık hatası var,
1- sql cümlesi eksik, phpmyadmin , sql tabından sorguyu çalıştırıp da görebilirsibiz.
select * from defter where id değilde
select * from defter where id = 6 yada select * from defter where id = $id
şeklinde olmali,
2- yukarıdaki sorgu cümlesi, calisitildiğinda, zaten tek kayit getirir. yani while dongusune gerek yok..
çok kayit gelecek id alani primary key değil derseniz, o zaman donguyle birlikte mysql_num_rows u kullanmalisiniz.
ornek kod gecebilirim ?
 
mysq_fetch_array() hatası eğer veritabanında sql sorgunuz sonucunda bir değer dönmezse olur.
Senin sql sorgunda id değeri belirtmemişsin. Ayrıca eğer ...WHERE id=6 gibi birşey sadece bir kaydı işaret eder. Ama bunun yerine tüm kayıtları görmek için id>0 gibi bir karşılaştırma ifadesi kullanırsan veritabanında tüm kayıtları While döngün ile listeleyebilirsin.
 
BBNET
Geri
Üst