Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

soru cevap

Konu, 'PHP' kısmında sato tarafından paylaşıldı.

  1. sato

    sato Yeni Üye

    Kayıt:
    26 Ekim 2002
    Mesajlar:
    2
    Beğenilen Mesajlar:
    0
    Şehir:
    Samsun
    --------------
    soruların tutulacagı tablo
    --------------------------
    create table sorular {
    soru_id int(10) not null auto_increment,
    adi varchar(50) not null,
    email varchar(50) not null,
    soru text not null,
    primary key (soru_id));

    -------------
    sorulara ait cevapların tutulacagı tablo
    -------------------------
    create table cevaplar {
    cevap_id int(11) not null auto_increment,
    adi varchar(50) not null,
    email varchar(50) not null,
    cevap text not null,
    primary key (cevap_id));

    -------------------------------------------


    olması gereken her soruya ve cevaba bir id numarası atanmalı..öğlede oldu..burda sorun yok...

    sorun şu.....mesela 1 soru soruldu ve bu soruya 3 adet cevap verildi....cevabları görmek için linke tıklıyorum....sorunun üstte cevaplarında altta olması lazım. ekranda gorunen ise soru ve ilk cevap..diğer cevaplar yok daha sonra başka bır soru yazdım ve bişey farkettim ..ilk soruya yazılan 2ci cevap son yazdığım yani 2ci soruda gözüküyodu....olması gereken son yazdıgım sorunun cevap kısmı boş olmalıydı....şimdi bu 3 cevabın 1ci soruya ait olması lazım ama nasıl..
    yani soru ve o soruya ait cevapları birbirine nasıl bağlayacaz..

    acaba CEVAP kayıt şeklinimi yanlış yapıyorum...mesela .txt ile kayıt ve buna ek yapma var "a" karakteriyle...acaba database kullanırkende böyle bir özellikmi var....

    $cevapkayit=mysql_query("insert into cevap (adi,email,cevap) values ('$adi','$email','$cevap')");

    inşallah karşık yazmamışımdır...şimdiden çok teşekkür...:aglama:
     
  2. redial

    redial Misafir

    Belki karisik degil ama, eksik oldugu kesin...

    Zira esas yazman gereken, soru ve cevaplari basarken kullandigin sql sorgusu...
    Hata da orada gibi gorunuyor...
     
  3. HunTER

    HunTER ...

    Kayıt:
    15 Ağustos 2002
    Mesajlar:
    8,684
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Programlama
    Şehir:
    İstanbul
    Daha oncede cevaplamıstım ama sanırım yeterlı olmamıs.. Oyuzden konuyu bıraz daha acıyım ıstersen..

    Oncelıke soyle tek bır tablo olustur..

    PHP:
    create table forum{
    id int(10not null auto_increment,
    adi varchar(50not null,
    email varchar(50not null,
    icerik text not null,
    hedef int(10not null,
    primary key (id));
    Daha sonra yapman gereken forum.php adında tek bır script yazmak..

    PHP:
    #Soru görüntüle
    if($goruntule)
    {
     
    #Soruyu görüntüle
     #Yanı id'si $goruntule'ye esıt olan kayıtlar
     
    $soru mysql_query("select * from forum where id=$goruntule")

     while (
    $soru mysql_fetch_array($soru))
     {
     echo 
    $soru["id"]." ".$soru["ad"]." ".$soru["email"]."<br>";
     echo 
    $soru["icerik"]."<br>";
     
    #Eger cevap yazılacaksa cevabın hangı soruya aıt oldugunu
     #$cevap degıskenı ıle belırtıyoruz
     
    echo "<a href=\"forum.php?cevap=$soru[id]\">Cevap Yaz</a>";
     
    #Eger soru soruluyorsa $sor degıskenın degerını
     #0 olarak ayarlıyoruz
     
    echo "<a href=\"forum.php?sor=0\">Soru Sor</a><br>";
     }
     
    #Cevapları görüntüle..
     #Yanı hedefı $goruntule'ye esıt olan kayıtlar
     
    $cevap mysql_query("select * from forum where hedef=$goruntule")

     while (
    $cevap mysql_fetch_array($cevap))
     {
     echo 
    $cevap["id"]." ".$cevap["ad"]." ".$cevap["email"]."<br>";
     echo 
    $cevap["icerik"]."<br>";
     }
    }
    #Soru sor
    else if($sor)
    {
     
    #Form gönderilmişse.
     
    if($gonder)
     {
      
    mysql_query("insert into forum values('','$ad','$email','$icerik','$sor')")
      
    #En son eklenen idyi buluyoruz
      
    $id mysql_insert_id();
      
    header("Location:forum.php?goruntule=$id");
     }
     
    #Formu bas
     
    else
     {
     echo=
    "
     <form method='POST' action='form.php?sor=
    $sor'>
      <input type='text' name='ad' size='20'><br>
      <input type='text' name='email' size='20'><br>
      <textarea rows='2' name='icerik' cols='20'></textarea><br>
      <input type='submit' value='Gönder' name='gonder'></p>
     </form>"
    ;
     }
    }
    #Cevap yaz
    else if($cevap)
    {
     
    #Form gönderilmişse
     
    if($gonder)
     {
      
    mysql_query("insert into forum values('','$ad','$email','$icerik','$cevap')")
      
    header("Location:forum.php?goruntule=$cevap");
     }
     
    #Formu bas
     
    else
     {
     echo=
    "
     <form method='POST' action='form.php?cevap=
    $cevap'>
      <input type='text' name='ad' size='20'><br>
      <input type='text' name='email' size='20'><br>
      <textarea rows='2' name='icerik' cols='20'></textarea><br>
      <input type='submit' value='Gönder' name='gonder'></p>
     </form>"
    ;
     }
    }
    #Tüm soruları görüntüle
    else
    {
     
    $soru mysql_query("select * from forum where hedef=0")

     while (
    $soru mysql_fetch_array($soru))
     {
     echo 
    $soru["id"]." ".$soru["ad"]." ".$soru["email"]."<br>";
     echo 
    $soru["icerik"]."<br>";
     echo 
    "<a href=\"forum.php?goruntle=$soru[id]\">Görüntüle</a><br>";
     }
    }
    Ben burda ıskeletını verdım ve aralarada bı kac acıklama ekledım.. Ama tekrar ozetlemem gerekırse.. Bır kaydın 'soru' olabılmesı ıcın 'hedef' ının 0, 'cevap' olabılmesı ıcınse 'hedef' ının 0 dan buyuk (yanı cevabı oldugu sorunun idsi) olması gerekıyor..

    Bu yuzden ılk satırlarda $sor degıskenın degerı 0 ve $cevap degıskenının degerı ıse baglı oldugu sorunun id'si. Umarım yazdıgım scrıpt calısır (denemedım cunku) ve konuyu yeterınce acmısımdır..
     
    Son düzenleme yönetici tarafından yapıldı: 28 Ekim 2002