Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    piero, evidentemente le risposte sono dinamiche: una domanda, n risposte, che possono essere fornite via via nel tempo. Warrior ci confermerà se questo è il funzionamento

  2. #12
    Originariamente inviato da optime
    piero, evidentemente le risposte sono dinamiche: una domanda, n risposte, che possono essere fornite via via nel tempo. Warrior ci confermerà se questo è il funzionamento
    questione di progetto. Siccome mi pare di aver capito che comunque lui propone un form leggendo dal database non so quali contenuti, direi che progettualmente il sapere se si tratta di un update oppure di nuovo inserimento si dovrebbe conoscere a priori.

    Potrebbe lasciare due pulsanti con un aggiorna e nuovo inserimento.... ma tant'e', niente di peggio che frugare nelle tasche altrui per dire cosa potrebbe avere....

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

  3. #13
    Le risposte sono fisse.

    Per ciascuna domanda si devono dare tre risposte (tabella: db_risposte):
    * una da 0 a 5 (radio button)
    * una da 1 a 5 (radio button)
    * una di testo facoltativa (textarea)


    Sono le domande (tabella: db_domande) che cambiano (ie, aumentano) nel tempo.

    Per questo motivo nella pagina con il form l'utente ottiene i campi già compilati per le domande alle quali aveva già fornito una risposta, e campi da compilare per le domande nuove.

    Per le domande compilate serve un update, perché potrebbe cambiare la risposte via radio-button, per ciascuna domanda mai compilata bisogna inserire una nuova riga nel database.

  4. #14
    direi che la replace va bene. ma tu lamenti un problema di "performance": puoi spiegare?

  5. #15
    Prima di tutto vi ringrazio per la cortesia di aiutarmi..

    E' un problema un po' generico, me ne rendo conto. A volte il file post.php cui vengono passati i dati del form (e all'interno del quale c'è l'estratto che ho indicato) è piuttosto veloce, altre volte è più lento (alcuni secondi), e nella maggior parte delle volte in cui è lento il browser dopo aver "caricato" un po' rimane in blank page su post.php (pagina bianca, perché non c'è output ma solo un redirect alla fine, che non viene raggiunto) e il db *non* viene aggiornato. A quel punto facendo refresh e dicendo al browser di re-inviare i dati di solito funziona, però è una seccatura..

    Ma soprattutto ho paura che con l'aumentare delle domande (tra 20 e 50 diciamo) il problema aumenti esponenzialmente..

    Forse dovrei provare a togliere il redirect PHP, mettere un redirect JS e far sì che appaiano degli "output diagnostici" studiati ad hoc, per vedere se il problema è in qualche riga specifica.. mmmm

  6. #16
    quindi non sei sicuro che il problema sia nella query di Replace...

  7. #17
    EDIT: ho messo gli echo
    diagnostici nelle {..} (non avevano senso al di fuori) visto che mi pare di ricordare che header() non si comporta bene se c'è giù output nella pagina e forse va un po' meglio.. boh vi faccio sapere!

    ------

    Bhe dev'essere per forza lì perchè tutto il PHP è


    Codice PHP:
    <?php

    $debug 
    0;

    $hash $_POST['hash']; //hidden

    include("templates/db_connect.php");



    $row_autore mysql_query("SELECT * FROM `db_autori` WHERE hash='$hash' "
    or die(
    mysql_error());  


    $data_autore mysql_fetch_array($row_autore);

    if (
    $debug) {print_r($data_autore);}



    $st=mysql_query("SELECT COUNT(*) AS totale FROM `db_domande`") or die(mysql_error());

    $count_domande=mysql_fetch_assoc($st);



    for (
    $domanda 1$domanda<=$count_domande['totale']; ++$domanda) { 

        if (
    $debug) {print($domanda);}
        echo 
    "
    "
    ;

        
    $id_risposta sprintf('%03u'$data_autore['id_autore']).'_'.sprintf('%03u'$domanda);
        
        if (
    $debug) {print($id_risposta);}
        echo 
    "
    "
    ;
        
    $query "REPLACE INTO `db_risposte` (id_risposta, id_autore, id_domanda, risposta, confid, nota) VALUES ('".$id_risposta."', '".$data_autore['id_autore']."',  '".$domanda."', '".$_POST[$domanda.'_r']."', '".$_POST[$domanda.'_c']."', '".$_POST[$domanda.'_txt']."' )";

        if (
    $debug) { echo $query;     echo "
    "
    ;     echo "
    "
    ; }
        
    $end mysql_query($query) or die (mysql_error());  
        
    }

    mysql_close($connessione);

    if (!
    $debug) {
        
    header("Location: poll.php?hash=".$hash."&msg=succ");
    }

    ?>
    per cui tolto il replace non rimane molto.. però che altro posso fare

  8. #18
    Se non ho capito male, io userei ON DUPLICATE KEY anzichè il REPLACE, semplicemente perchè nel primo caso fa l'update, nel secondo cancella e riscrive.
    Inoltre hai cosi la possibilità di passare solo i dati necessari e risparmiare qualcosina.
    Perchè uso Maxthon? | Mi piace questa chat

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.