2016-10-18 6 views
-2

Ich brauche etwas Hilfe..helfen Sie können mir helfen.dies ist mein Code.Fehler php Undefinierter Offset: 2-3-4 etc.

Error Message: Undefined offset: 2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18 
Errore durante l'accesso alla banca dati: 
Column count doesn't match value count at row 1 
{SC_DB_ERROR_INI}View SQL{SC_DB_ERROR_MID}INSERT INTO magazzinoonline (TRCDMG,TRCDMA,TRARFO,TRDESC,TRUNMI,TRCONF,TRDISP,TROBSO,TRNOMT,TRMULT,TRPREZ,TRLIST,TRLIB1,TRLIB2,TRLIB3,TRLIB4,TRLIB5,TRLIB6,TRDTTR) VALUES('DM13MI80611207012 SCOTCH SUPER 33 + 19X20X0','18 NASTRO PVC PC 00001000000101 0000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 161006','','','','','','','','','','','','','','','','','',1476815766){SC_DB_ERROR_CLS}Close{SC_DB_ERROR_END} 
//percorso 
$path = $this->Ini->path_doc; 

//percorso assoluto 
$prova = $path . '/' . {prova}; 

// apertura file 
$fr=fopen($prova,'r') or die("Impossibile aprire il file in lettura!"); 
$sep=","; // separatore dei dati 
$riga=""; // azzeramento riga 

while(!feof($fr)){ // lettura file fino alla fine 
$riga=fgets($fr); // legge tutta la riga 
if(strlen($riga)>1){ 
$riga=trim($riga); // elimino gli spazi all'inizio e alla fine 
$riga=ereg_replace("'","\'",$riga); // cambio i ' in \' 
$arrayriga=explode($sep,$riga); // metto i dati della riga in un array divisi col separatore 

$num_elementi=count($arrayriga); // numero di elementi nell'array 

// query di inserimento 
if($num_elementi==2 && strlen($arrayriga[0])>0){ 
$data=time(); // data attuale in formato linux 

$query1="INSERT INTO magazzinoonline (TRCDMG,TRCDMA,TRARFO,TRDESC,TRUNMI,TRCONF,TRDISP,TROBSO,TRNOMT,TRMULT,TRPREZ,TRLIST,TRLIB1,TRLIB2,TRLIB3,TRLIB4,TRLIB5,TRLIB6,TRDTTR) VALUES('$arrayriga[0]','$arrayriga[1]','$arrayriga[2]','$arrayriga[3]','$arrayriga[4]','$arrayriga[5]','$arrayriga[6]','$arrayriga[7]','$arrayriga[8]','$arrayriga[9]','$arrayriga[10]','$arrayriga[11]','$arrayriga[12]','$arrayriga[13]','$arrayriga[14]','$arrayriga[15]','$arrayriga[16]','$arrayriga[17]','$arrayriga[18]',$data)"; 
sc_exec_sql($query1); 

} 
} 
$arrayriga=array_slice($arrayriga,0,0); // azzero per il prossimo inserimento 
$riga=""; // azzero per il prossimo inserimento 
} 
+0

'ereg' ist veraltet, bevor die Dinosaurier die Erde durchstreiften. Sie sollten ** NOT ** nichts verwenden, was mit einem Code in Zusammenhang steht. –

Antwort

0

Betrachten Sie, was Sie tun:

if($num_elementi==2 && strlen($arrayriga[0])>0){ 
     ^^^^ 

die Abfrage nur ausgeführt werden, wenn es in der Anordnung 2 Elemente ist, aber dann Ihre Abfrage versucht Werte zugreifen in diesem Array, das Sie bereits bestätigt haben, hat :

$query1="INSERT[..snip...]'$arrayriga[18]',$data)"; 
             ^--- 

Wie kann ein Array mit nur 2 Elementen Indizes 0-> 18 haben?