Il database mysql non mi accetta una variabile

Ciao, devoi inserire i dati inn un database provenienti da un array, il DB me li accetta tutti ma non salva i dati della variabile $industry ma tutte le altre si, eppure sono tutte di tipo string, non mi sembra ci siano errori di spazi etc. e se alla variabile sostituisco direttamente una stringa va tutto a posto..ma ..mi sembra di impazzire, ecco il codice in questione, la parte in ROSSO sembra non dare problemi, ma la inserisco per completezza...

vi prego HELP

<pre><?php

// Il nome dell'host (hostname) su cui si trova MySQL

$dbhost = "localhost";

// Il nome del nostro database

$dbname = "chrisis_yahoodatabase";

// Il nostro nome utente (username)

$dbuser = "chrisis_chrisis";

// La nostra password

$dbpass = "dream";

$tableName="csvdata";

// Funzione mysql_connect()

$conn = mysql_connect($dbhost,$dbuser,$dbpass)

or die("Impossibile collegarsi al server MySQL.");

// Funzione mysql_select_db()

mysql_select_db($dbname,$conn)

or die("Impossibile selezionare il database $dbname");

$sql ="SELECT filesorg FROM csvdata";

$result = mysql_query( $sql);

$i = 0;

while($row = mysql_fetch_array($result))

{

while (list($key,$value) = each($row))

{

$array[$i] = $value;

}

$i++;

}

//print_r($array);

mysql_free_result( $result );

mysql_close($conn);

$fieldCount = count($array);

echo $fieldCount, "<br>" ;

for ($i=0; $i<$fieldCount; $i++)

{

$csvid_id=$array[$i];

print_r($array[$i] );

echo "<br>" ;

//Move through a CSV file, and output an associative array for each line

ini_set("auto_detect_line_endings", 1);

$current_row = 1;

$handle = fopen("http://biz.yahoo.com/p/csv/$csvid_id", "r");

while ( ($data = fgetcsv($handle, 10000, ",") ) !== FALSE )

{

$number_of_fields = count($data);

if ($current_row == 1)

{

//Header line

for ($c=0; $c < $number_of_fields; $c++)

{

$header_array[$c] = $data[$c];

}

}

else

{

//Data line

for ($c=0; $c < $number_of_fields; $c++)

{

$data_array[$header_array[$c]] = $data[$c];

}

// FIN QUI TUTTO BENE e di seguito mi stampa l'elenco dei valori come da OUTPUT

//OUTPUT

//industryConsumer Goods ---------Qui c' uno spazio ma non mi accetta neanche i valori senza //spazio

//daypricecha0.110

//market cap2862.58B

//pe24.074

//roe19.820

//divyeld1.960

//debttoequit1.123

//pritobook-26.935

//netpromar7.352

//prtoflow-4.728

//day2007-07-08

//date21:49:16

$industry=$data_array[$header_array[0]];

print_r("industry".$industry);

print_r("<br>");

$dayprch=$data_array[$header_array[1]];

print_r("daypricecha".$dayprch);

print_r("<br>");

$marketcap=$data_array[$header_array[2]];

print_r("market cap".$marketcap);

print_r("<br>");

$pe=$data_array[$header_array[3]];

print_r("pe".$pe);

print_r("<br>");

$roe=$data_array[$header_array[4]];

print_r("roe".$roe);

print_r("<br>");

$divyeld=$data_array[$header_array[5]];

print_r("divyeld".$divyeld);

print_r("<br>");

$debttoequity=$data_array[$header_array[6]];

print_r("debttoequit".$debttoequity);

print_r("<br>");

$pritobook=$data_array[$header_array[7]];

print_r("pritobook".$pritobook);

print_r("<br>");

$netpromar=$data_array[$header_array[8]];

print_r("netpromar".$netpromar);

print_r("<br>");

$prtocflow=$data_array[$header_array[9]];

print_r("prtoflow".$prtocflow);

print_r("<br>");

$date=date('Y-m-d');

print_r("day".$date);

print_r("<br>");

$time=date('H:i:s');

print_r("date".$time);

print_r("<br>");

print_r("<br>");

// Funzione mysql_connect()

$conn = mysql_connect($dbhost,$dbuser,$dbpass)

or die("Impossibile collegarsi al server MySQL.");

// Funzione mysql_select_db()

mysql_select_db($dbname,$conn)

or die("Impossibile selezionare il database $dbname");

//++++++++++++QUI CREDO SIA L'INGHIPPO, il database ha oltre a questi un campo ID

//autoincrement ma anche togliendolo l'errore non sparisce

$query = "INSERT INTO Analisi_Fin(industry,dayprch,marketcap,pe,roe,divyeld,debttoequity,pritobook,netpromar,prtocflow) VALUES('$industry','$dayprch','$marketcap','$pe','$roe','$divyeld','$debttoequity','$pritobook','$netpromar','$prtocflow')";

}

$current_row++;

}

fclose($handle);

mysql_query($query);

mysql_close();

}

?></pre>

Grazie e complimenti per il forum Christian76

inviato 9 anni fa
Chrisian76
X 0 X

RETTIFICA

Scusate dove segnalo l'ipotetico inghippo volevo dire che la tabella ha oltre a questi un primo campo ID e non il Database

scusate

bye chris :wallbash:

risposto 9 anni fa
Chrisian76
X 0 X

puoi riportare la struttura della tabella, ovvero il CREATE TABLE ...

:bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Ciao, ho Scoperto il problemao almeno credo, st nel fatto che nel foglio csv , il primo valore(quello in questione)

compreso tra virgolette ES:

"Basic Materials",1.310,5768.08B,11.984,25.070,1.970,0.530,3.610,12.206,227.992

Poich un dato esterno non so come fare, sto provando convertendo il valore con var_export etc..etc, ma non arrrivo ad una soluzione....

mi manca un po d'esperienza......grazie dell'interesse bye chris

risposto 9 anni fa
Chrisian76
X 0 X

prova a sostituire

while ( ($data = fgetcsv($handle, 10000, ",") ) !== FALSE )

con

while ( ($data = fgetcsv($handle, 10000) ) !== FALSE )

:bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Peccato ... :-\non funziona, il valore di industry nel database varchar ...se pu essere utile..

risposto 9 anni fa
Chrisian76
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda