Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Aggiungere righe al db con valori da 0 a ...
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • M
      marcopietro User • 17 mar 2013, 18:39 ultima modifica di

      Aggiungere righe al db con valori da 0 a ...

      Ciao
      Supponiamo che il mio db ha due campi: ID (auto-increment) e NUMERO (varchar)
      vorrei un input text in cui l'utente può inserire un numero da 0 a 20. Dopo aver inserito il valore numerico XX e aver premuto sul button SALVA mi aggiunge XX righe al db mysql, ognuna con un valore che va da 0 (prima riga), 0+1 (seconda riga)...ecc... fino a XX (ultima riga).

      Come posso fare ?

      Questa è la base

      [PHP]Aggiungi <input type="number" maxlength="2"/> righe al db <input type="submit" value="SALVA"/>[/PHP]

      Il risultato dovrebbe essere che se metto: 5 nella casella di testo ottengo:

      ID NUMERO
      ... ...
      ... ...
      ... ...
      6 1
      7 2
      8 3
      9 4
      10 5

      grazie

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
        Caricamento altri post
        Rispondi
        • Topic risposta
        Effettua l'accesso per rispondere
        • Da Vecchi a Nuovi
        • Da Nuovi a Vecchi
        • Più Voti
         

      • F
        francesco.di.caprio User Attivo • 17 mar 2013, 19:35 ultima modifica di

        Innanzitutto attribuisci un valore NAME all'input di testo e mettilo in un form, altrimenti la pagina successiva non sa come risconoscerlo. Inoltre l'esempio si contraddice con la richiesta, hai detto che vuoi un intervallo di valori che va da 0 al numero scelto, se includi anche 0 aggiungi numero scelto + 1 righe. Si fa con ciclo for, eventualmente se ti serve che parta da uno anziché da zero modificalo. Se per esempio il campo di input ha come attributo NAME il valore "num_aggiunte",

        [php]
        $num_aggiunte = $_POST["num_aggiunte"];
        for ($i = 0; $i <= $num_aggiunte; $i++) {
        $sql = "INSERT INTO tabella (numero) VALUES ('$i')";
        $query = mysql_query($sql);
        }
        [/php]

        Perché il campo numero è un VARCHAR? Se è un numero deve essere INT... ti ho messo gli apici attorno alla $i perché è un VARCHAR, se decidi di modificarlo in INT togligli gli apici attorno...

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • M
          marcopietro User • 17 mar 2013, 19:44 ultima modifica di

          Perfetto, grazie !
          si non l'avevo messo nel form per brevità..

          Grazie ancora

          ciao !

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • M
            marcopietro User • 19 mar 2013, 20:52 ultima modifica di

            Buonasera
            avrei una seconda domanda:
            se nel form ho anche un input che deve essere ripetuto UGUALE nelle medesime righe cui ho dato dei valori consecutivi...come posso fare ?
            nell'esempio è il campo UTENTE (sulla base di quello precedente)

            ID NUMERO UTENTE
            ... ... 1
            ... ... 1
            ... ... 1
            6 1 1
            7 2 1
            8 3 1
            9 4 1
            10 5 1

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • F
              francesco.di.caprio User Attivo • 19 mar 2013, 21:41 ultima modifica di

              ... devi aggiungere il campo "utente" all'elenco dei campi e il valore 1 all'elenco valori nella query. Il for non condiziona minimamente le variabili statiche che non dipendono dalla sua $i.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • M
                marcopietro User • 20 mar 2013, 11:49 ultima modifica di

                Perdonami ma non riesco ad integrare il valore che inserisco nel campo ID_USER nella query.. devo fare una altra chiamata SQL ? potresti postarmi un esempio ? Grazie :ciauz:

                
                <?
                //connect to database
                $dbhost = 'localhost';
                $dbuser = 'root';
                $dbpass = '';
                $dbname = 'monitor';
                
                $conn = mysql_connect($dbhost, $dbuser, $dbpass);
                mysql_select_db($dbname);
                
                //NOTE: MAKE SURE YOU DO YOUR OWN APPROPRIATE SERVERSIDE ERROR CHECKING HERE!!!
                if(!empty($_POST) && isset($_POST))
                {
                    //make variables safe to insert
                  $num_aggiunte = mysql_real_escape_string($_POST['num_aggiunte']);
                  $ID_USER = mysql_real_escape_string($_POST['ID_USER']);
                
                $num_aggiunte = $_POST["num_aggiunte"];
                for ($i = 1; $i <= $num_aggiunte; $i++) {
                    $sql = "
                    INSERT INTO table
                    (NOME) VALUES ($i)
                    ";
                    $query = mysql_query($sql);
                } 
                
                    if(!$query)
                    {
                        echo "ERRORE 103";
                    }
                    else
                    {
                        echo "INSERITI !";
                    }
                }
                ?>
                
                
                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • F
                  francesco.di.caprio User Attivo • 20 mar 2013, 16:25 ultima modifica di

                  C'è una terribile confusione tra i campi della tabella ed i nomi delle variabili. Che cos'è il campo NOME? Cosa ci deve finire dentro?
                  Spiega correttamente da quanti campi è formata la tabella, come si chiamano e cosa deve finire dentro ad ogni campo.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • M
                    marcopietro User • 21 mar 2013, 11:05 ultima modifica di

                    Pardon, ho fatto un pò di confusione nei copia-incolla...
                    allora supponiamo che ho una tabella con due campi chiamati: NUMERO e NOME
                    nel mio form ho due input: un input in cui posso scrivere solo un numero da 1 a 9 ed un input in cui posso scrivere un testo qualsiasi.
                    supponiamo che scrivo 3 nel primo input ed il nome MARIO nel secondo input
                    premendo poi il submit vorrei ottenere nel db:
                    NUMERO NOME
                    1 MARIO
                    2 MARIO
                    3 MARIO

                    (ovviamente non pariamo di un campo A.I. ... ma vorrei usare la funzione for)

                    Grazie

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • F
                      francesco.di.caprio User Attivo • 21 mar 2013, 13:13 ultima modifica di

                      Ok, provo a rispiegartelo: il FOR ripete solo il blocco di istruzioni in esso compreso, non ha effetto su variabili che non dipendono dalla $i.
                      La tua query diventa:

                      [php]
                      $sql = "INSERT INTO (numero, nome) VALUES ('$i', '$nome')";
                      [/php]

                      dove $nome è uguale a $_POST["nome"], cioè il nome ricevuto dall'input dalla pagina precedente (es. Mario).

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • M
                        marcopietro User • 22 mar 2013, 10:05 ultima modifica di

                        Ah ok ! perfetto !
                        Grazie infinite, molto gentile

                        MP

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        Caricamento altri post
                        Rispondi
                        • Topic risposta
                        Effettua l'accesso per rispondere
                        • Da Vecchi a Nuovi
                        • Da Nuovi a Vecchi
                        • Più Voti