Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494

    Aggiornamento database con select multiple

    Salve a tutti,
    come faccio ad aggiornare una tabella di checkbox multipli?

    mi spiego meglio, ho una tabella cosi strutturata:

    ID | NOME

    1 | Mario
    2 | Giovanni
    3 | Giacomo

    Per popolare la tabella, uso dei select multipli:

    <select name="nome[]">
    <option>Francesco</option>
    <option>Mario</option>
    <option>Jesus</option>
    <option>Giovanni</option>
    <option>Giacomo</option>
    </select>

    <select name="nome[]">
    <option>Francesco</option>
    <option>Mario</option>
    <option>Jesus</option>
    <option>Giovanni</option>
    <option>Giacomo</option>
    </select>

    <select name="nome[]">
    <option>Francesco</option>
    <option>Mario</option>
    <option>Jesus</option>
    <option>Giovanni</option>
    <option>Giacomo</option>
    </select>

    In una pagina chiamata modifica.php, mi stampo a video tanti select quanti sono nella tabella, in questo esempio ne ho tre. Ora per aggiornare un preciso id, come dovrei fare? perchè io mi prelevo i dati in questo modo:

    Codice PHP:
    $nome$_POST['nome'];
    foreach (
    $nome as $value) {
    mysqli_query($conn"UPDATE tabella SET nome= '$value' WHERE id= ???"); 
    Come faccio a sapere a quale id appartiene?

  2. #2
    dovresti creare la select pescando i dati dal db, cosi risali ai vari id, magari blocca la tabella in modo tale che non cambino gli id se qualcuno nel mentre fa una insert...

  3. #3
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Si questo lo faccio già, creo la select prelevando i dati dal db, ma l'input ha come name="nome[]" io mi prelevo di dati tramite $_Post, quindi sto prelevando il nome selezionato, come faccio a portarmi anche l'id?

  4. #4
    Prova con un for e non con un foreach.
    Non si riesce più a postare il codice in questo forum. Ti allego un file txt.
    File allegati File allegati

  5. #5
    scusa mi sa che nella fretta non ho capito bene cosa devi fare...avevo capito che nelle value delle option avevi l' id...invece se non ho capito male hai proprio i nomi. Beh se è cosi potresti inserire come value delle option sia il nome e l' id, poi giochi con la stringa e ricavi tutti e due...

  6. #6
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    In che modo gioco con la stringa? separo il nome dall'id?

  7. #7
    io uso la funzione explode() mi sa che è un po' vecchiotta e rischia di essere deprecata...ma meglio di niente...ti allego il file txt
    File allegati File allegati

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Ti basta mettere l'id nel nome della select.

    Esempio : <select name="nome[<?php print $id ?>]">

    Poi in modifica.php fai la foreach

    $nome= $_POST['nome'];
    foreach (
    $nome as $key => $value
    ) {
    mysqli_query($conn, "UPDATE tabella SET nome= '$value' WHERE id= $key");
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Ma $_POST['nome']; come fa a trovare le select se hanno un name cosi name="nome[<?php print $id ?>]"> ?

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da cassano Visualizza il messaggio
    Ma $_POST['nome']; come fa a trovare le select se hanno un name cosi name="nome[<?php print $id ?>]"> ?
    Guarda e prova l'allegato. Guarda anche il codice sorgente della pagina HTML.
    File allegati File allegati
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.