Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Einfügen in Datenbank

Frage Entwicklung Datenbanken

Mitglied: Sapzero

Sapzero (Level 1) - Jetzt verbinden

19.02.2009, aktualisiert 19:52 Uhr, 3545 Aufrufe, 4 Kommentare

Hi,
ich hab ein neues Problem und zwar fügt er in die datenbank immer nach dem aktualisieren neue Datensätze obwohl er das net soll.
Im Quellcode hab ich alles nähere beschrieben und auch den fehler erklärt hoffentlich kann mir einer Helfen.


01.
        // User Tabelle anlegen  
02.
        mysql_query("CREATE TABLE IF NOT EXISTS tbluser ( 
03.
	UserID INT(1) NOT NULL auto_increment, 
04.
	Nname varchar(30) character set latin1 collate latin1_general_ci NOT NULL, 
05.
	Vname varchar(20) character set latin1 collate latin1_general_ci NOT NULL, 
06.
        Passwort char(32), 
07.
        Username char(7), 
08.
	PRIMARY KEY (UserID))"); 
09.
	 
10.
	//Erfolg Tabelle anlegen in der gespeichert werden soll, wenn die User Tabelle GEUPDATED wurde 
11.
	mysql_query("CREATE TABLE IF NOT EXISTS tblerfolg ( 
12.
	ErfolgID INT(1) NOT NULL, 
13.
	Erfolg INT(1), 
14.
	PRIMARY KEY (ErfolgID))"); 
15.
	 
16.
       // Hier wird in die Tabelle Erfolg bei der Spalte Erfolg 0 eingetragen, weil amanfang noch nichts GEUPDATED wurde und somit kein ERFOLG stattfand 
17.
       mysql_query("INSERT INTO tblerfolg VALUES(1,0)"); 
18.
	 
19.
	// Hier  wird geguckt, ob in der Tabelle erfolg eine 0 für nicht GEUPDATED steht oder eine 1 für GEUPDATED und anschließend der Wert in die Variable test gespeichert. 
20.
        $test = 0; 
21.
	$erfolggucken = mysql_query ("SELECT * FROM tblerfolg"); 
22.
	//$test = mysql_fetch_object($erfolggucken); 
23.
	while($test = mysql_fetch_object($erfolggucken)) 
24.
25.
	echo $test->Erfolg."<br />"; 
26.
27.
	 
28.
	//Hier wird geguckt, ob die variable test auf 0 steht für noch nicht GEUPDATED. Wenn sie auf 1 ist soll sie es nicht machen und wenn es auf 0 steht sol es das nachführende code ausführen. 
29.
       // --->Hier ist auch der Fehler ich weis net wie ich das beheben kann. Obohl in der test variable 1 steht nach dem ersten ausführen wir trotzdem das nachfolgende ausgeführt.WIESO????  
30.
	if($test->Erfolg == 0 ) 
31.
32.
	//Hier wird ein user in die Tabelle user aufgenommen 
33.
        mysql_query("INSERT INTO tbluser (Nname, Vname) VALUES('Hans', 'Mustermann')"); 
34.
	 
35.
	//Hier wird nachdem in die Tabelle user etwas eingefügt wurde, die tabelle erfolg GEUPDATED damit sie beim nächsten mal nicht hier wieder rein kommt, weil der INSERT befehl schon ausgeführt wurde. 
36.
	mysql_query("UPDATE tblerfolg SET Erfolg = 1"); 
37.
38.
 
39.
 
40.
        //Hier wird der Username für den User festgelegt, der aus den ersten  3 Buchstaben des Vor und -Nachnamens besteht 
41.
       //Funktioniert ohne Probleme jetzt. 
42.
	$sql = "SELECT UserID, concat(left(Nname,3),left(Vname,3)) AS Username FROM tbluser WHERE Username is NULL;"; 
43.
	$result = mysql_query($sql) OR die ("Fehler bei der SQL Abfrage:<br/ >" . mysql_error()); 
44.
	 
45.
	while($row = mysql_fetch_object($result)) 
46.
47.
		$updateSQL = "UPDATE tbluser SET Username='$row->Username', Passwort = 1234 WHERE UserID = $row->UserID"; 
48.
		if(mysql_query($updateSQL)) 
49.
		echo " Success: UserID: $row->UserID | Username: $row->Username <br />"; 
50.
		else 
51.
		echo "Fehler bei UserID: $row->UserID | Username: $row->Username <br />";	 
52.
	}
MfG
Sapzero
Mitglied: Sapzero
19.02.2009 um 20:39 Uhr
Nach langem Probieren hab ich den Fehler gefunden aber schaff es einfach net zu beheben.
Der Fehler liegt am $test. In der while schleife enthält die variable $test ein Wert, jedoch wenn ich diesen ausserhalb der schleife ausgebe ist sie aufeinmal leer.

01.
       $erfolggucken = mysql_query ("SELECT * FROM tblerfolg"); 
02.
	while($test = mysql_fetch_object($erfolggucken)) 
03.
04.
	echo $test->Erfolg."<br />";        // <--------- enthält ein Wert (1) 
05.
        $test = $test->Erfolg;                 // <--------- enthält ein Wert (1) 
06.
07.
  
08.
       echo $test->Erfolg;                // <--------- enthält kein Wertmehr ist leer 
09.
       echo $test;                              // <--------- enthält kein Wertmehr ist leer
Kann mir einer sagen wie ich den Wert, den ich noch in der schleife habe weiter ausserhalb der Schleife nenutzen kann??
Bitte warten ..
Mitglied: Gruentee
19.02.2009 um 21:08 Uhr
Hallo!

In Java ist es so, dass Variablen, die innerhalb eines Blockes (z.B. einer while-Schleife) definiert wurden auch nur dort gelten.
Die Lösung ist einfach:
Die Variable test einfach außerhalb der Schleife definieren und ihr dann in der Schleife einen Wert zuweisen.
Zumindest in Java ist die Variable, und damit hier vielleicht ihr Wert, zugänglich.

Vielleicht hilfts.
Bitte warten ..
Mitglied: Biber
19.02.2009 um 21:35 Uhr
Moin Sapzero,

Euch Entwicklern kann man/frau es aber auch nicht Recht machen - der Schnipsel macht doch genau, was Du ihm gesagt hast....

Du hast gesagt:
"Hey, solange mysql_fetch_object() tatsächlich ein Objekt zurückliefert (nämlich einen Datensatz),
solange mach irgendwelche Dönekens mit dem Datensatz inner while-Schleife.
Wenn mysql_fetch_object() KEINEN Datensatz (und somit kein Objekt) zurückliefert, sondern ein flapsiges FALSE,
dann brauchst Du ohne Objekt in der Schleife gar nicht erst was versuchen.
Kann ja eh nix werden."

Wenn aber $test gar kein Objekt ist (sondern nur ein 0815-FALSE-Billichwert),...
-----> was bitteschön soll denn "echo $test->Erfolg;" anzeigen, um Deinen Erwartungen gerecht zu werden?

Also ich als Code hätte genauso reagiert wie von Dir beschrieben....

P.S.
Kann mir einer sagen wie ich den Wert, den ich noch in der schleife habe weiter ausserhalb der Schleife nenutzen kann??
Jepp, klar.
Speichere/kopiere den Wert "$test->Erfolg" des Datensatzes, den Du hinterher noch brauchst, in einer Variablen (vom "richtigen" Typ),
solange das Objekt $test noch existiert. Also eine Zeile unter der Zeile, in der Du jetzt den Wert "$test->Erfolg" raus-echoest.

Grüße
Biber
Bitte warten ..
Mitglied: Sapzero
20.02.2009 um 00:41 Uhr
Hi,
es lag wirklich an der Variable ich hab ne andere genommen die ich zuvor ausserhalb gesetz habe und dann $test->erfolg in die neue variable gespeichert.
Danke für eure Hilfe.

MfG
Sapzero
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL 2008 Datenbankbackup in eine SQL 2005 Datenbank einfügen?
Frage von mymomoDatenbanken3 Kommentare

Moin! Ich muss bei einem Kunden ein aus SQL 2008 erstelltes Backup in eine SQL 2005 Datenbank einstellen. Wie ...

PHP
PHP und Mysql aus Datenbank auslesen und geänderte Daten einfügen
gelöst Frage von gamerffPHP4 Kommentare

Hallo Forum, könntet ihr mir bitte weiterhelfen, ich habe ein php Code mit dem ich einen Datensatz auslesen möchte, ...

PHP
PHP Daten aus Postgres Datenbank in HTML Dropdownmenü einfügen (SQL)
gelöst Frage von ITFloriPHP7 Kommentare

Hallo zusammen, ich bin gerade dabei eine kleine WebApp zu entwickeln und habe eine Frage zu SQL. Ich habe ...

Soziale Netzwerke
Anzeigencode einfügen?
Frage von TitanXSoziale Netzwerke11 Kommentare

Ich bin zufällig über diese Website gestolpert und wollte fragen wie ich einen Anzeigencode einfüge. Bitte mit genauer Anleitung ...

Neue Wissensbeiträge
Windows 10

Windows 10 Hello-Anmeldung per Foto ausgehebelt

Tipp von kgborn vor 1 StundeWindows 10

Windows Hello ist eine Funktion, um sich per Fingerabdruck-, Gesichts- oder Iriserkennung bei Windows 10-Geräten anzumelden (siehe), setzt aber ...

Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 9 StundenPerl2 Kommentare

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 9 StundenSicherheit1 Kommentar

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 1012 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Heiß diskutierte Inhalte
Windows Server
SCCM 2016: PXE Boot des Clients schlägt fehl
Frage von gabeBUWindows Server22 Kommentare

Hallo Zusammen Ich habe eine Testumgebung erstellt um über SCCM 2016 einen virtuellen Client aufzusetzen. Folgende Maschinen habe ich ...

Netzwerkgrundlagen
Belibiges Teilnetz einer Subnetzmaske rausfinden?
gelöst Frage von CenuzeNetzwerkgrundlagen19 Kommentare

Wundervollen Gutentag, mittlerweile kann ich Subnetting so einigermaßen, aber ein Problem habe ich noch. Netzwerkadresse und Boradcast errechnen ist ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless12 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Logging von "gesendeten Nachrichten" auf Terminalservern
gelöst Frage von Z3R0C0MM4N0THiN6Windows Server10 Kommentare

Hallo zusammen, kann mir jemand auf kurzem Wege sagen ob 1) die per Task-Manager (oder damals tsadmin) an Benutzer ...