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

    estrazione da più tabelle

    ciao a tutti, ho questo codice che mi estrae dei titoli da una tabella :

    $sql="SELECT * FROM phpbb_posts_text WHERE post_subject!='' ORDER BY post_id DESC LIMIT 10";
    $risultati=mysql_query($sql);
    while($riga=mysql_fetch_array($risultati)) {

    $target=$riga["post_subject"];
    $target1=$riga["post_id"];


    ora ho bisogno di trovare e associare i dati di un campo di un'altra tabella, come faccio a estrarre i dati da più tabelle? e usarli nella stessa query? grazie mille ciauz

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    devi usare la funzione JOIN di mySQL:
    http://dev.mysql.com/doc/mysql/en/JOIN.html#IDX1567

    think simple think ringo

  3. #3
    allora ho provato a fare una cosa del genere :

    <?
    include("connessione.inc.php");
    $sql="SELECT post_subject, post_id, forum_id FROM phpbb_posts_text LEFT JOIN phpbb_posts WHERE forum_id!='20' ORDER BY post_id DESC LIMIT 10";
    $risultati=mysql_query($sql);
    while($riga=mysql_fetch_array($risultati)) {

    $target=$riga["post_subject"];
    $target1=$riga["post_id"];
    echo"<a href=\"http://www.p2pzone.net/forum/viewtopic.php?p=$target1\" title=\"\">$target</a>
    ";
    }//Fine del while


    ?>

    praticamente devo estrarre dei dati (post_subject e post_id) dalla tabella phpbb_posts_text in più devo estrarre il campo forum_id dalla tabella phpbb_posts in modo tale da dirgli di selezionare tutti i dati che non appartengono al forum id n 20 (forum_id!='20')....ho provato cosi ma nn so se sia giusto....qualcuno mi puo aiutare ? mi da questo errore :

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/web/www.p2pzone.net/website/while.php on line 5


    grazie mille ciauz

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    prova questa:
    codice:
    SELECT phpbb_posts.post_id, phpbb_posts.forum_id,phpbb_posts_text.post_subject FROM phpbb_posts
    INNER JOIN phpbb_posts_text ON phpbb_posts_text.post_id = phpbb_posts.post_id
    WHERE forum_id != 10
    ORDER BY post_id DESC
    LIMIT 10
    think simple think ringo

  5. #5
    ok marketto grazie ora funziona...solo che quando visualizzo la pagina...mi mostra righe vuote fra un post e l'altro...esempio metto di limitarli a 20 e me ne mette solo alcuni....negli altri ci sono righe vuote....sai perchè?grazie ancora

  6. #6
    niente ?

  7. #7
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da pischedda
    ok marketto grazie ora funziona...solo che quando visualizzo la pagina...mi mostra righe vuote fra un post e l'altro...esempio metto di limitarli a 20 e me ne mette solo alcuni....negli altri ci sono righe vuote....sai perchè?grazie ancora
    come si chiamano i campi vuoti??
    devi escludere i record con quei campi dalla query.
    think simple think ringo

  8. #8
    non ho ben capito forse mi sono espresso male io.....allora praticamente imposto il limit della query a 20 e facendo cosi mi visualizza circa 7,8 topic , se la imposto a 10 me ne visualizza ancora meno...inoltre tra un collegamento e l'altro ci sono spazi vuoti...a cosa può esser dovuto? grazie mille ancora

  9. #9
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    si, questo mi era chiaro.
    gli spazi vuoti dipendono dal fatto che il campo post_subject è vuoto, quindi bisogna modificare la query affinchè non consideri quei record:
    codice:
    SELECT phpbb_posts.post_id, phpbb_posts.forum_id,phpbb_posts_text.post_subject FROM phpbb_posts
    INNER JOIN phpbb_posts_text ON phpbb_posts_text.post_id = phpbb_posts.post_id
    WHERE forum_id != 10 AND phpbb_posts_text.post_subject != ""
    ORDER BY post_id DESC
    LIMIT 20
    think simple think ringo

  10. #10
    ciao marketto grazie mille ma scusa se ti rompo ancora ! mi da questo errore : Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING e la riga è quella della query .......che cosa puo essere a me sembra tutto giusto!

    ti posto il codice :

    $sql="SELECT phpbb_posts.post_id, phpbb_posts.forum_id,phpbb_posts_text.post_subject FROM phpbb_posts INNER JOIN phpbb_posts_text ON phpbb_posts_text.post_id = phpbb_posts.post_id WHERE forum_id != 10 AND phpbb_posts_text.post_subject != "" ORDER BY post_id DESC LIMIT 20";
    $risultati=mysql_query($sql);
    while($riga=mysql_fetch_array($risultati)) {

    grazie mille ciauz

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.