• 17-09-2012, 18:16:10
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    selamlar

    Left JOIN ile birleştirdiğim 2 tablom var.

    $rasgele = mysql_query("SELECT Ansiklopedi_Soru.*, Ansiklopedi_Cevap.*
    					FROM Ansiklopedi_Soru
    					LEFT JOIN Ansiklopedi_Cevap ON Ansiklopedi_Soru.ID = Ansiklopedi_Cevap.Soru_ID 
    					WHERE Ansiklopedi_Soru.ID='$id' ORDER BY RAND() LIMIT 1
    					Limit 1");
    benim istediğim rastgele bir ID seçsin (Ansiklopedi_Soru tablosundan) onunla karşılaşan cevaplar hangisiyle sonuç versin

    <?php
    // Döngü
    while($geldi=mysql_fetch_array($rasgele))	{
    	?>
    
    <p>&nbsp;</p>
        <p align="left"><strong>1: </strong><?php echo $geldi['Cevap']; ?> </p>
        <p align="right" class="kucuk_yazi">Yazan: <em><?php echo $geldi['Yazar']; ?></em><br>
        Tarih: <em><?php echo $geldi['Tarih']; ?></em></p>
        <p>&nbsp;</p>
    
    <?php
    }
    ?>
    yukarıdaki de benim döngüm.

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in şeklinde de hata alıyorum
  • 17-09-2012, 18:37:10
    #2
    LIMIT 1 lerden birisini silin
  • 17-09-2012, 18:42:56
    #3
    <? // ikinci bölüm
    $rasgele = mysql_query("SELECT Ansiklopedi_Soru.*, Ansiklopedi_Cevap.* 
                        FROM Ansiklopedi_Soru 
                        LEFT JOIN Ansiklopedi_Cevap ON Ansiklopedi_Soru.ID = Ansiklopedi_Cevap.Soru_ID  
                        WHERE Ansiklopedi_Soru.ID='$id' ORDER BY RAND() LIMIT 1");
    
    ?>
    
    <?php
    // Döngü
    while($gelen=mysql_fetch_array($rasgele))	{
    	?>
    
    <p>&nbsp;</p>
        <p align="left"><strong>1: </strong><?php echo $gelen['Cevap']; ?> </p>
        <p align="right" class="kucuk_yazi">Yazan: <em><?php echo $gelen['Yazar']; ?></em><br>
        Tarih: <em><?php echo $gelen['Tarih']; ?></em></p>
        <p>&nbsp;</p>
    
    <?php
    }
    ?>
    şeklinde düzenledim ama bu kez hata vermiyor fakat sonuç da vermiyor :S
  • 17-09-2012, 18:47:05
    #4
    Üyeliği durduruldu
    $id kismini bi kontrol et istersen post veya get mi geliyor
  • 18-09-2012, 08:16:01
    #5
    $id konusunda sorun varmış $id için satır sydırıp o aralıkta random attırdım oldu. son şekli aşağıdaki gibi belki birine lazım eder

    <? // ikinci bölüm
    $satirsayisi= mysql_num_rows(mysql_query("select * from Ansiklopedi_Cevap WHERE Soru_ID"));
    
    $rasgele_sayi = rand(1,$satirsayisi);
    
    $query = mysql_query("SELECT Ansiklopedi_Soru.*, Ansiklopedi_Cevap.*
    					FROM Ansiklopedi_Soru
    					LEFT JOIN Ansiklopedi_Cevap ON Ansiklopedi_Soru.ID = Ansiklopedi_Cevap.Soru_ID 
    					WHERE Ansiklopedi_Soru.ID='$rasgele_sayi' ORDER BY RAND() LIMIT 10");
    
    ?>
    Yalnız şimdi başka bir sorun peydah oldu

    Sayfamda get kontrolu yaptırıyorum. gelen veri yoksa yukarıdaki bölüme gçiyor ve rastgele bir veri çekiyor.

    Ama sorun sayfanın başında bu sefer

    <? // get ile gelen veri kontrolü ve sorgu
    	if ($_GET){
        $id=$_GET["id"];
    	
    $query = mysql_query("SELECT Ansiklopedi_Soru.*, Ansiklopedi_Cevap.*
    					FROM Ansiklopedi_Soru
    					LEFT JOIN Ansiklopedi_Cevap ON Ansiklopedi_Soru.ID = Ansiklopedi_Cevap.Soru_ID 
    					WHERE Ansiklopedi_Soru.ID='$id'
    					Limit 10");
    
    		
    // değer varsa
    $id = intval($_GET['id']);
    if(!sayfa) $sayfa = 1;
    
    $baslik=mysql_fetch_array($query);
    ?>
    
    <?php echo $baslik['Soru']; ?>
    <?
    // Döngü
    while($sonuc=mysql_fetch_array($query))	{ 
    	
    	?> 
        <p>&nbsp;</p>
        <p align="left"><strong><?php echo $sonuc['Cevap_Sira']; ?>: </strong><?php echo $sonuc['Cevap']; ?> </p>
        <p align="right" class="kucuk_yazi">Yazan: <em><?php echo $sonuc['Yazar']; ?></em><br>
        Tarih: <em><?php echo $sonuc['Tarih']; ?></em></p>
        <p>&nbsp;</p>
       
    <?php
    }
    ?>
    şeklinde sayfamın başı.
    ben istiyorum ki
    <?php echo $baslik['Soru']; ?>
    ile soruyu çeksin. sonra da döngüye girip cevaplarını versin.

    şu durumda 1. cevabı vermiyor 2. cevaptan başlıyor varsa 3ü 4ü çekiyor ama 1. cevabı hiçbir şekilde çekmiyor
  • 18-09-2012, 18:59:20
    #6
    Problem hala güncel bir çözüm üretemedim

    sorunun döngüde olduğunu düşünüyorum.

    <? // get ile gelen veri kontrolü ve sorgu
    	if ($_GET){
        $id=$_GET["id"];
    	
    $query = mysql_query("SELECT Ansiklopedi_Soru.*, Ansiklopedi_Cevap.*
    					FROM Ansiklopedi_Soru
    					LEFT JOIN Ansiklopedi_Cevap ON Ansiklopedi_Soru.ID = Ansiklopedi_Cevap.Soru_ID 
    					WHERE Ansiklopedi_Soru.ID='$id ORDER BY Ansiklopedi_Cevap.Cevap_Sira ASC'
    					Limit 10");
    
    		
    // değer varsa
    $id = intval($_GET['id']);
    if(!sayfa) $sayfa = 1;
    
    
    ?>
    
    
    <?
    // Döngü
    while($sonuc=mysql_fetch_array($query))	{ 
    	
    	?> 
       <?php echo $sonuc['Soru']; ?>
        <p>&nbsp;</p>
        <p align="left"><strong><?php echo $sonuc['Cevap_Sira']; ?>: </strong><?php echo $sonuc['Cevap']; ?> </p>
        <p align="right" class="kucuk_yazi">Yazan: <em><?php echo $sonuc['Yazar']; ?></em><br>
        Tarih: <em><?php echo $sonuc['Tarih']; ?></em></p>
        <p>&nbsp;</p>
       
    <?php
    }
    ?>
    bu şekildeyken:

    soru
    1. cevap

    soru
    2. cevap

    soru
    3. cevap

    şeklinde veriler geliyor.

    ben;

    Soru
    1. cevap
    2. cevap
    3. cevap

    şeklinde gelsin istiyorum. bunu nasıl halledebiliriz?
  • 18-09-2012, 19:22:27
    #7
    oguzhan306 adlı üyeden alıntı: mesajı görüntüle
    selamlar

    Left JOIN ile birleştirdiğim 2 tablom var.

    $rasgele = mysql_query("SELECT Ansiklopedi_Soru.*, Ansiklopedi_Cevap.*
    					FROM Ansiklopedi_Soru
    					LEFT JOIN Ansiklopedi_Cevap ON Ansiklopedi_Soru.ID = Ansiklopedi_Cevap.Soru_ID 
    					WHERE Ansiklopedi_Soru.ID='$id' ORDER BY RAND() LIMIT 1
    					Limit 1");
    benim istediğim rastgele bir ID seçsin (Ansiklopedi_Soru tablosundan) onunla karşılaşan cevaplar hangisiyle sonuç versin

    <?php
    // Döngü
    while($geldi=mysql_fetch_array($rasgele))	{
    	?>
    
    <p>&nbsp;</p>
        <p align="left"><strong>1: </strong><?php echo $geldi['Cevap']; ?> </p>
        <p align="right" class="kucuk_yazi">Yazan: <em><?php echo $geldi['Yazar']; ?></em><br>
        Tarih: <em><?php echo $geldi['Tarih']; ?></em></p>
        <p>&nbsp;</p>
    
    <?php
    }
    ?>
    yukarıdaki de benim döngüm.

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in şeklinde de hata alıyorum
    Hocam mysqle baglandiniz mi ? Include veya Require yerini göremedim
  • 18-09-2012, 19:42:05
    #8
    kod kalabalığı olmasın diye yazmadım zaten o şekilde bir sorun yok sorun verileri istediğim gibi çekebilmek.

    güncel olan kod dizi bir önceki gönderimde
  • 18-09-2012, 20:07:57
    #9
    oguzhan306 adlı üyeden alıntı: mesajı görüntüle
    selamlar

    Left JOIN ile birleştirdiğim 2 tablom var.

    $rasgele = mysql_query("SELECT Ansiklopedi_Soru.*, Ansiklopedi_Cevap.*
    					FROM Ansiklopedi_Soru
    					LEFT JOIN Ansiklopedi_Cevap ON Ansiklopedi_Soru.ID = Ansiklopedi_Cevap.Soru_ID 
    					WHERE Ansiklopedi_Soru.ID='$id' ORDER BY RAND() LIMIT 1
    					Limit 1");
    benim istediğim rastgele bir ID seçsin (Ansiklopedi_Soru tablosundan) onunla karşılaşan cevaplar hangisiyle sonuç versin

    <?php
    // Döngü
    while($geldi=mysql_fetch_array($rasgele))	{
    	?>
    
    <p>&nbsp;</p>
        <p align="left"><strong>1: </strong><?php echo $geldi['Cevap']; ?> </p>
        <p align="right" class="kucuk_yazi">Yazan: <em><?php echo $geldi['Yazar']; ?></em><br>
        Tarih: <em><?php echo $geldi['Tarih']; ?></em></p>
        <p>&nbsp;</p>
    
    <?php
    }
    ?>
    yukarıdaki de benim döngüm.

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in şeklinde de hata alıyorum
    Böyle denermisiniz :
    $rasgele = mysql_query("SELECT Ansiklopedi_Soru, Ansiklopedi_Cevap
                        FROM Ansiklopedi_Soru 
                        LEFT JOIN Ansiklopedi_Cevap ON Ansiklopedi_Soru.ID = Ansiklopedi_Cevap.Soru_ID  
                        WHERE Ansiklopedi_Soru.ID='$id' ORDER BY rand()
                        Limit 1");
    Buda olmazsa mysql_fetch_array yerine mysql_fetch_assoc denermisiniz