Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    query concatenata tra due tabelle

    Salve, dovrei fare questa cosa (probabilmente devo usare JOIN, ma non saprei come strutturare la query).

    Ho una tabella chiamata classifica, composta dai campi id, autore, brano.

    Poi c'è un' altra tabella, chiamata voti_classifica, con i campi id_canzone e ip.

    Ora devo ordinare la query "SELECT * FROM classifica" a seconda della maggioranza dei voti di voti_classifica relativi all' id della tabella classifica, ovvero.. Se nella tabella voti_classifica , ci sono 5 voti dove id_canzone è 2 e 3 voti dove id_canzone è 1, nella select della tabella classifica, i campi autore e brano vanno ordinati in ordine decrescente a seconda dei voti della tabella voti_classifica, quindi in questo caso la riga con id 2 (di classifica) verrà messa al primo posto, mentre la riga con id 1 al secondo, dato che a 3 voti contro i 5 dell' id 2.
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    qualcosa tipo
    codice:
    SELECT * FROM classifica AS c JOIN voti_classifica AS v on c.id = v.id_canzone ORDER BY v.voti;

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    C'è un problema, così non mi trova piu' niente. Ovvero il codice è questo:

    Codice PHP:
    <?php

    include('news/settings.php');
    $sel mysql_query("SELECT * FROM classifica");
    if(
    mysql_num_rows($sel) == 0) {
        echo 
    'Nessuna canzone trovata.';
    } else {
        
    $ip $_SERVER['REMOTE_ADDR'];
        if(
    mysql_num_rows(mysql_query("SELECT * FROM voti_classifica WHERE ip='$ip'")) == 0) {
            
    $vota true;
        }
        
        while(
    $ref mysql_fetch_assoc($sel)) {
        
    $id $ref['id'];
    ?>
    [b]<?php echo $ref['autore']; ?>[/b] - [i]<?php echo $ref['brano']; ?>[/i] <?php if($vota === true) { ?> <input type="submit" style="color: green; background: none; border: none; box-shadow: none; vertical-align: middle;" value="(Vota)" onClick="vota('<?php echo $id?>','<?php echo $ip?>');" /><?php } else { ?>[b]<?php echo mysql_num_rows(mysql_query("SELECT * FROM voti_classifica WHERE id_canzone='$id'")); ?>[/b]<?php ?>
    <?php
    }
    }
    ?>
    il mysql_num_rows di ciò che hai postato tu dava come risultato 0 e il while dava errore di argomento per mysql_fetch_assoc
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  4. #4
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    non ho idea di come sia strutturato il tuo db...era uno spunto da cui partire per capire cos'è un JOIN e adattarlo alle tue esigenze...

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  5. #5
    Vabbè credo di aver risolto in maniera piu' semplice, aggiungo anche a classifica un campo dove verrà raccolto il numero di voti relativo a quell' id
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  6. #6
    Evvaiiii...col software performate. Perchè risolvere un problema quando si può benissimo aggirarlo. Secondo me dovresti mettere tutti i campi in un'unica tabella così non hai più problemi di join!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.