Pagina 1 di 3 123 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 61

Discussione: Codice per Sondaggio

  1. #1
    Guest

    Predefinito Codice per Sondaggio

    Questo codice quando clicco su Vota, fa sparire il div, la parte di codice che da il problema è questa, ma non riesco a sistemarla

    Codice PHP:
    if(isset($_POST['puls_vota'])) {
    $voto=htmlspacialcars($_POST['voto']);//per eventuale sicurezza
    $q="UPDATE sondaggio SET $voto= $voto + 1 WHERE id=1";
    if(
    mysql_query($q)) {
    echo
    "grazie di aver votato";
    }
    else {
    echo
    "si è verificato un errore, riprova più tardi";
    }
    }
    Codice PHP:
    <style type="text/css">
    .fra {
    line-height: 20px;
    }

    .a {
    float: left;
    background-color: #97eabc;
    background-image: url(barra_x100.jpg);/*fare immagine larga 100px*/
    background-repeat: no-repeat;
    background-position: -100px;/*corrisponde a 0 =100-100*/
    width: 100px;/*dare larghezza 100px per non dover fare ulteriori calcoli*/
    height: 10px;
    padding-top: 2px;
    }

    .percentuale {
    float: right;
    width: auto;
    height: auto;
    font-size: 12px;
    color: #ff8000;
    margin-right: 3px;
    margin-top: -4px;
    }
    </style>
    <?php
    require_once "connessione.php";
    $q="SELECT * FROM sondaggio WHERE id=1";
    $riga=mysql_fetch_array(mysql_query($q));
    //faccio passo passo poi puoi semplificare
    $tot=0;//metto il totale a 0
    //e calcolo
    foreach($riga as $chiave => $valore) {
    ${
    $chiave}=$valore;//valore del campo
    $tot=$tot+$valore;//faccio il totale
    }
    //se $tot > 0 calcolo la percentuale (uso la percentuale senza virgole numero intero)
    if($tot>0){//per evitare divisione per zero
    $internet_x100= (int)($internet/$tot*100); $internet_pos=$internet_x100-100;
    $depliant_x100= (int)($depliant/$tot*100); $depliant_pos=$depliant_x100-100;
    $casualmente_x100= (int)($casualmente/$tot*100); $casualmente_pos=$casualmente_x100-100;
    $amici_x100= (int)($amici_o_conoscenti/$tot*100); $amici_pos=$amici_x100-100;
    $giornali_x100= (int)($giornali_o_televisione/$tot*100); $giornali_pos=$giornali_x100-100;
    }
    else {
    $internet_x100= 0; $internet_pos=-100;
    $depliant_x100= 0; $depliant_pos=-100;
    $casualmente_x100= 0; $casualmente_pos=-100;
    $giornali_x100= 0; $giornali_pos=-100;
    $amici_x100= 0; $amici_pos=-100;
    }

    if(isset(
    $_POST['puls_vota'])) {
    $voto=htmlspacialcars($_POST['voto']);//per eventuale sicurezza
    $q="UPDATE sondaggio SET $voto= $voto + 1 WHERE id=1";
    if(
    mysql_query($q)) {
    echo
    "grazie di aver votato";
    }
    else {
    echo
    "si è verificato un errore, riprova più tardi";
    }
    }
    ?>
    <p style="text-align:center; margin-top:-5px; margin-bottom:30px; color:#008040;">Come hai conosciuto i prodotti Akuna?</p>

    <div style="margin-top:-10px; margin-left:3px; text-align:left;">
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

    <div class="fra">
    <input type="radio" name="voto" value="internet"> Internet
    <br />
    <div class="a" style="background-position:<?php echo $internet_pos;?>px"></div><div class="percentuale"><?php echo $internet_x100;?>%</div>
    <br />
    <input type="radio" name="voto" value="depilant"> Depliant
    <br />
    <div class="a" style="background-position:<?php echo $depliant_pos;?>px"></div><div class="percentuale"><?php echo $depliant_x100;?>%</div>
    <br />
    <input type="radio" name="voto" value="casualmente"> Casualmente
    <br />
    <div class="a" style="background-position:<?php echo $casualmente_pos;?>px"></div><div class="percentuale"><?php echo $casualmente_x100;?>%</div>
    <br />
    <input type="radio" name="voto" value="amici_o_conoscenti"> Amici o conoscenti
    <br />
    <div class="a" style="background-position:<?php echo $amici_pos;?>px"></div><div class="percentuale"><?php echo $amici_x100;?>%</div>
    <br />
    <input type="radio" name="voto" value="giornali_o_televisione"> Giornali o televisione
    <br />
    <div class="a" style="background-position:<?php echo $giornali_pos;?>px"></div><div class="percentuale"><?php echo $giornali_x100;?>%</div>
    </div><!-- fra -->
    <div style="margin-top:30px; text-align:center;"><input type="submit" name="puls_vota" value="Vota" class="manina-guest"></div>
    </form>
    </div><!-- div style -->
    Ultima modifica di alemoppo : 10-01-2013 alle ore 17.15.44 Motivo: +tag [php]

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

    Predefinito

    Il campo della tabella "sondaggi" si chiama "$voto"?

    Ciao!

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Il campo della tabella "sondaggi" si chiama "$voto"?

    Ciao!
    Non ho capito la domanda, spiegami

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

    Predefinito

    Se $_POST['plus_vota'] ad esempio vale 5

    La query:
    Codice PHP:
    $q="UPDATE sondaggio SET $voto= $voto + 1 WHERE id=1";
    diventa:

    Codice PHP:
    $q='UPDATE sondaggio SET 5= 5 + 1 WHERE id=1';
    È evidente che non è corretto.

    Se il campo si chiama "voto", dovresti scrivere:

    Codice PHP:
    $q="UPDATE sondaggio SET voto= $voto + 1 WHERE id=1";
    e sarebbe:

    Codice PHP:
    $q='UPDATE sondaggio SET voto= 5 + 1 WHERE id=1';
    Ciao!

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Se $_POST['plus_vota'] ad esempio vale 5

    La query:
    Codice PHP:
    $q="UPDATE sondaggio SET $voto= $voto + 1 WHERE id=1";
    diventa:

    Codice PHP:
    $q='UPDATE sondaggio SET 5= 5 + 1 WHERE id=1';
    È evidente che non è corretto.

    Se il campo si chiama "voto", dovresti scrivere:

    Codice PHP:
    $q="UPDATE sondaggio SET voto= $voto + 1 WHERE id=1";
    e sarebbe:

    Codice PHP:
    $q='UPDATE sondaggio SET voto= 5 + 1 WHERE id=1';
    Ciao!
    Cosi è peggio non si carica addirittura il div

    Codice PHP:
    $q="UPDATE sondaggio SET voto= $voto + 1 WHERE id=1";

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

    Predefinito

    Ma quel codice non centra nulla con alcun div.

    Tutte le variabili che ci sono, sono inizializzate da qualche parte?

    Inoltre, in alto alla pagina aggiungi
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);
    ?>
    Così, ti vengono mostrati tutti i messaggi di errore.

    Ciao!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Ma quel codice non centra nulla con alcun div.

    Tutte le variabili che ci sono, sono inizializzate da qualche parte?

    Inoltre, in alto alla pagina aggiungi
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);
    ?>
    Così, ti vengono mostrati tutti i messaggi di errore.

    Ciao!
    Ho messo questo codice ma quando clicc o Vota non appaiono errori.

    Tutte le variabili che ho sono quelle che ho messo nel primo post

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

    Predefinito

    Citazione Originalmente inviato da gruppoalveo Visualizza messaggio
    Tutte le variabili che ho sono quelle che ho messo nel primo post
    Una riga a caso:

    Codice PHP:
    $internet_x100= (int)($internet/$tot*100);
    Dove è definita $internet?
    EDIT:
    ah, probabilmente sono presi dal database. sorry.

    Puoi linkare la pagina?

    Ciao!
    Ultima modifica di alemoppo : 10-01-2013 alle ore 17.48.57

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da gruppoalveo Visualizza messaggio
    Ho messo questo codice ma quando clicc o Vota non appaiono errori.

    Tutte le variabili che ho sono quelle che ho messo nel primo post
    Tutto quello che ho è quello, perciò da quello che capisco ne manca una parte

    EDIT:

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Una riga a caso:

    Codice PHP:
    $internet_x100= (int)($internet/$tot*100);
    Dove è definita $internet?
    EDIT:
    ah, probabilmente sono presi dal database. sorry.

    Puoi linkare la pagina?

    Ciao!
    QUI
    Ultima modifica di alemoppo : 10-01-2013 alle ore 19.04.09

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

    Predefinito

    ok. Adesso mi è più chiaro come funziona il tutto.

    Come è strutturata la tabella? Dove vorresti salvare il voto?

    Ciao!
    Ultima modifica di alemoppo : 10-01-2013 alle ore 19.18.22

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    ok. Adesso mi è più chiaro come funziona il tutto.

    La query iniziale andava bene:
    Codice PHP:
    $q="UPDATE sondaggio SET $voto= $voto + 1 WHERE id=1";
    Quando provi a votare, visualizzi
    o ?

    È strano che non venga visualizzato nulla...

    Ciao!
    EDIT: come si vede dalla home, da 2 errori che non conosco
    Ultima modifica di gruppoalveo : 10-01-2013 alle ore 21.24.28 Motivo: aggiunta

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

    Predefinito

    Sostituisci:

    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $riga=mysql_fetch_array(mysql_query($q));
    con:

    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $risultato = mysql_query($q);
    if(
    $risultato)
    $riga=mysql_fetch_array($risultato);
    else echo
    'La query'.$q.' ha trovato '.mysql_num_rows($risultato).' elementi. Errori: '.mysql_error();
    Il codice è equivalente. Però in questo modo abbiamo più "dati" da analizzare in caso di errore.

    Ciao!

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Sostituisci:

    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $riga=mysql_fetch_array(mysql_query($q));
    con:

    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $risultato = mysql_query($q);
    if(
    $risultato)
    $riga=mysql_fetch_array($risultato);
    else echo
    'La query'.$q.' ha trovato '.mysql_num_rows($risultato).' elementi. Errori: '.mysql_error();
    Il codice è equivalente. Però in questo modo abbiamo più "dati" da analizzare in caso di errore.

    Ciao!
    Fatto, non trova il db?

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

    Predefinito

    È probabile. Altri nel forum segnalano problemi di accesso al database.

    Prova ad andare su phpMyAdmin per vedere se riesci ad accedere al db.

    Ciao!

  15. #15
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    È probabile. Altri nel forum segnalano problemi di accesso al database.

    Prova ad andare su phpMyAdmin per vedere se riesci ad accedere al db.

    Ciao!
    Io accedo, prova adesso la home

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

    Predefinito

    Risostituisci quelle righe:
    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $risultato = mysql_query($q);
    if(
    $risultato)
    $riga=mysql_fetch_array($risultato);
    else echo
    'La query'.$q.' ha trovato '.mysql_num_rows($risultato).' elementi. Errori: '.mysql_error();
    con:

    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $riga=mysql_fetch_array(mysql_query($q));
    var_dump($riga);
    Così vediamo cosa legge dal db.

    Ciao!

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Risostituisci quelle righe:
    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $risultato = mysql_query($q);
    if(
    $risultato)
    $riga=mysql_fetch_array($risultato);
    else echo
    'La query'.$q.' ha trovato '.mysql_num_rows($risultato).' elementi. Errori: '.mysql_error();
    con:

    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $riga=mysql_fetch_array(mysql_query($q));
    var_dump($riga);
    Così vediamo cosa legge dal db.

    Ciao!
    Fatto

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

    Predefinito

    bool(false)
    Quindi c'é un errore, o non trova nulla.

    Scusami di tutti questi tentativi...

    Adesso sostituisci sempre quel pezzo con:

    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $risultato = mysql_query($q);
    $riga=mysql_fetch_array($risultato);
    var_dump($risultato);
    var_dump($riga);
    echo
    'errori mysql: '.mysql_error();
    Ciao!

  19. #19
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Quindi c'é un errore, o non trova nulla.

    Scusami di tutti questi tentativi...

    Adesso sostituisci sempre quel pezzo con:

    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $risultato = mysql_query($q);
    $riga=mysql_fetch_array($risultato);
    var_dump($risultato);
    var_dump($riga);
    echo
    'errori mysql: '.mysql_error();
    Ciao!
    Fatto

    è sempre questa riga foreach($riga as $chiave => $valore) {...
    Ultima modifica di gruppoalveo : 10-01-2013 alle ore 22.06.15

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

    Predefinito

    Molto probabilmente (anzi, son più che sicuro), nella tabella non esiste la riga con id=1.

    Infatti, se provi:
    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $risultato = mysql_query($q);
    $riga=mysql_fetch_array($risultato);
    echo
    'Numero righe trovate: '.mysql_num_rows($risultato);
    Se ho intuito bene, dovrebbe scrivere "Numero righe trovate: 0".

    vediamo .

    Ciao!

  21. #21
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Molto probabilmente (anzi, son più che sicuro), nella tabella non esiste la riga con id=1.

    Infatti, se provi:
    Codice PHP:
    $q="SELECT * FROM sondaggio WHERE id=1";
    $risultato = mysql_query($q);
    $riga=mysql_fetch_array($risultato);
    echo
    'Numero righe trovate: '.mysql_num_rows($risultato);
    Se ho intuito bene, dovrebbe scrivere "Numero righe trovate: 0".

    vediamo .

    Ciao!
    Che righe?

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

    Predefinito

    I record del database... non so come sei abituato a chiamarli... I dati salvati nel database...

    Prova a sostituire quel codice: se da 0, significa che non c'é nulla nel database, quindi l' update (e la select) è normale che non vadano a termine.

    Ciao!
    Ultima modifica di alemoppo : 10-01-2013 alle ore 22.15.14

  23. #23
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    I record del database... non so come sei abituato a chiamarli... I dati salvati nel database...

    Prova a sostituire quel codice: se da 0, significa che non c'é nulla nel database, quindi l' update (e la select) è normale che non vadano a termine.

    Ciao!
    Si, difatti nella tabella del db non scrive niente, non so perché

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

    Predefinito

    Per come è strutturato, è normale che non scrive niente, perché non c'é alcun "INSERT". Il tuo script funziona (o almeno, lo vedermo poi), ma prima bisogna inserire una riga, che poi verrà aggiornata ogni volta con la update...

    Ciao!

  25. #25
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Per come è strutturato, è normale che non scrive niente, perché non c'é alcun "INSERT". Il tuo script funziona (o almeno, lo vedermo poi), ma prima bisogna inserire una riga, che poi verrà aggiornata ogni volta con la update...

    Ciao!
    Che riga inserisco?

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

    Predefinito

    Non conosco tutti i campi della tua tabella. Quindi non so darti la query pronta {comunque, andrebbe usata una
    Codice:
    INSERT INTO sondaggio (campi...) VALUES (valori...)
    }

    Vai su phpMyAdmin. Clicca a sinistra nella tabella "sondaggio" (almeno quella, spero esista ). Poi la scheda "inserisci", riempi i valori ed "esegui".

    Ciao!

  27. #27
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Non conosco tutti i campi della tua tabella. Quindi non so darti la query pronta {comunque, andrebbe usata una
    Codice:
    INSERT INTO sondaggio (campi...) VALUES (valori...)
    }

    Vai su phpMyAdmin. Clicca a sinistra nella tabella "sondaggio" (almeno quella, spero esista ). Poi la scheda "inserisci", riempi i valori ed "esegui".

    Ciao!
    Questa è la tabella


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

    Predefinito

    ah ok. Quindi fai così:

    vai nella scheda "SQL", ed esegui:

    Codice:
    INSERT INTO sondaggio (id,internet,depliant,casualmente,amici_o_conoscenti,giornali_o_televisione) VALUES (1,0,0,0,0,0);
    Ciao!

  29. #29
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    ah ok. Quindi fai così:

    vai nella scheda "SQL", ed esegui:

    Codice:
    INSERT INTO sondaggio (id,internet,depliant,casualmente,amici_o_conoscenti,giornali_o_televisione) VALUES (1,0,0,0,0,0);
    Ciao!
    Fatto

    EDIT:
    Ho inserito questo nella pagina, ma depliant non lo conteggia, mi sembra scritto giusto, eppoi non fa la somma delle percentuali fino al 100%, ma fino al 42% circa

    Codice PHP:
    $risultato=mysql_query("INSERT INTO sondaggio(internet,depliant,casualmente,amici_o_conoscenti,giornali_o_televisione)
    VALUES('
    $internet','$depliant','$casualmente','$amici_o_conoscenti','$giornali_o_televisione')");
    Ultima modifica di gruppoalveo : 10-01-2013 alle ore 23.48.33

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

    Predefinito

    Nono, andava bene la UPDATE di prima :)

    per come lo hai strutturato, nella tabella viene salvata una sola riga. Quindi devi fare soltanto una INSERT all'inizio. Poi, ad ogni voto, fai l'UPDATE per incrementare i voti.

    Non devi inserire una riga ogni voto.

    Ciao!

Pagina 1 di 3 123 UltimoUltimo

Regole di scrittura

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