php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.01.2005, 18:17  
Benutzer
 
Registriert seit: 19.07.2004
Beiträge: 44
sunset
Standard Viele Daten in die Datenbank eintragen.

Hallo zusammen,

ich muß ca. 40.000 Datensätze in eine Tabelle eintragen. Hierbei handelt es sich nur um zahlen die sich teilweise wiederholen. Jetzt habe ich es mir überlegt diese Daten mit einer *.csv Datei in die Datenbank zu impoertieren. Allerding möchte ich auch in Zukunft dies automatisch machen. Gibt es eine möglichkeit, diese Daten mit einem Script einzufügen?

Es sollte diese Daten eingegeben werden.

Die Tabelle besteht aus vier Felder.

kat (1,2,3,4,5,6,...100,101,102,...usw...)
nr (001,002,003,004,005,006,....201,202,...usw...)
counter (Standard = 0)
status (Standard = 0)

Nun ist es aber leider so, dass es pro Kategorie verschiedene endnummern des Feldes nr. gibt z.B. bei kat 1 von 001 - 025 wobei es bei kat 002 von 001 - 105 gehen sollte.

In der Tabelle sieht es dann so aus:

kat nr counter status
1 001 0 0
1 002 0 0
1 003 0 0
...
1 025 0 0
...
2 001 0 0
....
2 101 0 0
...
6 001 0 0

Ich hoffe ich bringe das verständlich rüber. Weiß vielleicht jemand wie ich das umsetzen könnte?

Gruß
sunset
sunset ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.01.2005, 18:23  
Gast
 
Beiträge: n/a
Standard

Is relativ simpel. Vom Prinzip her:

1. Datei zeilenweise einlesen
2. Aufsplitten an Trennzeichen
3. INSERT Query basteln
4. Ausführen

Und das halt für jede Zeile der Datei.
 
Alt 11.01.2005, 18:37  
Benutzer
 
Registriert seit: 19.07.2004
Beiträge: 44
sunset
Standard

Zitat:
Zitat von LeoDD
Is relativ simpel. Vom Prinzip her:

1. Datei zeilenweise einlesen
2. Aufsplitten an Trennzeichen
3. INSERT Query basteln
4. Ausführen

Und das halt für jede Zeile der Datei.
Weißt du zufällig wie ich einen INSERT Query begrenze auf z.b. 100?
sunset ist offline  
Alt 11.01.2005, 18:40  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von sunset
Weißt du zufällig wie ich einen INSERT Query begrenze auf z.b. 100?
Ähm, was? Ich verstehe nicht, was du damit meinst.

Gruß
phpfan
 
Alt 11.01.2005, 18:46  
Benutzer
 
Registriert seit: 19.07.2004
Beiträge: 44
sunset
Standard

Zitat:
Ähm, was? Ich verstehe nicht, was du damit meinst.

Gruß
phpfan
Ja ich meine ein Insert würde ja so aussehen:

Code:
$kat = 1;
$nr = 100;

$eintrag = "INSERT INTO tabelle (kat,nr,counter,status) VALUES ('$kat', '$nr', '0', '0')";
$eintragen = mysql_query($eintrag);
Wie kann ich den immer wieder neu laden damit ich ein weiterer Eintrag eingetragen wird?[/quote]
sunset ist offline  
Alt 11.01.2005, 18:48  
Clan
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von sunset
Zitat:
Ähm, was? Ich verstehe nicht, was du damit meinst.

Gruß
phpfan
Ja ich meine ein Insert würde ja so aussehen:

Code:
$kat = 1;
$nr = 100;

$eintrag = "INSERT INTO tabelle (kat,nr,counter,status) VALUES ('$kat', '$nr', '0', '0')";
$eintragen = mysql_query($eintrag);
Wie kann ich den immer wieder neu laden damit ich ein weiterer Eintrag eingetragen wird?

inne while schleife, da brauchste nicht neu laden..?!
http://de.php.net/manual/de/function.fgetcsv.php

frage am rande.. kann es sein dasse keine id in deiner tabelle hast?!?
 
Alt 11.01.2005, 18:56  
Benutzer
 
Registriert seit: 19.07.2004
Beiträge: 44
sunset
Standard

Zitat:
inne while schleife, da brauchste nicht neu laden..?!
http://de.php.net/manual/de/function.fgetcsv.php

frage am rande.. kann es sein dasse keine id in deiner tabelle hast?!?
Ja ne ID brauch ich in diesem Fall nicht. Ich glaub das wird nix mehr weil ich echt nicht weiß wie ich das genau beschreiben soll... [/quote]
sunset ist offline  
Alt 11.01.2005, 19:01  
Clan
Gast
 
Beiträge: n/a
Standard

ok dann fangen wa nochmal ganz von vorne an..

die basics..
Code:
$handle = fopen ("test.csv","r");              // Datei zum Lesen öffnen
while ( ($data = fgetcsv ($handle, 1000, ";")) !== FALSE ) { // Daten 

$sql ="insert into tabelle (bla,bl1) values ('".mysql_escape_string($data[0])."','".mysql_escape_string($data[1])."') ";
mysql_query($sql);
}
fclose ($handle);
was brauchste noch?!
 
Alt 11.01.2005, 19:06  
Benutzer
 
Registriert seit: 19.07.2004
Beiträge: 44
sunset
Standard

Ich möchte das eigentlich nicht mit einer csv Datei machen. Am liebsten wäre mir wenn ich zwei Variablen angebe z.B. kat = 1 und $nr = 100. Dann wäre es nicht schlecht wenn es mir bis 100 die Einträge

INSERT INTO tabelle (kat,nr,counter,status) VALUES ('1', '001', '0', '0')";
INSERT INTO tabelle (kat,nr,counter,status) VALUES ('1', '002', '0', '0')";
INSERT INTO tabelle (kat,nr,counter,status) VALUES ('1', '003', '0', '0')";
INSERT INTO tabelle (kat,nr,counter,status) VALUES ('1', '004', '0', '0')";
... bis
INSERT INTO tabelle (kat,nr,counter,status) VALUES ('1', '100', '0', '0')";

in die Datenbank schreiben würde.

Ich hoffe das ist irgendwie machbar!
sunset ist offline  
Alt 11.01.2005, 19:26  
Clan
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
$start   
0;
$ende   100//sogar mit ende ;)
$kat 2;

while ( 
$start <= $ende ) {


    
$sql ="INSERT INTO tabelle (kat,nr,counter,status) VALUES ('".$kat ."', '".sprintf ('%03s',$start)."', '0', '0')";
    echo 
$sql."
"
;

$start++;
}
?>
mal ne andere frage.. wofür pumpst du leere einträge inne db, wo ist der sinn dabei... ?
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten in Datenbank übergeben Bebre PHP Tipps 2008 2 11.02.2008 11:41
Daten von Datenbank durch Klick in Feld holen Taktaky PHP Tipps 2008 23 22.08.2007 17:20
Formular Daten in die Datenbank schreiben… sunset PHP Tipps 2005-2 3 26.08.2005 11:49
[Erledigt] Variable Links mit daten aus SQL Datenbank PHP Tipps 2005-2 8 05.08.2005 13:10
Daten nur wenn Bedingung eingetreten eintragen CSS Datenbanken 0 01.08.2005 11:47
Daten aus einer mySQL Datenbank auslesen GSJLink PHP Tipps 2005-2 6 25.07.2005 16:38
XML Daten in eine MySQL Datenbank Datenbanken 8 24.07.2005 16:03
Daten von einem Datenbank in eine anderes überspielen... PHP Tipps 2005-2 2 17.06.2005 11:49
Datenbank weg? Account gelöscht, aber Daten vorhanden! Datenbanken 3 21.04.2005 12:29
Daten alpabetisch sortiert in die Datenbank einfügen ckrentel Datenbanken 2 15.03.2005 14:13
Über Smarty Daten i d Datenbank (php MyAdmin) aktualisieren. PHP Tipps 2005 1 26.01.2005 09:40
[Erledigt] Problem beim Eintragen neuer Daten in die Tabelle PHP Tipps 2004-2 10 28.12.2004 13:16
[Erledigt] Nur bestimmte Daten auslesen und in Datenbank schreiben PHP Tipps 2004 2 26.09.2004 14:33
Daten aus Datenbank auslesen Datenbanken 2 01.09.2004 01:58
daten in datenbank übertragen PHP Tipps 2004 17 23.06.2004 15:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
\csv in eine datenbank eintragen\, php datenbank eintragen statusanzeige, sql insert viele daten, sql zu viele daten, viele sql dateien verarbeiten, status in tabelle eintragen php, sql viele daten, viele daten sql, daten in datenbank eintragen mit kategorie, shops in datenbank tabellen eintragen, zu viele daten in db, sql datensätze update mit 100000 einträgen, viele werte mit php in db eintragen, 1-100 in datenbank eintragen, while schleife \teilweise wiederholen\ php, php xml werte in datenbank eintragen, von 1 bis 100 daten in datenbank eintragen, sql messdaten insert, mehrere sql dateien in datenbank automatischn eintragen, 1-100 datenbank insert

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.