Inserire Array in tabella mysql

  • Creatore Discussione Creatore Discussione lyon83
  • Data di inizio Data di inizio

lyon83

Nuovo Utente
23 Ago 2012
6
0
0
Buongiorno a tutti,
spero che qualcuno sia in grado di darmi semplicemente due dritte sul mio problema. In sostanza tramite una chiamata AJAX invio dei dati ad una pagina php. Successivamente sono costretto ad inserirli dentro un array per scorporarli e gestirli separatamente. Avrei bisogno di inserirli in una tabella formata da 3 colonne, il mio problema e che l'array può di volta in volta contenere 3 o 6 o 9 o 12... valori per volta. Come posso inserire i valori dell'array dinamicamente..??

Posto il codice errato...

PHP:
for($i=0; $i<$numero; ++$i){
$query = "INSERT INTO ricevute ('nome,cognome,citta') VALUES ('$new[$i]','$new[$i]','$new[$i]')";
}

In teoria dovrei avere 3 array differenti, per l'inserimento corretto, perchè così mi duplica la chiave ogni volta. Dovrei fare un ciclo for dentro la query... Ma si puo????

Grazie.
 
Ultima modifica di un moderatore:
ciao
intanto
PHP:
<?php
for($i=0; $i<$numero; ++$i){
	$query = "INSERT INTO ricevute ('nome,cognome,citta') VALUES ('$new[$i]','$new[$i]','$new[$i]')";
	$ris=mysql_query($query);
}
?>
poi
guarda che in VALUES ('$new[$i]','$new[$i]','$new[$i]') inserisci sempre lo stesso valore
es.
...VALUES ('$new[0]','$new[0]','$new[0]')
...VALUES ('$new[1]','$new[1]','$new[1]')
eccetera...
cioe se
$new[0] == pinco
$new[1] == pallino
è come se tu scrivessi
...VALUES ('pinco','pinco','pinco')
...VALUES ('pallino','pallino','pallino')
eccetera...

edit
non avevo visto la risp di alex
 
Ultima modifica:
Grazie Alessandro, credo che mi hai indirizzato sulla strada giusta!!!

In sostanza ora ho questo risultato:
Array ( [0] => Array ( [0] => 2 [1] => fiori [2] => 10.00 ) [1] => Array ( [0] => 7 [1] => palline [2] => 13.30 ) )

Come posso fare quindi ad inserire gli array creati dentro la mia tabella strutturata cosi:

Quantita|Descrizione|Costo


Grazie infinite..!!!
 
Guarda Alessandro ho seguito le tue istruzioni... ma purtroppo mi da sempre come risposta "non inserito"... Sto sbagliando qualche cosa????

PHP:
$ric_ar = array_chunk($new,3,true);

foreach ($ric_ar as $row){
	
	$query = "INSERT INTO ricevute ('quantita,descrizione,totale') VALUES ('{$row[0]}','{$row[1]}','{$row[2]}')"; 
	$ris = mysql_query($query);
	
	}
if(!$ris){

echo "<h1>Inserimento non avvenuto</h1>";

}
else{

echo "<h1>Inserimento avvenuto</h1>";

}

GRAZIE.
 
Ultima modifica di un moderatore:
Modifica in questo modo:
PHP:
$ric_ar = array_chunk($new, 3);

foreach ($ric_ar as $row) {
    $query = "INSERT INTO ricevute ('quantita,descrizione,totale') VALUES ('{$row[0]}','{$row[1]}','{$row[2]}')";
    $ris = mysql_query($query) or die(mysql_error());
}
E vedi che errore ti dà. Il terzo parametro di array_chunk dev'essere false, altrimenti gli indici dell'array sono mantenuti e il ciclo fallisce.

P.S. Usa i tag BBCode per formattare il codice, altrimenti i post diventano difficili da leggere.
 
Perfetto Alessandro.. ti ringrazio molto!!!!

P.S. Ma il corso di php che ho letto all'entrata del forum, è seguito da te???

Grazie.
 
bhe.. ragazzi io chiedevo per info... allora lo fai tu borgo???

eh eh eh... scherzo!!!!

Comunque grazie, da oggi se avrò altri dubbi so dove postarli!!!!! Come primo giorno in questa comunity, sono più che soddisfatto dei consigli che ho ricevuto, della qualità, e della rapidità.

A presto..!!
 

Discussioni simili