• 25-09-2012, 00:15:58
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Selamlar

    <?php
    $Aranacak=$_POST['Aranan'];
    
    $Sorgu = mysql_query("SELECT Ansiklopedi_Soru.*, Ansiklopedi_Cevap.*
    					FROM Ansiklopedi_Cevap
    					LEFT JOIN Ansiklopedi_Soru ON Ansiklopedi_Cevap.Soru_ID = Ansiklopedi_Soru.ID 
    					WHERE Ansiklopedi_Cevap.Cevap LIKE '%$Aranacak%' Order by Ansiklopedi_Soru.ID
    					LIMIT 10");
    
    if ($Sorgu){
    ?>
    
    
    <?
    while($sonuc=@mysql_fetch_array($Sorgu)){
    ?>
    <p>&nbsp;</p>
    <p align="left"><a href="http://www.fotografdeposu.com/ansiklopedi.php?id=<?php echo $sonuc['ID']; ?>"><?php echo $sonuc['Soru']; ?></a><br /><?php echo $sonuc['Cevap']; ?></p>
    <p>&nbsp;</p>
    
    <?
    }
    ?>
    Şeklinde bir kodum var. Ansiklopedi_Soru ve Ansiklopedi_Cevap tablolarımın ikisinde de id diye bir id sütunu var.

    şu haliyle döngü Ansiklopedi_Cevap sütunundaki ID numarasını çekiyor. Ama Ansiklopedi_Soru tablosunun ID sini çekmeli [] içine Ansiklopedi_Soru.ID yazdığımda bomboş bir ekran çıkıyor.

    bu sorunu nasıl giderebilirim?
  • 25-09-2012, 00:24:18
    #2
    Çakışan sütun isimlerini farklı isimlere bağlayabilirsiniz.

    SELECT a.id, a.Cevap, b.id As SoruID, b.Soru
    FROM Ansiklopedi_Cevap As a
    LEFT JOIN Ansiklopedi_Soru As b ON a.Soru_ID = b.ID
    WHERE a.Cevap LIKE '%$Aranacak%' Order by b.ID
    LIMIT 10
  • 25-09-2012, 00:25:41
    #3
    LEFT JOIN Ansiklopedi_Soru ON (Ansiklopedi_Cevap.Soru_ID = Ansiklopedi_Soru.ID) şeklinde denediğinizde ne yapıyor
  • 25-09-2012, 00:29:30
    #4
    Teşekkür ediyorum bu aklıma gelmemişti

    Bir soru daha

    <?php
    $Aranacak=$_POST['Aranan'];
    
    $Sorgu = mysql_query("SELECT Ansiklopedi_Soru.*, Ansiklopedi_Cevap.*, Ansiklopedi_Soru.ID AS SORUID
    					FROM Ansiklopedi_Cevap
    					LEFT JOIN Ansiklopedi_Soru ON Ansiklopedi_Cevap.Soru_ID = Ansiklopedi_Soru.ID 
    					WHERE Ansiklopedi_Cevap.Cevap LIKE '%$Aranacak%' Order by Ansiklopedi_Soru.ID
    					LIMIT 10");
    
    if ($Sorgu){
    ?>
    
    
    <?
    while($sonuc=@mysql_fetch_array($Sorgu)){
    ?>
    <p>&nbsp;</p>
    <p align="left"><a href="http://www.fotografdeposu.com/ansiklopedi.php?id=<?php echo $sonuc['SORUID']; ?>"><?php echo $sonuc['Soru']; ?></a><br /><?php echo $sonuc['Cevap']; ?></p>
    <p>&nbsp;</p>
    
    <?
    }
    ?>
    
    
    <?
    }
    else{
    echo 'Yok öyle bişi';
    } 
    
    ?>
    Sorgudan cevap gelmezse Yok öyle bişi yazsın istiyorum. Ki ona göre oluşturduğumu sanıyorum kodlarımı. Burada hata nerede dersiniz peki?
  • 25-09-2012, 00:32:41
    #5
    while içinde kontrolü yapabilirsiniz
  • 25-09-2012, 08:58:44
    #6
    <?
    while($sonuc=@mysql_fetch_array($Sorgu)){
    ?>
    <p>&nbsp;</p>
    <?php if (trim($sonuc['Soru'])!="") echo 'Cevap yok'; { ?> 
    <p align="left"><a href="http://www.fotografdeposu.com/ansiklopedi.php?id=<?php echo $sonuc['SORUID']; ?>"><?php echo $sonuc['Soru']; ?></a><br /><?php echo $sonuc['Cevap']; } ?></p>
    if trim ekledim ama sonuç yine aynı. if mevzusunu mu yanlış yazdım acaba?
  • 25-09-2012, 09:40:54
    #7
    denediğim varyasyonlar

    <?php if (trim($sonuc['Soru'])) echo 'Cevap yok'; { ?>
    <?php if (trim($sonuc['Soru'])==""); echo 'Cevap yok'; { ?>
    <?php if ($sonuc['Soru']) echo 'Cevap yok'; { ?>
    <?php if ($sonuc['Soru']=="") echo 'Cevap yok'; { ?>
    sorgudan gelen cevap yoksa ekrana bir türlü cevap yok yazdıramadım
  • 25-09-2012, 11:06:46
    #8
    Mysql sorgusundan dönen satır sayısını kontrol ederek dönen değerin boş olup olmadığını kontrol edebilirsiniz.

    if(mysql_num_rows($sorgu) > 0){
    echo 'sonuçlar';
    }else{
    echo 'Sonuç yok.';
    }
  • 25-09-2012, 11:23:41
    #9
    yessssssssss

    çok teşekkür ediyorum