Newsgroup: it.comp.www.php
Titolo: [variabili]  problemino...

Ciao
In una pagina html ho una tabella con campi ricorsivi:
codice (non digitabile) e quantita' (digitabile) , creo la pagina con il
nome del campo quantita' come 'qta' + un indice ottenendo qta0, qta1,
qta2 ecc.
Il problema sorge quando devo inserire nel db detti campi, per farlo
richiamo un altro programma che si occupa delle variazioni al db questo
e' il codice del secondo programma
$i = 0;
   while ($i < $num_righe)
     {
        if ( '$_POST[qta$i]' > 0 )
          {
INSERT INTO  archivio VALUES ('$_GET[submit2]','$_GET[submit]',
'$_POST[codice]' , '$_POST[qta$i]')"; 
          }
       $i++;
      }
L'istruzione in errore e' questa  '$_POST[qta$i]'  qualche suggerimento?
Grazie
Michele 

$i = 0;
while ($i < $num_righe) {
         $Qt = "qta" . $i;
         if ( '$_POST[qta$i]' > 0 ){
             $Query = INSERT INTO  archivio VALUES (\'' .
$_GET[submit2] .'\',\'' . $_GET[submit] . '\',\'' . $_POST[codice] .
'\' , \'' . $_POST[$Qt] .'\')";
         }
$i++;
unset($Qt);
}
Michele ha scritto:


 Michele
Prego e ciao
David
-- 
Linux Registered User #334216
Get FireFox! >> 
http://www.spreadfirefox.com/?q=affiliates&id=48183&t=1
Staff >> 
http://www.debianizzati.org
 <<

 "$_POST['qta" . eval("return $i;") . "']"...
    che differenza ci sarebbe con $_POST['qta'.$i]? ;)
a meno di situazioni _particolari_ e quando dico particolari
intendo *molto particolari* eval() va evitato

 intendo *molto particolari* eval() va evitato
Provero' anche questa soluzione, per adesso ho utilizzata quella di
Dante e funziona, non ho utilizzato _eval_  ma con _$_POST['qta'.$i]_
non funziona.
Ciao
Michele

 
Ho tolto tutte le _\_ (forse per un problema di apici) perche' dava
errore e tutto ha funzionato.
Grazie
Michele

 intendo *molto particolari* eval() va evitato
Beh... effettivamente differenze non ce ne sono.
Però... perché denigrare così il povero eval()... -.-'
$i è hardcoded dentro lo script, non viene da nessun input utente...
quindi... non dovrebbe esserci alcun problema... :)
Comunque la tua soluzione è più semplice :P


 0 ) _ nel senso che passa tutto. Non posso usare is_numeric perche'
da' errore di parsing, cosa fare?
Grazie
Michele
-- 
Virgilio

 > 0 ) _ nel senso che passa tutto.
Non ho seguito il thread, ma quell'if cosě non credo che funzioni, cioč
penso che PHP confronti una normale stringa con zero e restituisca
giustamente sempre true. Se come penso tra i valori che vengono POSTati
ci sono "qta1", "qta2" e cosě via, prova a cambiare il codice cosě:
	$Qt = "qta" . $i;
	if ( $_POST[$Qt] > 0 ) {
Inoltre dovresti controllare l'input dell'utente, prima di eseguire la
query SQL. Altrimenti ci sono seri rischi per la sicurezza.
Ciao.
T.

Tristan <tri...@natsirt.mirror> wrote:

L'input lo controllo a priori, ma l'utente puo' non digitare nulla e
quindi mi devo affidare a _ strlen e isset _ per saltare l'insert sul
db, adesso provo.
Ciao
Michele  

 db, adesso provo.
Se l'utente non digita nulla, cioč se una variabile č vuota:
!isset()
empty()
oppure $variabile="";
rob4you 

 rob4you 


 *sempre* TRUE.
Errore di battitura ci FU! :-))
rob4you 

rob4you ha scritto:

Immaginavo ;)


rob4you ha scritto:

cmq e' buona abitudine "invertire" la condizione:
"" == $variabile
cosi' usando un solo = ottieni un bel parse error e non hai problemi