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 ::

Handbuch der Java-Programmierung

Handbuch der Java-Programmierung 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 > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 20.03.2004, 21:46:16
dojoh dojoh ist offline
Anfänger
 
Registriert seit: Mar 2004
Beiträge: 5
problem beim import von daten - Duplicate entry wo keiner sein dürfte

Hi Leute,

ich habe ein mittelprächtiges problem bei einem php script das daten aus einer datei importieren soll

hierzu erstelle ich unteranderem eine temporäre tabelle:

PHP-Code:
@mysql_query("CREATE TABLE temp2 (
`Klasse` VARCHAR( 32 ) NOT NULL ,
`LehrerKuerzel` CHAR( 3 ) NOT NULL ,
`Raum` VARCHAR( 16 ) NOT NULL ,
`ZeitID` INT( 16 ) NOT NULL ,
PRIMARY KEY(`Klasse`,`LehrerKuerzel`,`Raum`,`ZeitID`)
)"
) or die("MySQL-Fehler: " mysql_error()); 
funktioniert wunderbar.

danach füge ich mithilfe einer for schleife teile aus einer anderen temporären tabelle in diese ein:

PHP-Code:
    $sql_query "INSERT IGNORE INTO temp2(Klasse,LehrerKuerzel,Raum,ZeitID) VALUES("".$kbez."","".$lehrer."","".$raum."",".$zeit.")";
    @
mysql_query($sql_query) or die("Query: $sql_query <br>MySQL-Fehler: " mysql_error()); 
und ich erhalte die fehlermeldung:

edit:
Query: INSERT IGNORE INTO temp2(Klasse,LehrerKuerzel,Raum,ZeitID) VALUES("AG","HEN","13",409)
MySQL-Fehler: Duplicate entry '0-0--' for key 1


und ich kann mir diese fehlermeldung nciht erklären, da alle spalten als primary key definiert sind und durch das insert IGNORE keien doppelten einträge entstehen können.

ich habeschon im iternet nach lösungen gesucht, aber nichts gescheites gefunden. habe die datenbank auch schon neu erstellt und die tabelle wird ohnehin bei jedem script aufruf neu erstellt und danach gelöscht (bzw aktuell danach manuell wegen der fehlermeldung)
es liegt auc hnicht an nem tinyint und nem zuhoch werdenen autoincrement... sprich alles was ich gefunden habe bzw erahnt habe hilft mir nicht weiter.

ich hoffe ihr könnt mir helfen!
danke schonmal im vorraus!

cya Ole

Geändert von dojoh (20.03.2004 um 21:48:39 Uhr)
Mit Zitat antworten
  #2  
Alt 20.03.2004, 22:30:59
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
Brauchst Du bei einer temporären Datei Index-Dateien? Lass sie doch einfach weg.
Mit Zitat antworten
  #3  
Alt 20.03.2004, 22:56:47
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Re: problem beim import von daten - Duplicate entry wo keiner sein dürfte

Zitat:
Original geschrieben von dojoh
PHP-Code:
    $sql_query "INSERT IGNORE INTO temp2(Klasse,LehrerKuerzel,Raum,ZeitID) VALUES 
("".$kbez."","".$lehrer."","".$raum."","
.$zeit.")"
Egal, was Du sonst noch für Fehler verbrichst, aber MySQL erkennt Strings nur dann als Strings, wenn Du sie zwischen Hochkommas packst.

EDIT/Korrektur:
http://www.mysql.de/doc/de/String_syntax.html

MySQL erkennt beide Notationen:
'eine Zeichenkette'
"eine weitere Zeichenkette"

Geändert von meikel (†) (21.03.2004 um 14:20:54 Uhr)
Mit Zitat antworten
  #4  
Alt 21.03.2004, 01:35:17
dojoh dojoh ist offline
Anfänger
 
Registriert seit: Mar 2004
Beiträge: 5
@marilu ich bin mir nicht sicher was du mit index-datein meinst, da ich keine temporären datein erstelle, denke aber du meinst die primary keys. das problem ist das in der original version sozusagend datensätze der form

name1 ort1 zeit1
name1 ort1 zeit2

existieren, wobei ich nur name und ort benötige. wenn ich das ohne primary keys mache funktioniert das mit dem ignore nicht und ich bekomme einen fehler das die zeile doppelt vorhanden ist. (bin mir nicht sicher ob ich das jetzt mit deinen index-datein richtig verstanden habe)

@meikel du meinst das ich die übergebenen variablen $kbez etc nicht zwischen " sondern zwischen ' übergeben soll? gut wen ndas einen unterscheid macht werde ich es ändern (obwohl es bei allen anderen sql querrys auch läuft)
Mit Zitat antworten
  #5  
Alt 21.03.2004, 10:29:39
dojoh dojoh ist offline
Anfänger
 
Registriert seit: Mar 2004
Beiträge: 5
Falls es hilft: Ich habe gerade herrausgefunden, dass der Fehler immer bei der letzen zu importierenden Zeile auftritt. Selbst wenn ich nur alle Zeilen bis auf die Letze versuche zu importieren, erhalte ich den Fehler für die Vorletze.

Wäre echt super wenn mir hier jemand helfen könnte. Bin echt mit meinem sql-php-latein am Ende ;)
Mit Zitat antworten
  #6  
Alt 21.03.2004, 14:26:24
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von dojoh
@meikel du meinst das ich die übergebenen variablen $kbez etc nicht zwischen " sondern zwischen ' übergeben soll?
Ich habe meinen Text oben inzwischen korrigiert, da MySQL sowohl
'eine Zeichenkette' als auch "eine weitere Zeichenkette" als Zeichenkette interpretiert. In Deinem Beispiel macht es nur weniger Arbeit und sieht übersichtlicher aus, wenn Du innerhalb von " " Strings mit ' ' einrahmst.

EDIT:
Ich habe eben mal das CREATE TABLE und das INSERT im PhpMyAdmin getestet. Fehlerfrei. Ein reiner SQL Fehler liegt also nicht vor.

Geändert von meikel (†) (21.03.2004 um 14:34:07 Uhr)
Mit Zitat antworten
  #7  
Alt 21.03.2004, 14:43:26
dojoh dojoh ist offline
Anfänger
 
Registriert seit: Mar 2004
Beiträge: 5
hmmm ich muss ehrlich sagen: ich finds sch*** das kein reiner SQL Fehler vorliegt. Wäre sicher einfacher zu lösen.

Nunja ich hab gerade beschlossen das ganze nocheinmal von Grund auf zu programmieren, vieleicht liegt der Fehler irgendwo so versteckt das ich ihn übersehe.

Besten Dank dennoch schonmal für die Hilfe!
Mit Zitat antworten
  #8  
Alt 21.03.2004, 17:02:01
dojoh dojoh ist offline
Anfänger
 
Registriert seit: Mar 2004
Beiträge: 5
so es klappt jetzt alles wieder :D


danke für eure hilfe
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:54:00 Uhr.


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


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