Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Problema con stringhe

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    577

    Problema con stringhe

    Salve a tutti,

    chiedo aiuto per risolvere un problema, vi riporto la situazione di seguito:

    VALORI RICEVUTI DA UN FORM (IL NUMERO DI CAMPI E' CASUALE E NON FISSO):
    $prezzo1 = $_POST["prezzo1"];
    $prezzo2 = $_POST["prezzo2"];
    $prezzo3 = $_POST["prezzo3"];
    ...
    $prezzon = $_POST["prezzon"];


    ... avendo assegnato le variabili di cui sopra, devo poi eseguire tante INSERT nel db quanti sono i numeri di campi (prezzi)

    ciclando in un for le stesse variabili...

    for ($i=1;$i<$num_campi;$i++) {
    $sql_ins="INSERT INTO ARTICOLI (";
    $sql_ins=$sql_ins."ID_ART, ";
    $sql_ins=$sql_ins."PREZZO ";
    $sql_ins=$sql_ins.") VALUES (";
    $sql_ins=$sql_ins."$ID_ART, ";
    $sql_ins=$sql_ins."$prezzo[$i] ";
    $sql_ins=$sql_ins.")";
    }

    Il mio problema è che per ogni ciclo (sql) la variabile $prezzo[$i] non mi restituisce il suo valore effettivo, ma la stessa stringa viene visualizzata come "$prezzo[$i]".

    Come posso fare invece per farmi restituire il suo valore effettivo (77,00) all'interno della SQL?

    Grazie
    Lucia

  2. #2
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Forse potresti seguire una strada più semplice, trattando tutti i dati relativi al prezzo come se fossero parte di un'array. Dovrai modificare il nome dell'attributo "name" del campo del form:

    codice:
    Prezzo 1 <input type="text" name="prezzo[]" />
    
    Prezzo 2 <input type="text" name="prezzo[]" />
    
    ...
    Ora, nella pagina che riceve i dati inviati dal form non dovrai fare nient'altro che costruire "a tappe" la query per l'inserimento nel database. Segui i commenti, sarà tutto più chiaro...

    Codice PHP:
    //inizio a scriveire la prima parte della query
    //indicando il campo in cui inserire i dati
    $sql "INSERT INTO tabella (campo) VALUES ";

    //recupero tutti i valori inviati dal form concatenandoli
    //alla query per poi eseguire un'unica istruzione INSERT
    foreach($_POST['prezzo'] as $prezzo) {
      
    $sql .= "('$prezzo'), ";
    }

    //completo la query eliminando gli ultimi due caratteri finali
    //cioè la virgola e lo spazio rimanenti come da indicazioni del ciclo
    $sql substr($sql0, -2);

    //eseguo la query
    $query mysql_query($sql) or die(mysql_error()); 
    Fai le modifiche del caso, cambia i nomi della tabella e del campo interessati nella query e integra i controlli di sicurezza necessari.

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.