Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : stripslashes / array HIIILFE



laminar
15-03-2003, 21:26
ich glaub ich bin zu doof grade - wer hilft mir;
ich will die blöden hochkommas aus meiner importierten csvdatei eleminieren,
das sonst sql insert abstürzt...




$row = 1;
$fp = fopen ($url,"r");

while ($data = fgetcsv ($fp, 10000, $delimiter))
{
$num = count ($data);
for ($i=0; $i < $num; $i++) {

$array = array_values($data);$feld[$i] = $array[$i];
//$array = stripslashes($array);
}

mysql_select_db($db_name,$db);
$date = date("ymdHis");

$sql = "insert into immoscout VALUES ('$AIDX', '$date',
'$feld[0]',
'$feld[1]',
'$feld[2]',
'$feld[3]',
'$feld[4]',
'$feld[5]',
'$feld[6]',
'$feld[7]',
'$feld[8]',
'$feld[9]',
'$feld[10]')";

$result = mysql_query($sql,$db) or die(mysql_error());

$row++;
}
fclose ($fp);


so geht snicht, da mechkert php rum das ergebnis müsse auch ein array sein oder so ähnlich ???

wer weiss wie es geht..

Gaert
15-03-2003, 22:49
Hallo!

Ersetze mal das hier:


$num = count ($data);
for ($i=0; $i < $num; $i++) {

$array = array_values($data);$feld[$i] = $array[$i];

//$array = stripslashes($array);

}


durch das hier:



foreach ($data as $value) {
$feld[] = stripslashes($value);
}

laminar
16-03-2003, 00:07
das wird zwar fehlerfrei ausgeführt - allerdings schreibt er jetzt n mal den ersten datensatz in die db, wobei n=gesamtanzahl der datensätze (hier csv zeilen) ist...

Gaert
16-03-2003, 02:12
OK...

Hatte einen klitzekleinen Fehler...

Bitte


foreach ($data as $value) {
$feld[] = stripslashes($value);
}

durch


$feld=array();
foreach ($data as $value) {
$feld[] = stripslashes($value);
}

ersetzen!

laminar
16-03-2003, 09:56
für deine mühe..

nun hat er wieder alle felder eingelesen; sonderbarerweise aber das hochkomma nicht datebankkonform eleminiert, blieb wieder an der ursprünglichen stelle hängen.

aber mit:

$feld[] = strtr($value,"'","-");
in deinem code, statt stripshlashes, war das problem dann gelöst!!!

Gaert
16-03-2003, 12:39
Is ja auch klar dass stripslashes() nicht funktioniert!
Musst natürlich addslashes() nehmen!
Oder am besten gleich mysql_escape_string().

jwebworks
16-03-2003, 18:51
Wie wäre es, die Datei mit "file" einzulesen
und einzelne Zeilen mit "explode(',', $str)"
in ein Array zu zerlegen? Dann natürlich
mit mysql_esc... noch die anderen Zeichen
entkräften.

cu, stop.h