Visualizzazione dei risultati da 1 a 10 su 11

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non ho capito come sono strutturate le tue tabelle. Poi non ho capito la storia dei voti. È un'altra tabella ? Infine non ho capito il like sui commenti.

    Se hai delle tabelle le cui strutture assomigliano a quelle sotto.

    select u.id_utente, nome, cognome, commento
    from utenti u
    inner join commenti c on u.id_utente = c.id_utente


    ti dà tutti i commenti di tutti gli utenti. Se vuoi poi i commenti di un singolo utente devi aggiungere la clausola where (esempio : where nick = 'badaze')

    codice HTML:
    Tabella : utenti
    id_utente,
    nick, 
    nome,
    cognome,
    etc...
    
    Tabella : commenti
    id_commento,
    commento,
    id_utente
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    25
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Non ho capito come sono strutturate le tue tabelle. Poi non ho capito la storia dei voti. È un'altra tabella ? Infine non ho capito il like sui commenti.

    Se hai delle tabelle le cui strutture assomigliano a quelle sotto.

    select u.id_utente, nome, cognome, commento
    from utenti u
    inner join commenti c on u.id_utente = c.id_utente


    ti dà tutti i commenti di tutti gli utenti. Se vuoi poi i commenti di un singolo utente devi aggiungere la clausola where (esempio : where nick = 'badaze')

    codice HTML:
    Tabella : utenti
    id_utente,
    nick, 
    nome,
    cognome,
    etc...
    
    Tabella : commenti
    id_commento,
    commento,
    id_utente

    ecco tutto

    ok allora ci riprovo... considera che non mi ha scritto nessuno quindi probabilmente ho sbagliato qualcosa io ... ma sono veramente arrivato ad un punto morto e non so come proseguire.





    ho due tabelle :


    una classifiche che ha le seguenti colonne (id (auto increment) - TOPIC - UTENTI)
    una commenti che ha ( voti, commento, nome_ut_comm, id_ classifica, id (auto increment) )

    una persona fa un topic, successivamente questo topic appare ed un'altra persona commenta, inserendo il proprio nome ed il commento. Tale commento poi sarà possibile votarlo, per cui il campo "voti" parte da zero.


    quando una persona commenta, automaticamente il campo "commenti.id_classifica" diventa uguale al campo classifiche.ID, in modo che i commenti vadano a finire sotto il giusto topic e non da un'altra parte.


    sono riuscito a creare il topic ed anche ad inserire i commenti, e l'utente nel db ora devo fare apparire i voti, i commenti e il nome degli utenti che lasciano un commento in modo ordinato



    ho fatto 3 query resultset di questo tipo


    SELECT commento FROM commenti WHERE (SELECT MAX(id)FROM classifiche) = commenti.id_classifica)

    SELECT nome_ut_comm FROM commenti WHERE (SELECT MAX(id)FROM classifiche) = commenti.id_classifica
    SELECT voti FROM commenti WHERE (SELECT MAX(id)FROM classifiche) = commenti.id_classifica



    in poche parole gli ho detto di prendermi il nome, il voto ed il commento dei commenti lasciati in un determinato topic (id from classifiche)

    ho quindi dato vita a 3 while, uno per ognuno di questi resultset, e li ho necessariamente dovuti annidare perchè venisse fuori un unico commento con il nome dell'utente ed il voto, ogni volta che venissero rispettati i requisiti di cui alla query


    alla fine di questi while c'è quindi il codice html per stampare i risultati. Se vedi la passata email il while lo dovresti trovare facilmente


    Il problema è che annidando i while succedono cose strane perchè l'unico ciclo che mi viene fatto completamente e correttamente è l'ultimo (nella fattispecie il rs relativo ai nomi di chi lascia un commento.) mentre gli altri raddoppiano e triplicano i risultati. Inoltre se inserisco dei break e dei continue mi appaiono i commenti non duplicati ma sono accoppiati a voti e ad utenti spaiati perchè il ciclo completo viene compiuto solo per l'ultimo while mentre quelli precedenti rimangono bloccati dal break.


    le soluzioni quindi sono due:
    1- o estendo la query di cui sopra (in un modo che non conosc) e gli chiedo, oltre a quello che c'è riportato sopra, di selezionare valori sulla stessa riga, in modo che il programma stampi solo quando ci sono commenti, utenti e voti che si trovano sulla stessa riga (hanno lo stesso id??)

    2- oppure tramite dei while annidati stampo un result.next () per ogni query, ma ho provato tutte le combinazioni e non mi viene !



    3- oppure sbaglio ad usare resultset nel senso che il result set non mi deve dare un risultato particolare, ma uno più generale dal quale poi ricavo i commenti, i nomi e i voti che mi servono

    SONO IN UN VICOLO CIECO AIUTO!!


    il codice completo l'ho postato qui
    http://forum.html.it/forum/showthread.php?threadid=2916762


    GRAZIE GRAZIE ED ANCORA GRAZIE


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