php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.05.2006, 10:51  
Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 36
Dopedouglaz
Standard Datenbank f�llen

hallo zusammen

also ich hab ein Array mit daten und die Daten will ich nun ueber den Insert befehl in eine Datenbank speichern mein jetziger
code speichert nur den ersten datensatz in die Datenbank. kann mir jemand sagen wo der fehler liegt.
PHP-Code:
for( $i=0$i<58$i++)
 {
     
$name$bezirke[$i][0];
      
$j=1
  
$selectstr "Insert Into t_Bezirke ( Ort_ID, Bezirk_ID, Name)
 Values( '1', $j, $name)"
;
   
$UC=mysql_query($selectstr $db);
  
  
$j++;

Dopedouglaz ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.05.2006, 10:57  
Benutzer
 
Registriert seit: 27.12.2004
Beiträge: 62
Newan
Newan eine Nachricht über ICQ schicken
Standard

oben machst du $j=1 und dann wieder $j++ kapier ich net!
Newan ist offline  
Alt 29.05.2006, 11:01  
Gast
 
Beiträge: n/a
Standard

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Und beim mysql_query noch mysql_error einbauen.

Gruß
phpfan
 
Alt 29.05.2006, 11:02  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Zudem da j und i sowieso die ganze Zeit parallel laufen ^^ Aber eigentlich... Wie ist die Datenbank aufgebaut? Ist einer der Felder zufällig als Primary Key deklariert?
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 29.05.2006, 11:03  
Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 36
Dopedouglaz
Standard

Bezirks_ID soll eindeutig sein koennte auch i+1 heissen doch fuer die uebersicht dachte ich ist das besser.
Aber nichts desto trotz hab ich immer noch nur ein Datensatz in der Datenbank.
Wenn ich mir name ausgeben lasse gibt er mir alle Werte aus aber in der datenbank speichern nein
Dopedouglaz ist offline  
Alt 29.05.2006, 11:21  
Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 36
Dopedouglaz
Standard

also mit error_reporting(E_ALL) bekomm ich kein fehler angezeigt
den das skript laeuft ja es speichert nur nicht alle Datensaetze in die Datenbank
ist der befehl insert der falsche???
Dopedouglaz ist offline  
Alt 29.05.2006, 11:24  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Zitat:
Und beim mysql_query noch mysql_error einbauen.
Getan?

Ist denn jetzt eine Spalte als Primary Key markiert?
Zitat:
Bezirks_ID soll eindeutig sein koennte auch i+1 heissen doch fuer die uebersicht dachte ich ist das besser.
Auch dann muss die Initialisierung ($j=1) ausserhalb der Schleife
KingCrunch ist offline  
Alt 29.05.2006, 11:35  
Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 36
Dopedouglaz
Standard

$j ist schon ausser habl deklariert
Primary key ist die Bezirks_ID

und die query error meldung sagt MySQL-Error: Duplicate entry '1' for key 1
1=steht f�r den ort
muss ich die Orts_ID auch incrementieren??? die soll aber wenn es geht f�r die ersten 20 eintr�ge eins sein deswegen habenw wir ja auch die bezirks_ID
Dopedouglaz ist offline  
Alt 29.05.2006, 11:37  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Hast du es denn mit der ausserhalb initialisierten Variable j nochmal probiert? vorher war es ja so, dass j zwar erhöht wurde am Schleifenende, beim nächsten Durchgang aber wieder zurück gesetzt wurde auf 1. Das führte dazu, dass er als Bezirks_ID immer wieder die 1 Eintragen wollte, was für den Primary Key nicht erlaubt ist.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 29.05.2006, 11:43  
Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 36
Dopedouglaz
Standard

ja das mach ich. ich lass mir j auch noch ausgeben deswegen bin ich ja verwundert das er aerger macht weil die Orts_ID
muss nicht eindeutig sein ist ja kein PrimaryKey
PHP-Code:
<?php
$j
=1;
 for( 
$i=0$i<58$i++)
 {
     
$name$treffer[$i][0];
      
      
      
  
$selectstr "Insert Into t_Bezirke ( Ort_ID, Bezirk_ID, Name) Values( '1', '$j', '$name')";
      if (
mysql_errno())
       {
       die (
"MySQL-Error: " mysql_error());
      }
       else
      {
      
       
$UC=mysql_query($selectstr $db);
       
$j++;
     echo 
$j;
     echo
"
"
;
}
     
?>
Dopedouglaz ist offline  
 


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
Array Inhalte in eine Datenbank über tragen Munsi1 PHP Tipps 2008 5 11.04.2008 13:28
Mit php dynamisch Namen von Bildnamen sowie Pfad in mysql Datenbank speichern mallmis PHP Tipps 2008 1 19.11.2007 23:04
Verbindung zu einer Datenbank im LAN Datenbanken 11 25.09.2005 12:18
Mehrere Anwendungen eine Datenbank... Datenbanken 5 15.08.2005 11:22
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:33
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
[Erledigt] Seiten in PHP mit Datenbank PHP Tipps 2005-2 3 24.07.2005 09:07
Zugriff auf Sybase 8 Datenbank über ADOdb PHP-Fortgeschrittene 15 06.04.2005 15:55
Eintrag in Datenbank mittels Formular? Datenbanken 5 16.12.2004 17:36
[Erledigt] MySQL findet Datenbank nicht Datenbanken 10 21.10.2004 09:14


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:07 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.