Visualizzazione risultati 1 fino 6 di 6

Discussione: [php/mysql] Estrarre e stampare dati contenuti in due tabelle, con INNER JOIN

  1. #1
    Guest

    Predefinito [php/mysql] Estrarre e stampare dati contenuti in due tabelle, con INNER JOIN

    Buon pomeriggio a tutti.

    Ho due tabelle nel database, la prima è "pages" e la seconda è "categories".

    Ho un file "category.php" in cui estraggo tutte le pagine (dalla tabella pages) che sono contenute in quella determinata categoria (dalla tabella categories):
    Codice PHP:
    <?php
    $cat_slug
    = strip_tags($_GET['cat_slug']);
    ?>
    Codice PHP:
    $sql = ("SELECT * FROM pages INNER JOIN categories ON cat_id=category_id WHERE cat_slug = '$cat_slug' ORDER BY cat_id DESC");
    In 'categories' ho questi campi: 'category_id', 'cat_slug'.
    Mentre in 'pages' ho il campo: 'cat_id'.
    'cat_id' = 'category_id'
    Poi vado su nomesito.altervista.org/category.php?cat_slug=nome_della_categoria

    Il problema è che mi estrae solo una pagina e non tutte le pagine che fanno parte di quella data categoria...

  2. #2
    Guest

    Predefinito

    Prova con un while!
    Codice PHP:
    while($pagine = mysql_fetch_array($sql)) { ... }

  3. #3
    Guest

    Predefinito

    Ho fatto così:
    Codice PHP:
    while($records = mysql_fetch_array($sql)) {
    echo
    "<h2>". $records['title'] ."</h2>";
    $leggi = '<a href="/'.$records['cat_slug'].'/'.$records['title_slug'].'">Leggi tutto</a>';
    echo
    $leggi;
    }
    ?>
    mi stampa solo un risultato
    Ultima modifica di musicanapoli : 13-10-2010 alle ore 15.50.20

  4. #4
    Guest

    Predefinito

    Prova ad eseguire la query su phpMyAdmin e vedi cosa mostra... non ho mai usato JOIN e credo che si debba usare qualcosa del tipo $row['tabella']['campo'] e non solo $row['campo'] xD
    Ciao! ^^
    PS. Non c'è bisogno di mettere il codice in $leggi e poi mostrarlo!

  5. #5
    Guest

    Predefinito

    Se eseguo questo su phpmysql:
    Codice:
    SELECT * FROM pages INNER JOIN categories ON cat_id=category_id WHERE cat_slug = 'nome_categoria' ORDER BY cat_id DESC
    funziona correttamente e mi estrae tutti gli articoli sotto quella categoria che seleziono.

    PS. Non c'è bisogno di mettere il codice in $leggi e poi mostrarlo!
    Si, hai ragione...

  6. #6
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    Citazione Originalmente inviato da musicanapoli Visualizza messaggio
    Se eseguo questo su phpmysql:
    Codice:
    SELECT * FROM pages INNER JOIN categories ON cat_id=category_id WHERE cat_slug = 'nome_categoria' ORDER BY cat_id DESC
    funziona correttamente e mi estrae tutti gli articoli sotto quella categoria che seleziono.

    Si, hai ragione...
    prova ad esempio ad usare anche i prefissi per gli attributi nella query:

    categories.category_id

    pages.cat_id

    e poi usa mysql_fetch_array nel modo classico...

    se hai problemi con due attributi uguali puoi sempre rinominarli:

    selec t1.a,t2.a as a1....

    ciao
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •