Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    104

    Problema con modulo commento/risposta

    Salve ragazzi,
    chiedo il vostro aiuto perché non ne riesco a veniere a capo.
    Sul mio sito ho una pagina destinata ai commenti all'articolo. Ora vorrei fare in modo che se qualcuno vuole possa rispondere a un commento.
    Ho inserito il form della risposta che manda i dati in una tabella mysql così composta:
    id
    idrisp=che contiene l'id identificativo del commento
    risposta
    data

    Il modulo funziona. La risposta viene caricata nel database e pubblicata.
    Quello che non riesco a fare è far sì che la risposta venga attribuita al commento specifico. Riuscite a darmi una mano?

    Grazie, qui sotto il modulo che pubblica i commenti, che chiede di inserire la risposta e che pubblica la risposta

    <?php
    $conn_db = mysql_connect('localhost', 'root', xxxxxx) or die('Errore...1');
    mysql_select_db(xxxxxxxx, $conn_db) or die('Errore...2');

    $query = "SELECT user FROM commenti WHERE idnews='".$_REQUEST['id']."' ORDER BY pubdate DESC LIMIT 0,20";
    $result1 = mysql_query($query, $conn_db) or die('Errore...3');
    $numrows = mysql_num_rows($result1);

    $query = "SELECT commento FROM commenti WHERE idnews='".$_REQUEST['id']."' ORDER BY pubdate DESC LIMIT 0,20";
    $result = mysql_query($query, $conn_db) or die('Errore...3');
    $numrows = mysql_num_rows($result);

    $query = "SELECT data FROM commenti WHERE idnews='".$_REQUEST['id']."' ORDER BY pubdate DESC LIMIT 0,20";
    $result2 = mysql_query($query, $conn_db) or die('Errore...3');
    $numrows = mysql_num_rows($result);

    $query = "SELECT id FROM commenti WHERE idnews='".$_REQUEST['id']."' ORDER BY pubdate DESC LIMIT 0,20";
    $result4 = mysql_query($query, $conn_db) or die('Errore...3');
    $numrows = mysql_num_rows($result);

    $query = "SELECT user FROM risposte ORDER BY pubdate DESC LIMIT 0,20";
    $result5 = mysql_query($query, $conn_db) or die('Errore...3');
    $rows = mysql_num_rows($result5);

    $query = "SELECT risposta FROM risposte ORDER BY pubdate DESC LIMIT 0,20";
    $result6 = mysql_query($query, $conn_db) or die('Errore...3');
    $rows = mysql_num_rows($result6);

    $query = "SELECT data FROM risposte ORDER BY pubdate DESC LIMIT 0,20";
    $result7 = mysql_query($query, $conn_db) or die('Errore...3');
    $rows = mysql_num_rows($result7);

    $id = $_GET['id'];

    if ($numrows==0) {

    echo"Non ci sono commenti per questo articolo<div class='description'><h1></h1></div>";

    }else{

    for($x = 0; $x < $numrows; $x++)
    {
    //Recupera user
    $resrow = mysql_fetch_row($result1);
    $user = $resrow[0];

    //Recupera i commenti
    $resrow = mysql_fetch_row($result);
    $commento = $resrow[0];

    //Recupera data
    $resrow = mysql_fetch_row($result2);
    $data = $resrow[0];

    //Recupera idc
    $resrow = mysql_fetch_row($result4);
    $idc = $resrow[0];

    //Recupera userr
    $resrow = mysql_fetch_row($result5);
    $userr = $resrow[0];

    //Recupera le risposte
    $resrow = mysql_fetch_row($result6);
    $risposta = $resrow[0];

    //Recupera datar
    $resrow = mysql_fetch_row($result7);
    $datar = $resrow[0];

    ///Stampo a video user, commento e data
    echo
    "<div class=\"meta\">
    Commmento pubblicato da ".$user." il ".$data."
    </div>

    <div class=\"clear\"></div>



    ".$commento.">



    ".$risposta."





    <div align='right'><font color='#cc6633'>Rispondi</font></div></p>
    <div id='nuovoCommento'>
    <form name='risposta' method='post' action='inserimentorisposta.php'>
    <input type='text' name='id' value='$idc'>


    <td><input type='text' name='user' value='$user'></td>


    <textarea name='risposta' rows='2' cols='110'></textarea></p>
    <input style='margin-top:10px; margin-right:15px; display:block; padding:5px 5px 5px 5px; font-size:10px; color:#fff; background:#cc6633; -moz-border-radius:3px; -webkit-border-radius:3px;' type='submit' value='Invia risposta'>
    </form>
    </div>


    <div class='description'>

    <h1></h1>

    </div>";

    }
    }
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    104
    nessuno che mi da qualche consiglio?

  3. #3
    Non ho letto il codice perchè preferisco fare un'analisi preliminare:

    id
    idrisp=che contiene l'id identificativo del commento <--- QUESTA E' UNA CHIAVE ESTERNA?
    risposta
    data

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    104
    Idrisp nel form si va a prendere la variabile $idc che dal database richiama l'id del commento

  5. #5
    E se tanto per....semplificassimo un po' il codice?

    Codice PHP:
    ...
    $query "SELECT id, user, commento, data  FROM commenti WHERE idnews='".$_REQUEST['id']."' ORDER BY pubdate DESC LIMIT 0,20";
    $result1 mysql_query($query$conn_db) or die('Errore...3');
    $numrows1 mysql_num_rows($result);

    $query "SELECT user, risposta, data FROM risposte ORDER BY pubdate DESC LIMIT 0,20";
    $result2 mysql_query($query$conn_db) or die('Errore...3');
    $numrows2 mysql_num_rows($result7);
    ... 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    104
    Hai ragione, farò anche quello. È palese quante lacune abbia, ma almeno ci provo...

  7. #7
    Io non riesco a capire il tuo problema, se tu hai l'ID del commento da inserire nella tabella, essa dovrebbe essere piu o meno cosi:

    righe presenti nella tabella:

    ID=1 (ad es contatore)
    ID_COMMENTO=3 (ID del commento da commentare)
    TESTO_COMMENTO="Ciao ti rispondo al commento con ID=3..."
    DATA_COMMENTO="31/12/2012";

    *******************************

    ID=2 (ad es contatore)
    ID_COMMENTO=5 (ID del commento da commentare)
    TESTO_COMMENTO="Ciao ti rispondo al commento con ID=5..."
    DATA_COMMENTO="1/12/2012"

    ***************************************

    ID=3 (ad es contatore)
    ID_COMMENTO=33 (ID del commento da commentare)
    TESTO_COMMENTO="Ciao ti rispondo al commento con ID=33..."
    DATA_COMMENTO="31/10/2012";

    Ogni volta che visualizzi il commento principale vai a vedere se nella tabella che hai creato ci sono risposte ad esso collegate (che hanno ID_COMMENTO=$idc)...no?????

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    104
    La tabella commenti è così:

    Id=numero progressivo
    Idnews=id dell'articolo cui associare il commento
    User
    Commento
    Data

    L'idc della risposta invece è associata all'id progressivo del commento

  9. #9
    Originariamente inviato da Lollo1974
    La tabella commenti è così:

    Id=numero progressivo
    Idnews=id dell'articolo cui associare il commento
    User
    Commento
    Data

    L'idc della risposta invece è associata all'id progressivo del commento
    Quindi quando elenchi i commenti nella pagina ti deve venire fuori una roba cosi:

    codice:
    commento#1
      prima risposta al commento#1
      seconda risposta al commento#1
      terza risposta al commento#1
    codice:
    commento#2
      prima risposta al commento#2
      seconda risposta al commento#2
      terza risposta al commento#2
    codice:
    commento#3
      prima risposta al commento#3
      seconda risposta al commento#3
      terza risposta al commento#3
    In questo caso quando crei il ciclo x tirare fuori i commenti devi anche tirare fuori i commenti che hanno come $idc l' id del commento principale. O non ci ho capito na mazza?

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    104
    Il risultato che hai postato è proprio quello che vorrei. Puoi aiutarmi? Se ti serve ti posto i codici

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.