Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    Aiuto! Form con checkbox...

    Ho un form di tipo checkbox da cui si possono inserire dati in un database, essendo checkbox possono essenre inseriti anche di uno x volta.

    1 - come faccio a inserire un array (in questo caso può avere fino a 5 valori contemporaneamente) nel database? ho usato implode ma nn mi pare la soluzione + adatta....
    2 - se volessi fare una ricerca con select usando i 5 campi del checkbox (es. amore, amicizia, natura, storie di vita, varie) come faccio a selezionarli dal database, se prima li ho trasformati in stringa? x questo chiedo se c'è un altro modo...


    questo è il codice...non mi trova mai niente...

    <?

    include("connection.inc");

    $dbname="utenti";

    mysql_select_db('utenti',$conn);

    function visualizzaform(){

    echo "<form name=\"search\" action=\"soggetto.php\" method=\"post\">Cerca per soggetto dell'opera: <select name=\"filter\" size=\"1\">";
    echo "<option name=\"soggetto\" value=\"0\">Tutte</option>";
    echo "<option name=\"soggetto\" value=\"1\">Amicizia</option>";
    echo "<option name=\"soggetto\" value=\"2\">Amore</option>";
    echo "<option name=\"soggetto\" value=\"3\">Natura</option>";
    echo "<option name=\"soggetto\" value=\"4\">Storie di Vita</option>";
    echo "<option name=\"soggetto\" value=\"5\">Vario</option>";
    echo "</select>";
    echo "<input type=\"submit\" name=\"cerca\" value=\"cerca\" />
    ";
    echo "</form>";

    }


    if (!isset($_POST['cerca'])) {

    visualizzaform();

    } else if (isset($_POST['cerca'])) {

    $scelta= $_POST['filter'];

    $sql="SELECT * FROM opere WHERE soggetto LIKE '%$scelta%'";

    $risultato= mysql_query($sql);

    $total= mysql_num_rows($risultato);

    if ($total == 0) {

    echo "Non ho trovato niente!";
    }else{

    while( $r = mysql_fetch_array($risultato)){
    echo $r['Autore'] . "
    ";
    echo $r['Soggetto'] . "
    ";
    echo $r['Genere'] . "
    ";
    echo $r['Composizione'] . "

    ";
    }

    }

    }


    ?>

  2. #2
    serialize();
    http://it.php.net/manual/en/function.serialize.php
    unserialize();
    http://it.php.net/manual/en/function.unserialize.php

    vedi queste due funzioni. Serialize ti trasforma un array in una stringa da poter mettere nel database, mentre unserialize fa essattamente l'opposto
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  3. #3
    Sorry, ho letto solo ora il codice per bene, ma i checkbox sono dinamici o statici ? cioè, sono sempre 5 o variano ?
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  4. #4
    Originariamente inviato da bonaprogram
    Sorry, ho letto solo ora il codice per bene, ma i checkbox sono dinamici o statici ? cioè, sono sempre 5 o variano ?
    no sono sempre fissi e sono quelli!
    Ti spiego...un utente invia una propria opera letteraria inserendo: nome, genere, soggetto (questi 5, ed anche + di uno per volta) e l'opera stessa!
    poi il sito ha la funzione di ricerca per genere (e va..), x nome autore (e va...) e per soggetto (questo qua, che NON va...).
    Idee?

  5. #5
    nessuno con aiuti precisi?

  6. #6
    Nel database come li inserisci i dati ?
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  7. #7
    Originariamente inviato da bonaprogram
    Nel database come li inserisci i dati ?
    cosi...ti invio il codice...

    <?

    $autore = "";
    $genere = "";
    $soggetto= "";
    $composizione= "";

    function checkform() {
    global $autore, $genere, $soggetto, $composizione;
    $msg = "";
    if (isset($_POST['autore'])) $autore = $_POST['autore']; else $autore = "";
    if ($autore == "") $msg .= "Inserire il proprio nome
    ";

    if (isset($_POST['genere'])) $genere = $_POST['genere']; else $genere = "";
    if ($genere == "") $msg .= "Scegliere il genere dell'opera
    ";

    if (isset($_POST['soggetto'])) $soggetto = implode(',',$_POST['soggetto']); else $soggetto = "";
    if ($soggetto == "") $msg .= "Scegliere il soggetto dell'opera
    ";

    if (isset($_POST['composizione'])) $composizione = $_POST['composizione']; else $composizione = "";
    if ($composizione == "") $msg .= "Inserire un'opera!
    ";

    return $msg;
    }

    function VisualizzaForm() {
    global $autore, $genere, $soggetto, $composizione;
    echo "<form name=search action=invio.php method=post>";
    echo "<input type=\"hidden\" name=\"id\" value=\"\">";
    echo "

    Inserisca il suo nome:</p>";
    echo "<input type=\"text\" name=\"autore\" size=\"40\" maxlenght=\"40\" value=\"" . $autore . "\" />";
    echo "

    ";
    echo "

    Scelga il genere della sua opera:</p>";
    echo "Aforisma: <input type=\"radio\" name=\"genere\" value=\"aforisma\" />
    ";
    echo "Epistola: <input type=\"radio\" name=\"genere\" value=\"epistola\" />
    ";
    echo "Poesia: <input type=\"radio\" name=\"genere\" value=\"poesia\" />
    ";
    echo "Racconto Breve: <input type=\"radio\" name=\"genere\" value=\"racconto breve\" />
    ";
    echo "Racconto Lungo: <input type=\"radio\" name=\"genere\" value=\"racconto lungo\" />

    ";
    echo "

    Scelga il soggetto della sua opera (anche più di uno):</P>";
    echo "Amicizia: <input type=\"checkbox\" name=\"soggetto[]\" value=\"amicizia\" />
    ";
    echo "Amore: <input type=\"checkbox\" name=\"soggetto[]\" value=\"amore\" />
    ";
    echo "Natura: <input type=\"checkbox\" name=\"soggetto[]\" value=\"natura\" />
    ";
    echo "Storie di vita: <input type=\"checkbox\" name=\"soggetto[]\" value=\"storie di vita\" />
    ";
    echo "Vario: <input type=\"checkbox\" name=\"soggetto[]\" value=\"vario\" />

    ";
    echo "

    Infine, inserisca qui il suo componimento:</p>";
    echo "<textarea name=\"composizione\" rows=\"30\" cols=\"60\">" . $composizione . "</textarea>";
    echo "<input type=\"submit\" name=\"submit\" value=\"invia\" />
    ";
    echo "</form>";

    }



    if (isset($_POST['submit'])) {
    $messaggio = checkform();
    if ($messaggio != "") {
    echo "<h2>Errore:
    " . $messaggio . "</h2>";
    VisualizzaForm();
    }
    else {
    include("connection.inc");

    $dbname="utenti";

    mysql_select_db('utenti',$conn);

    $id1= $_REQUEST['id'];
    $autore1= $autore;
    $genere1= $genere;
    $soggetto1= $soggetto;
    $composizione1= $composizione;


    $sql = "INSERT INTO opere (id,autore,genere,soggetto,composizione) VALUES('$id1','$autore1','$genere1','$soggetto1',' $composizione1')";

    mysql_query($sql,$conn);

    echo "

    questi sono i dati che saranno associati alla tua opera:

    ";
    echo "Autore : $autore1
    ";
    echo "Genere : $genere1
    ";
    echo "Soggetto : $soggetto1
    ";
    echo "Composizione : $composizione1
    ";

    }
    }
    else {
    VisualizzaForm();
    }
    }

    else {header ("location: login.php"); }

    ?>

  8. #8
    Se quei 5 checkbox ( del soggetto ) sono sicuramente statici. Allora crea 5 campi in mysql tinyint(1)
    Se l'utente sceglie, ad esempio, Natura e Vario, questi due campi nel database avranno valore 1 (true) mentre quelli non selizionati avranno valore 0 (false)
    Quando fai la ricerca ti basterà fare, prendiamo ad esempio la ricerca per il campo "Natura", where natura=1
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  9. #9
    Originariamente inviato da bonaprogram
    Se quei 5 checkbox ( del soggetto ) sono sicuramente statici. Allora crea 5 campi in mysql tinyint(1)
    Se l'utente sceglie, ad esempio, Natura e Vario, questi due campi nel database avranno valore 1 (true) mentre quelli non selizionati avranno valore 0 (false)
    Quando fai la ricerca ti basterà fare, prendiamo ad esempio la ricerca per il campo "Natura", where natura=1
    si ma adesso nel database mi si sono impostati tutti a 0 i valori...è normale?

  10. #10
    si, perchè un numero che non esiste è sempre uguale a 0.
    Se nella query di insert non metti campo=0 ti uscirà sempre 0 comunque, essendo un campo numerico
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

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