Insert in eine MYSQL will nicht ://

kne

Mitglied
Hallo.
hier ist das problem:
Aus einer csv datei lade ich in arrays was ich in eine tabelle in der db einfügen möchte. Aber irgendwie, funktioniert mein Insert nicht richtig. Und eine fehlermeldung bekomme ich leider auch nicht. hier ist der code
Code:
<? $connect = mysql_connect('localhost','user','pass') or die ("Verbindung konnte nicht hergestellt werden"); 
   mysql_select_db('datenbank',$connect); // eine Datenbank aus der Verbindung auswählen
  $insert=isset($_POST['btnInsert']);
  $update=isset($_POST['btnUpdate']);
  $script=basename($_SERVER['PHP_SELF']);
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Array.php</title>
</head>
<h1>Script wobei eine CSV Datei, in einen Array geladen wird</h1>
- Um spaeter das Array in eine mysql datenbank zu setzen.
<?php

if ($insert) {
echo"Formular wurde übertragen". "<br>"."<br>";
$row = 0; 
$c=0;  
// Datei zum Lesen öffnen.                                  
$file = fopen ("testAutos.csv","r"); 
//Zeilen in ein Array setzen.             
while ( ($data = fgetcsv ($file,1000,";")) !== FALSE ) {
//sql  zum füllen der tabelle.
   
		
   $row++; 
   // Check op eine Zeile leer ist.                 
   if (trim($data[0]) !== "") { 
  			 if ($row !== 1){
//			 $sql="insert into Autos SET      MARK='$data[0]',MODELL='$data[1]',KAROSSERIE='$data[2]',MOTOR/UNDRIFF='$data[3]',FINITIOUN='$data[4]',PRAIS='$data[5]',SEGMENT='$data[6]',BENZIN/DIESEL='$data[7]',AKTUALISEIERT='$data[8]')";	
			 
			 			 $sql="insert into Autos(MARK,MODELL,KAROSSERIE,MOTOR/UNDRIFF,FINITIOUN,PRAIS,SEGMENT,BENZIN/DIESEL,AKTUALISEIERT) VALUES ('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]')";
			   
		     mysql_query($sql);
			// if (!mysql_query($sql))die("Fehler im SQL: $sql");
//			 echo $sql . "<br>";
	 // FOR-Schleife, um Felder	des Arrays auszugeben	 
//       for ($c=0; $c < $num; $c++) {             
//       print $data[$c] . "<br>\n";            
//   }  
    
    // Felder im Array werden gezählt                                 
   $num = count ($data);                     
                                     
//   print "<p>$num fields in line $row: <br>\n"; 
     }                            
 }
  
                                    

}

 fclose ($file); 
 
 } //von if ($insert)
    $sql2 = "SELECT * FROM 'Autos'";
    $rst = mysql_query($sql2,$connect); // Abfrage ausführen
    while ($zeile=mysql_fetch_row($rst))  { 
    echo "$zeile[1]";
	//print "$zeile"; 
   }
?>
 
Hallo,

auf den ersten Blick habe ich dies hier gefunden.

if ($row !== 1){

== ist gleich

!= ungleich

Ansonsten kannste mit var_dump($variable) schauen was übergeben wird und was nicht.

Gruß
SOA
 
hallo.
da liegt das problem eigentlich nicht!
in den ersten beiden if's wird nur geschaut was zu überspringen ist in der csv datei.
Das script setzt auch alles richtig in die arrays.
Nur wird es nicht in die tabelle der datenbank übertragen :/
 
Hi!

Also erstensmal würde ich generell variablen im string nicht so:
PHP:
$str = "string $var $var[$x]";
sondern so:
PHP:
$str = "string ".$var." ".$var[$x].";
schreiben...
du hast ja folgendes gemacht
PHP:
.....('$data[0]','$data....
also
PHP:
.....('".$data[0]."', '".$data....)

Wegen dem mysql fehler: schreib mal
PHP:
$x = mysql_error(); echo $x;
irrgendwo nach den mysql_query befehlen rein.

Generell: Wenn du Probleme mit einer MySQL Abfrage hast, dann führ sie einfach mal im phpMyAdmin aus.. da siehst du dann immer woran es liegt, oder ob es was php-mässiges ist..
 
Code:
		 			 $sql="insert into 'Autos'('MARK','MODELL','KAROSSERIE','MOTOR/UNDRIFF','FINITIOUN','PRAIS','SEGMENT','BENZIN/DIESEL','AKTUALISEIERT') VALUES ('".$data[0]."','".$data[1]."','".$data[2]."','".$data[3]."','".$data[4]."','$".data[5]."','".$data[6]."','".$data[7]."','".$data[8]"')";

Aber jetzt bekomm ich die meldung : Parse error: parse error, unexpected '[' in /home/kpletschet/web/array.php on line 36

Und finden kann ich das bei dem "Gemetzel" leider nicht ! Sorry, mache noch net so lange php ://
 
Probier mal Folgendes:
PHP:
<?php

	$query = '
		INSERT INTO
		        `Autos`
		  SET
		        `MARK`          = "'.mysql_real_escape_string($data[0]).'",
		        `MODELL`        = "'.mysql_real_escape_string($data[1]).'",
		        `KAROSSERIE`    = "'.mysql_real_escape_string($data[2]).'",
		        `MOTOR/UNDRIFF` = "'.mysql_real_escape_string($data[3]).'",
		        `FINITIOUN`     = "'.mysql_real_escape_string($data[4]).'",
		        `PRAIS`         = "'.mysql_real_escape_string($data[5]).'",
		        `SEGMENT`       = "'.mysql_real_escape_string($data[6]).'",
		        `BENZIN/DIESEL` = "'.mysql_real_escape_string($data[7]).'",
		        `AKTUALISEIERT` = "'.mysql_real_escape_string($data[8]).'"
	';
 
Du hast auch den Punkt nach $data[8] vergessen....

Aber mach’s am besten so wie Gumbo es meint.
 
Zurück