• 14-05-2009, 15:27:14
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar kendi çapımda php'de karman çorman, yaparak bozarak birşeyler çıkarmaya, mantığı kavramaya çalışıyorum lakin bir sorunum var.

    Şimdi sayfa.php?id=veritabanınındaki tablo id şeklinde yapmak istiyorum.

    Bunuda sayfa.php'deki aşağıdaki kod ile hallettim.

    <?
    $id = $_GET["id"];
    $sorgu=mysql_query ("select*from sayfa where id=$id");
    while ($verim=mysql_fetch_assoc($sorgu) ) {
    echo ''.stripslashes($verim['icerik']).' ';
    }?>
    Yalnız tarayıcıya sayfa.php yazdığım zaman aşağıdaki hatayı veriyor.

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Documents and Settings\LikeLy\Desktop\xampp\htdocs\likely\sayfa.php on line 7
    Bu hatayı nasıl çözebilirim ? Yani aslında yapmak istediğim şeyi siz anladınız başka türlü nasıl yapabilirim.

    Direk kodlar ile uygulamalı şekilde anlatabilirseniz çok iyi olur.

    Şimdiden, teşekkürler.
  • 14-05-2009, 15:34:01
    #2
    Misafir
    <?php
    $id = $_GET["id"];
    $sorgu = mysql_query("SELECT * FROM sayfa where id = '$id'");
    while ($yaz = mysql_fetch_object($sorgu)) {
    echo "$yaz->veri";
    }
    ?>
  • 14-05-2009, 15:55:27
    #3
    <?
    if(!$_GET['id']){echo 'id değeri girmelisiniz'; exit(); }
    
    $id = $_GET["id"];
    $sorgu=mysql_query ("select*from sayfa where id=$id");
    while ($verim=mysql_fetch_assoc($sorgu) ) {
    echo ''.stripslashes($verim['icerik']).' ';
    }?>
    id değeri olmayınca mysql sorgun select*from sayfa where id= şeklini alıyor dolayısıyla hata veriyor en başta if ile değer olup olmadığını sorgularsan sorun kalmayacaktır.
  • 14-05-2009, 15:57:54
    #4
    Üyeliği durduruldu
    ByMsT adlı üyeden alıntı: mesajı görüntüle
    <?php
    $id = $_GET["id"];
    $sorgu = mysql_query("SELECT * FROM sayfa where id = '$id'");
    while ($yaz = mysql_fetch_object($sorgu)) {
    echo "$yaz->veri";
    }
    ?>
    Bu seferde sayfa.php?id=1 yazdığımda 1 idli içerik çekilmiyor.
  • 14-05-2009, 16:02:24
    #5
    Üyeliği durduruldu
    torrentz adlı üyeden alıntı: mesajı görüntüle
    <?
    if(!$_GET['id']){echo 'id değeri girmelisiniz'; exit(); }
     
    $id = $_GET["id"];
    $sorgu=mysql_query ("select*from sayfa where id=$id");
    while ($verim=mysql_fetch_assoc($sorgu) ) {
    echo ''.stripslashes($verim['icerik']).' ';
    }?>
    id değeri olmayınca mysql sorgun select*from sayfa where id= şeklini alıyor dolayısıyla hata veriyor en başta if ile değer olup olmadığını sorgularsan sorun kalmayacaktır.
    Eyv. kardeşim sağolasın sayende hallettim. +rep
  • 14-05-2009, 18:14:56
    #6
    Üyeliği durduruldu
    Arkadaşın dediği gibi if kontrolcüsüyle yapılabilir. Sadece "ID" değerinin boş olduğu için değil, yazılan ID değerine sahip bir kayıt yoksa da hata sayfasına yönlendirebilirsin ya da hata basabilirsin. örneğin adam ID=abcsdasd diye birşey girdi, o zaman yine beyaz sayfa çıkıcaktır. Bunun önüne de;

    $id = mysql_real_escape_string($_GET['id']);
    $query = mysql_query("SELECT * FROM sayfa WHERE id='$id' ");

    if (!$query) {
    echo 'böyle bir kayıt bulunamadı';
    }

    else {
    while ($data = mysql_fetch_array($query)) {
    echo 'ne yazdırmak istenirse datadan...';
    }
    }

    Saygılarımla.