Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Sub query ORDER BY su 2 tabelle

    Ciao,
    probabilmente la soluzione è più semplice di quanto creda, ma sono molto confuso.
    In ogni articolo che viene visualizzato, sulla desta appaiono gli articoli correlati, che però vorrei ordinare per Like.

    Quindi questo è quello che ho fatto.
    Codice PHP:
    <?
    $tit_1
    =explode(' ',$titolo);
                    
    $liket=" ";
                    foreach(
    $tit_1 as $minparola)
                    {
                        
    $liket .= "titolo LIKE '%".Cleanquery($minparola)."%' OR ";
                    }
                    
    $liket substr($liket0, -3);
                    
    $query="SELECT id,titolo FROM articolo WHERE $liket LIMIT 0,5"// ordinare x like
                    
    $risultati=mysql_query($query);
                    
    $num=mysql_num_rows($risultati);
                    if (
    $num==0){
                         echo 
    'Nessun articolo correlato.';
                    }else{
                        
    $i=0;
                        while (
    $i<$num){
                            
    $a_id=mysql_result($risultati,$i,"id");
                            
    $t=mysql_result($risultati,$i,"titolo");
                            
    $q_check_si="SELECT * FROM _like WHERE id_articolo='$a_id' AND id_usr_si>0";
                            
    $check_si=mysql_query($q_check_si);
                            
    $si_corr=mysql_num_rows($check_si);
                            if(
    $g_id!=$id){
                            
    ?>
                                <a href="?page=article&act=view&id=<? echo $a_id?>">
                                <div align="center" class="correlati" style="padding: 4px; max-width: 210px; border: 1px solid #c0c0c0; border-radius: 4px;">
                                    <b><? echo $t?></b>
                                    <br><br>
                                    <div style="color: #000;">Piace a <font color="green"><b><? echo $si_corr?></b></font> <? if($si_corr=="1") echo "persona"; else echo "persone"?>.</div>
                                </div>
                                </a>
                                <br>
                            <?
                            
    }
                            
    $i++;
                        }
                    }
    ?>
    Ultima modifica di frenkytribe; 23-11-2013 a 15:46

  2. #2
    codice:
    SELECT a.id, a.titolo, COUNT(l.id_articolo) AS NumeroLike
    FROM articolo AS a 
    LEFT JOIN _like AS l ON (l.id_articolo = a.id)
    WHERE $liket
    ORDER BY NumeroLike DESC
    GROUP BY a.id
    LIMIT 0,5
    Ultima modifica di Skillsfactory; 23-11-2013 a 19:15

  3. #3
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource inC:\AppServ\www\gpt\inc\alert.php on line 65
    Nessun articolo correlato.

    Codice PHP:
    64. $risultati=mysql_query($query);
    65. $num=mysql_num_rows($risultati);
    66. if ($num==0){
    67.     echo 'Nessun articolo correlato.';
    68. 

  4. #4
    beh vediamo prima dov'è l'errore
    codice:
    $risultati=mysql_query($query) or die( mysql_error() );

  5. #5
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) AS NumeroLike FROM articolo AS a INNER JOIN _like AS l ON (l.id_articolo = a.id) W' at line 1

  6. #6
    Avevo aggiornato la query...

    SELECT a.id, a.titolo, COUNT(l.id_articolo) AS NumeroLike
    FROM articolo AS a
    LEFT JOIN _like AS l ON (l.id_articolo = a.id)
    WHERE $liket
    ORDER BY NumeroLike DESC
    GROUP BY a.id
    LIMIT 0,5

  7. #7
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY a.id LIMIT 0,5' at line 6

  8. #8
    ok ho messo order prima di group by... prova così...

    SELECT a.id, a.titolo, COUNT(l.id_articolo) AS NumeroLike
    FROM articolo AS a
    LEFT JOIN _like AS l ON (l.id_articolo = a.id)
    WHERE $liket
    GROUP BY a.id
    ORDER BY NumeroLike DESC
    LIMIT 0,5

  9. #9
    Perfetto, ottimo! Ti ringrazio immensamente, io ci stavo perdendo la testa.

  10. #10
    cmq ti ho anche risposto sull'altro problema delle api di facebook, ma non so perchè mi è uscito scritto che un moderatore deve approvare quel messaggio....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.