Visualizzazione risultati 1 fino 4 di 4

Discussione: relazionarsi con 2 tabelle msql

  1. #1
    adpost non è connesso Neofita
    Data registrazione
    08-09-2009
    Messaggi
    12

    Predefinito relazionarsi con 2 tabelle msql

    ciao a tutti!
    da un po di tempo sto cercand di imparare un po di php e mysql e mi sto imbattendo in un codice (che oltretutto ho preso da un topic di questo forum) in cui si cerca di simulare una bacheca di commenti,http://forum.it.altervista.org/php-m...-commento.html

    quello che hanno spiegato i ragazzi mi è venuto tutto , ho pero' voluto aggiungee un form per commentare il commento (stile facebook) .
    ho 2 tabelle
    commenti
    id
    commento
    data

    risposte
    id
    risposta
    data


    nella pagina leggi.php

    vorrei far visualizzare
    ________
    commento:
    ciao come va?
    risposta: io tutto bene!

    ________

    e per fare questo ho pensato di fare cosi'
    Codice PHP:

    <html>
    <head>



    </head>
    <body >



    <?php
    $contatore
    = 0;
    $db = mysql_connect("localhost", "**","**");
    if(!
    $db)
    die(
    'ERRORE: non posso accedere al database!');
    mysql_select_db("my_user",$db);
    $testo="SELECT * FROM commenti WHERE 1 ORDER BY id DESC";
    if(!
    $query = mysql_query($testo,$db))
    die(
    'Errore: non riesco a eseguire la query');
    echo
    "<html><head><title>pagina di commenti</title></head><body>";
    while(
    $array = mysql_fetch_array($query))
    {
    echo
    "<pre>Commento ".++$c."del ".$array['data']."\n\n".$array['commento'].$id=$array['id'].




    mysql_select_db("my_adpost",$db);
    $testoq="SELECT * FROM risposte WHERE comid=$id ORDER BY id DESC";
    if(!
    $queryq = mysql_query($testoq,$db))
    die(
    'Errore: non riesco a eseguire la query');

    while(
    $arrayq = mysql_fetch_array($queryq))
    {
    echo
    $arrayq['risposta'];
    }



    }
    echo
    "</body></html>";
    mysql_close($db);
    ?>
    </body>
    </html>
    ma non funziona come posso risolvere?dove sto sbagliando?sintassi errata???
    Ultima modifica di alemoppo : 07-07-2011 alle ore 22.03.30 Motivo: +tag [php] per evidenziare meglio il codice ;)

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Provalo così:

    Codice PHP:
    <html>
    <head>
    <title>pagina di commenti</title>
    </head>
    <body>
    <?php
    $db
    = mysql_connect("localhost", "**","**");
    if(!
    $db)
    die(
    'ERRORE: non posso accedere al database!');
    mysql_select_db("my_user",$db);
    $query = mysql_query("SELECT * FROM commenti WHERE 1 ORDER BY id DESC",$db);
    if(!
    $query)
    die(
    'Errore: non riesco a eseguire la query');

    $c = 0;
    while(
    $array = mysql_fetch_array($query))
    {
    echo
    "<pre>Commento ".++$c."del ".$array['data']."\n\n".$array['commento'].$array['id']."</pre>"; //perché stampi l'ID del commento?
    $queryq = mysql_query("SELECT * FROM risposte WHERE comid=".$array['id']." ORDER BY id DESC",$db);
    if(!
    $queryq)
    die(
    'Errore: non riesco a eseguire la query');

    while(
    $arrayq = mysql_fetch_array($queryq))
    echo
    $arrayq['risposta'];
    }
    mysql_close($db);
    ?>
    </body>
    </html>
    Innanzitutto mi scuso che non son riuscito a provarlo. Quindi non so se funziona.

    Poi, tutte le scritte che stampi prese dagli utenti (e quindi ad esempio il commento vero e proprio e le varie risposte), dovrebbero essere "filtrate" tramite la htmlentities().

    Ciao!
    Ultima modifica di alemoppo : 07-07-2011 alle ore 22.25.44

  3. #3
    adpost non è connesso Neofita
    Data registrazione
    08-09-2009
    Messaggi
    12

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Provalo così:

    Codice PHP:
    <html>
    <head>
    <title>pagina di commenti</title>
    </head>
    <body>
    <?php
    $db
    = mysql_connect("localhost", "**","**");
    if(!
    $db)
    die(
    'ERRORE: non posso accedere al database!');
    mysql_select_db("my_user",$db);
    $query = mysql_query("SELECT * FROM commenti WHERE 1 ORDER BY id DESC",$db);
    if(!
    $query)
    die(
    'Errore: non riesco a eseguire la query');

    $c = 0;
    while(
    $array = mysql_fetch_array($query))
    {
    echo
    "<pre>Commento ".++$c."del ".$array['data']."\n\n".$array['commento'].$array['id']."</pre>"; //perché stampi l'ID del commento?
    $queryq = mysql_query("SELECT * FROM risposte WHERE comid=".$array['id']." ORDER BY id DESC",$db);
    if(!
    $queryq)
    die(
    'Errore: non riesco a eseguire la query');

    while(
    $arrayq = mysql_fetch_array($queryq))
    echo
    $arrayq['risposta'];
    }
    mysql_close($db);
    ?>
    </body>
    </html>
    Innanzitutto mi scuso che non son riuscito a provarlo. Quindi non so se funziona.

    Poi, tutte le scritte che stampi prese dagli utenti (e quindi ad esempio il commento vero e proprio e le varie risposte), dovrebbero essere "filtrate" tramite la htmlentities().

    Ciao!
    grazie mille! funziona ,non ho ben capito il fatto di filtare,perche ora mi si vede tutto perfettamente!

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Beh, ho usato il tuo sorgente! (ho soltanto eliminato/aggiustato un paio di cose!)...

    In pratica son 2 query: la prima che estrae tutti i commenti; la seconda che estrae le risposte che hanno come id quello del commento (quindi, le risposte di quel commento). Il tutto, ciclato n volte, dove n è il numero di commenti.

    Ciao!

Regole di scrittura

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