Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    due loop diversi sugli stessi record

    Ciao a tutti, ho una normale query sql che restituisce tutti i prodotti nel database, perchè devo mostrarli in una pagina. Nella stessa pagina però devo far comparire anche i 5 soli prodotti più votati.

    Non posso quindi ricorrere a LIMIT nella query, qualcuno ha idea di come posso farlo in maniera pulita nel LOOP (mettiamo un do while)?

    grazie a tutti

  2. #2
    fai due query, una per tutti i prodotti e un'altra per i 5 piu' votati.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    ciao piero.mac, è l'unica soluzione?

    anch'io stavo procedendo così ma mi sembra assurdo reinterrogare il db quando i dati già li ho...

  4. #4
    Originariamente inviato da infraviolet
    ciao piero.mac, è l'unica soluzione?

    anch'io stavo procedendo così ma mi sembra assurdo reinterrogare il db quando i dati già li ho...
    Per utilizzare una sola query dovresti:

    ordinare il result set in ordine, credo, alfabetico dei prodotti o per classe dei prodotti.

    Salvare il result set in un array estrarre i dati e poi riordinare l'array per i piu' votati.

    un ciclo for per estrarne solo 5 ....

    ci sono ovviamente anche altri modi. Per me il fare due query lo trovo piu' spiccio e pulito.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    ...in effetti l'alternativa era l'array ma credo che non ne valga la pena, grazie per l'aiuto vado con due query.

    Ho un'altradomanda che mi tormenta se puoi aiutarmi: devo eseguire una serie di update, 5 per l'esattezza. Domanda: devo eseguirne uno per volta o posso creare u'unica istruzione SQL, separando ogni singolo UPDATE (con ; credo) e poi eseguirla?

    Grazie e scusa se approfitto!

  6. #6
    Originariamente inviato da infraviolet
    ...in effetti l'alternativa era l'array ma credo che non ne valga la pena, grazie per l'aiuto vado con due query.

    Ho un'altradomanda che mi tormenta se puoi aiutarmi: devo eseguire una serie di update, 5 per l'esattezza. Domanda: devo eseguirne uno per volta o posso creare u'unica istruzione SQL, separando ogni singolo UPDATE (con ; credo) e poi eseguirla?

    Grazie e scusa se approfitto!
    se si tratta di inserire lo stesso valore puoi usare la condizione where e fare una sola query. Le query separate con ; non sono ammesse da mysql_query().

    esempio per incrementare un contatore di 1 su 5 record:

    update ciccio
    set pallino = pallino + 1
    where id in(2,5,7,8,9)

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    mh no, si tratta di tabelle diverse (stesso id, stesso formato delle tabelle, ma tabelle diverse).

    Le eseguirò una ad una allora!

    Grazie davvero Pier, gentilissimo

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.