SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 18.08.2007, 17:04:40
MarkusStruebel MarkusStruebel ist offline
Anfänger
 
Registriert seit: Feb 2002
Beiträge: 58
MarkusStruebel eine Nachricht über ICQ schicken
Werte des Array

Ich würde gerne aus einer CSV-Datei einen SQL Dump erstellen.

Dafür habe ich bisher diesen Code:
Code:
<?php
$row = 1;                                      // Anzahl der Arrays
$handle = fopen ("ProductData.csv","r");              // Datei zum Lesen öffnen
while ( ($data = fgetcsv ($handle, 6000, ";")) !== FALSE ) { // Daten werden aus der Datei
                                               // in ein Array $data gelesen
    $num = count ($data);                      // Felder im Array $data
                                               // werden gezählt
 //   print "<p> $num fields in line $row: <br>\n";




$host     = "localhost";  // MySQL - Zielrechner.
                          // Normallerweise ist es "localhost", bzw.
                          // synonym "127.0.0.1", also der Rechner,
                          // auf dem auch _dieses_ Script läuft.
$user     = "produktdaten";         // Dein Userlogin.
$password = "";      // Dein Datenbankpasswort.

$database = "";  // Gewünschte Datenbank
                                 // innerhalb von MySQL
$table    = "";    // Der Name der Datenbanktabelle

// Datendefinition für die Clientausgabe
$start = (isset($start)) ? abs((int)$start) : 0;
$limit = 10;                     // Datensätze pro Ausgabeseite

// Verbindung zu MySQL-Datenbank herstellen oder sterben.
@mysql_connect($host,$user,$password)
   or die("Abbruch: Verbindung zu '$host'"
         ." konnte nicht hergestellt werden.");

// Benötigte Datenbank auswählen oder sterben.
@mysql_select_db($database)
   or die("Abbruch: Datenbank '$database' konnte nicht"
         ." selektiert werden.<br><br>MySQL sagt: ".mysql_error());

// Feststellen der Anzahl der verfügbaren Datensätze.
$resultID = @mysql_query("SELECT COUNT(1) FROM ".$table);
$total    = @mysql_result($resultID,0);



// Ggf. $start korrigieren (falls Parameter in
// der URL manipuliert wurde)
$start    = ($start >= $total) ? $total - $limit : $start;






    $query1 = "INSERT INTO produktdaten VALUES (";

    $row++;                                    // Anzahl der Arrays wird
                                               // inkrementiert
    for ($c=0; $c < $num; $c++) { 

    $query2 =  "'";

    $data[$c] = mysql_escape_string($data[$c]);            // des Arrays auszugeben

    $query3 = $data[$c];

	if ($c + 1 == $num)
	  {
		$query4 = "');";
	  }
	else
	  {
		$query4 = "', ";
	  }

    }


    $string5 = "); \n<br>";

echo $query1 . $query2 . $query3 . $query4 . $query5;



}
fclose ($handle);
?>
Sieht vielleicht nicht so sehr chic aus, funktioniert aber fast so, wie ich es brauche. Allerdings musste ich feststellen, dass $query3 ein Array ausgeben möchte. Wie kann ich die Werte entsprechend auslesen und später daraus einen String generieren?
Mit Zitat antworten
  #2  
Alt 18.08.2007, 21:25:17
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: Werte des Array

Zitat:
Zitat von MarkusStruebel Beitrag anzeigen
Allerdings musste ich feststellen, dass $query3 ein Array ausgeben möchte.
Was genau heißt ein Array ausgeben? Und wo genau? Wie sieht die Ausgabe der echo Zeile deiner Query Teile aus?


Ich glaube du hast da auch zwei Denkfehler drin...

Du bildest die Anzahl der values für die Db-Tabelle über die Anzahl der Elemente einer Zeile in csv-Datei. Damit der MySQL Server dein insert ausführt, muß die Anzahl der Values aber mit der Anzahl der Spalten in DB-Tabelle übereinstimmen. Dies ist bei deinem Verfahren nicht sichergestellt.

Im unteren Bereich weist du $query2,$query3 und $query4 mehrfach Werte zu, wenn die for-Schleife mehr als einen Durchlauf hat - und es sieht so aus als wäre es für mehr als einen Durchlauf gedacht.
Auf diese Weise wirst du keinen gültigen Query erzeugen, wenn du ihn so zusammenbastelst wie die echo Zeile ganz unten, weil die Variablen dann nur den Wert des letzten Durchlaufs enthalten.
Es wäre besser wenn du die vielen Variablen wegläßt und das Ganze in einem String über den Verkettungsoperator zusammensetzt

Geändert von Raketenmann (18.08.2007 um 21:28:49 Uhr)
Mit Zitat antworten
  #3  
Alt 18.08.2007, 22:28:04
MarkusStruebel MarkusStruebel ist offline
Anfänger
 
Registriert seit: Feb 2002
Beiträge: 58
MarkusStruebel eine Nachricht über ICQ schicken
AW: Werte des Array

Zitat:
Zitat von Raketenmann Beitrag anzeigen
Es wäre besser wenn du die vielen Variablen wegläßt und das Ganze in einem String über den Verkettungsoperator zusammensetzt
Was verstehst du unter Verkettungsoperator?
Mit Zitat antworten
  #4  
Alt 19.08.2007, 09:28:41
Raketenmann Raketenmann ist offline
Junior Member
 
Registriert seit: Jun 2004
Beiträge: 473
AW: Werte des Array

Zitat:
Zitat von MarkusStruebel Beitrag anzeigen
Was verstehst du unter Verkettungsoperator?
Interessanter ist was PHP darunter versteht... ;-)

Strings kannst du mit einem Punkt zusammensetzen.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array Werte vergleichen ghostface PHP Grundlagen 4 20.09.2006 09:02:16
array im array SolidBody PHP Grundlagen 3 20.07.2006 13:38:41
Problem mit array (Werte ersetzen) Zent PHP Grundlagen 3 09.03.2005 15:27:10
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 13:36:58
in ein assoziatives Array weitere Werte einfügen RDJ PHP Grundlagen 2 18.06.2004 09:04:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:54:24 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt