Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509

    introdurre nel db un array?

    ciao a tutti...torno tra voi con i soliti problemni...

    ho questa stringa
    codice:
    foreach($_POST['equi'] As $idx => $value)
    vorrei metterla nella query per far si che tutti i risultati dell'array finiscano nelle corrispettive celle.
    in pratica sono 40 checkbox ogniuno con name=equi e value numerico.
    ho contruito nel mio db delle celle con gli stessi valori dei value di questi checkbox.
    con la stringa riesco ad estrapolarli dal form ma ora inserirli nel db è piu complessa.
    avevo provato a mettere una costante che conteneva il foreach..ma non funziona. hoprovato ad esplodere l'array ma poi comuqneu non ne vado a capo.
    qualcuno mi puo' dare qualche sugerimento?
    grazie

    miaccorgo solo ora tra l'altroche con il foreach, mi da errore se non attivo nessun checkbox

  2. #2
    Se metti un nome solo, puoi anche metterne 200 di checkbox, ne troverai sempre uno solo di valore, l'ultimo settato.

    Per evitare errori se vuoto controlla con empty() l'array POST.

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    mettendo pero' come nome $nome[] dovrei generare un array con nome $nome e valore pari ai valori.

    quindi se metto name=equi[] value=10

    trovero' un array $equi[10]

    almeno cosi facendo utilizzando forech e selezionando piu valori e provando a stamparli a video me li fa vedeer tutti.

    soloche ora dovreimetterli nel db.

    se attribuissi una costante all'array del tipo
    $array=$_POST['equi']
    potrei tramite un ciclo inserirei dati nel db...ma come recuperare e spedirenel db anche i corrispettivi value questo mi sfuge ancora..

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Una soluzione potrebbe essere per utilizzare un unico campo

    implode("|",$array);


    e poi per recuperare tutti i valori.
    explode("|",$variabile)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    non ho capito come vai a recuperare i value con l'explode

  6. #6
    puoi usare anche serialize e unserialize

    $a=array('5','6');
    $tmp=serialize($a);

    inserisici nel db

    poi quando estrai ti basta fare

    $a=unserialize($db);

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    vi riassumo un attimo il mio problema. perchè le vostre soluzioni mi sembrano ottime e vi ringrazio...ma non risolvono il mio problmea..o almeno credo .....quindi probabilmente sono io che son talmente ignorante in php che non capisco le vostre spiegazioni

    io ho questo
    codice:
    <input type="checkbox" name="equi[]" value="5">Climatizzatore</td></tr>
    <tr><td> <input type="checkbox" name="equi[]" value="30">Controllo automatico clima</td></tr>
    <tr><td> <input type="checkbox" name="equi[]" value="6">Interni in pelle</td></tr>
    <tr><td> <input type="checkbox" name="equi[]" value="13">Alzacristalli elettrici</td></tr>
    <tr><td> <input type="checkbox" name="equi[]" value="23">Sistema di navigazione</td></tr>
    <tr><td> <input type="checkbox" name="equi[]" value="16">Regolazione elettrica sedili</td></tr>
    <tr><td> <input type="checkbox" name="equi[]" value="4">Tettuccio apribile</td></tr>
    <tr><td> <input type="checkbox" name="equi[]" value="34">Sedili riscaldati</td></tr>
    <tr><td> <input type="checkbox" name="equi[]" value="10">Lettore CD</td></tr>
    <tr><td> <input type="checkbox" name="equi[]" value="9">Autoradio</td></tr>
    <tr><td> <input type="checkbox" name="equi[]" value="36">Adatta a portatori di handicap</td></tr>
    evorrei far si che unavolta che faccio il post, ognicheckbox venga messo nella rispettiva cella con un valore 1 se è selezionato e 0 se non lo è
    quindi se seleziono l'ultimo checkbox dovrebbe apparire nella cella numero 36 il campo 1.
    avevo pensato ad una cosa simile..solochemi manca qualchepassaggio.
    con un empty verifico se la costante $equi ha valori o meno.
    quindi faccioun ciclo con foreach
    codice:
    foreach($_POST['equi'] As $idx => $value)
    { 
    $sqlquery = ("INSERT INTO auto equi VALUES '$idx'");
    if (mysql_query($sqlquery,$db)) { 
    echo "record added!"
    }
    }
    secondo voi potrebbe funzionare o c'è un metodo funzionante?

  8. #8
    Non sei chiaro nella tua esposizione per quanto dettagliata che sia.

    domanda: Cosa intendi per "corrispondente cella" ?
    se per cella intendi il campo qual'e' il nome del campo?
    Perche' fai una insert di una sola cella?

    prova a postare la struttura della tabella, chissa' che non ci schiarisca le idee.

    ricavala con

    SHOW CREATE TABLE nome_tab

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

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    non ho capito come vai a recuperare i value con l'explode
    Es.
    Codice PHP:
    <?php
    $stringa 
    "Nicola|Mario|Giuseppe";

    $array explode("|",$stringa);
    foreach (
    $array as $value)
      echo 
    $value." ";

    ?>
    P.S. Mi dite come si fa quando si quota un messaggio a visualizzare la scritta in neretto originariamente inviato da tizio?

  10. #10
    p.s. clicca su "QUOTA". pero' elimina le parti che non interessano.


    in merito al post .... ma chi puo' dire di avere capito quello che vuole fare nexus???? Sono tutte risposte tentative.


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

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.