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

Datenbank eweitern

Frage Entwicklung Datenbanken

Mitglied: Sapzero

Sapzero (Level 1) - Jetzt verbinden

17.02.2009, aktualisiert 19.02.2009, 3357 Aufrufe, 12 Kommentare

Hi,
ich komme mit etwas nicht weiter undzwar habe ich eine Datenbank erstellt, welche die Atribute |UserID, Vorname, Nachname, Passwort, Username| hat.
In Userid, Vorname und Nachname steht was drinne und in passwort und Username nichts (NULL).
Jetzt will ich die ersten drei buchstaben von den Vornamen und Nachnamen nehmen und per Updatebefehl in den Usernamen einfügen

Beispiel: UserID VName NName Passwort Username
... Hans Mustermann ... MusHan

Dies habe ich so gelösst aber funktioniert jedoch noch nicht.
01.
$user = mysql_query("SELECT UserID, concat(left(3,Nname),left(3,Vname)) AS Username FROM tbluser WHERE Username = NULL"); 
02.
echo mysql_error(); 
03.
$a =  mysql_fetch_assoc($user); 
04.
        $a["Username"]; 
05.
echo "-----".$a["Username"]."-------"; 
06.
	 
07.
	while($a =  mysql_fetch_assoc($user)) 
08.
09.
		$b = $a["Username"]; 
10.
		mysql_query("UPDATE tbluser SET Username = $b WHERE UserID = "); 
11.
	}	
Ich hoffe jemand kann mir da weiter helfen

MfG
Sapzero
Mitglied: Dani
17.02.2009 um 22:20 Uhr
Hi,
ich würde es mal so probieren:
01.
<?php 
02.
 
03.
$sql="SELECT UserID, concat(left(3,Nname),left(3,Vname)) AS Username FROM tbluser WHERE Username = NULL;"; 
04.
$result = mysql_query($sql) OR die ("Fehler bei der SQL Abfrage:<br/ >" . mysql_error()); 
05.
$row=mysql_fetch_object($result); 
06.
 
07.
echo "-----".$row->Username."-------"; 
08.
 
09.
$sql="UPDATE tbluser SET Username = ".$row->Username." WHERE UserID = ".$row->UserID.";"; 
10.
mysql_query($sql) OR die ("Fehler bei der SQL Abfrage:<br/ >" . mysql_error()); 
11.
?>
Natürlich ungetestet....


Grüße,
Dani
Bitte warten ..
Mitglied: filippg
17.02.2009 um 22:59 Uhr
Hallo,

die Konstruktion " AS Username [...] WHERE Username [...]" ist eher unglücklich. Nimm "AS Kuerzel". Weiterhin habe ich die PHP-Evalulationsregeln nicht mehr klar im Gedächtnis, aber ich vermute mal, in "mysql_query("UPDATE tbluser SET Username = $b WHERE [...]" wertet er $b nicht aus, also liebe "mysql_query("UPDATE tbluser SET Username = "+$b+" WHERE[...]". Und es ist immer sehr empfehlenswert, bei einer WHERE-Klausel auch einen entsprechend qualifizierenden Wert mit anzugeben, also "WHERE UserID = " + $a["UserID"]. Und ganz großartig ist es auch, wenn man nicht einfach postet "funktioniert jedoch noch nicht" sondern beschreibt, worin sich der Fehler äußert, und was man zu seiner Feststellung schon alles unternommen hat.

Gruß

Filipp
Bitte warten ..
Mitglied: Sapzero
17.02.2009 um 23:01 Uhr
Danke für deine Antwort.
Ich habs Probiert da kommt dann das hier

------------Fehler bei der SQL Abfrage:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE UserID =' at line 1

Wo könnte den der Fehler liegen?
Bitte warten ..
Mitglied: Sapzero
17.02.2009 um 23:04 Uhr
Ich habe schon vieles probiert jedoch liegt nicht das Problem daran das ein Fehler auftaucht. Das Problem ist das es nichts macht und die Tabelle nicht verändert wird und wie gesagt es auch kein fehler anzeigt.
Bitte warten ..
Mitglied: Dani
17.02.2009 um 23:09 Uhr
Ah...folgende Zeile:
01.
02.
$sql="UPDATE tbluser SET Username = '".$row->Username."' WHERE UserID = '".$row->UserID."';"; 
03.
mysql_query($sql) OR die ("Fehler bei der SQL Abfrage:<br/ >" . mysql_error()); 
Bitte warten ..
Mitglied: Sapzero
17.02.2009 um 23:18 Uhr
Ja der Fehler ist weg doch der macht immer noch nicht das was ich will in Username steht immer noch NULL.
Eigentlich macht er genau das wie von meinem Quellcode. Aber ich glaube schon sehr nah an der richtigen Lösung dran wo könnte wohl der fehler liegen?
Bitte warten ..
Mitglied: Sapzero
17.02.2009 um 23:21 Uhr
01.
<?php 
02.
 
03.
$sql="SELECT UserID, concat(left(3,Nname),left(3,Vname)) AS Username FROM tbluser WHERE Username = NULL;"; 
04.
$result = mysql_query($sql) OR die ("Fehler bei der SQL Abfrage:<br/ >" . mysql_error()); 
05.
$row=mysql_fetch_object($result); 
06.
 
07.
echo "-----".$row->Username."-------";
er müsste doch hier schon bei echo "-----".$row->Username."-------"; etwas ausgeben, jedoch tut er dies net kann der Fehler vllt dann im SELECt liegen????
Bitte warten ..
Mitglied: godlie
18.02.2009 um 07:32 Uhr
Dann mach das ganze doch mal "Zeilenweise":

<code>
$sql="SELECT UserID, concat(left(3,Nname),left(3,Vname)) AS Username FROM tbluser WHERE Username = NULL;";
$result = mysql_query($sql) OR die ("Fehler bei der SQL Abfrage:<br/ >" . mysql_error());
while($row=mysql_fetch_object($result)) {
$updateSQL = "UPDATE tbluser SET Username='$row->Username' WHERE UserID = $row->UserID";
if(mysql_query($updateSQL))
echo " Success: UserID: $row->UserID | Username: $row->Username <br />"
else
echo "Fehler bei UserID: $row->UserID | Username: $row->Username <br />;
}
Bitte warten ..
Mitglied: Sapzero
18.02.2009 um 17:20 Uhr
Ich hab das mal versucht aber es klappt net. Ich hab bemerkt das er garnicht in die while schleife kommt es muss also schon vorher ein Fehler liegen. Wenn ich in die while schleife eine einfache Ausgabe mache, wie echo "hallo"; gibt er nichts aus also kann nur schon vorher der Fehler liegen.
Bitte warten ..
Mitglied: Dani
18.02.2009 um 19:02 Uhr
Hi,
probier es mal so:
01.
<?php 
02.
 
03.
$sql="SELECT UserID, concat(left(3,Nname),left(3,Vname)) AS Nick FROM tbluser WHERE Username = 'NULL';"; 
04.
$result = mysql_query($sql) OR die ("Fehler bei der SQL Abfrage:<br/ >" . mysql_error()); 
05.
$row=mysql_fetch_object($result); 
06.
 
07.
echo "-----".$row->Nick."-------";
Falls immer noch nichts ausgegeben worden ist, füge noch ein "echo $sql" hinzu und nimm diesen Befehl und führe ihn direkt im phpMyAdmin aus.


Grüße,
Dani
Bitte warten ..
Mitglied: filippg
18.02.2009 um 19:25 Uhr
Hallo,

ja, das kann sein. Vergleiche mit den herkömmlichen Vergleichsoperatoren auf NULL sind immer etwas schwierig (auch wenn sie Zugelassen sind, http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html). Ersetzte "= NULL" durch "IS NULL". Und stell vorher nochmal sicher, dass das Feld tatsächlich den Wert Null hat und nicht ein leerer String ist. Zumindest ist die Ursache, wenn die While-Schleife nicht betreten, dass kein Ergebnis in $result ist.
In phpMyAdmin kann man auch SQL-Querys direkt gegen die DB fahren und damit sowas einfach austesten.

Gruß

Filipp
Bitte warten ..
Mitglied: Sapzero
19.02.2009 um 15:24 Uhr
Hi,
vielen Dank. Es funktioniert nun. Es lag zum einem am = NULL und da war noch ein fehler im concat.

01.
// Falsch 
02.
$sql="SELECT UserID, concat(left(3,Nname),left(3,Vname)) AS Nick FROM tbluser WHERE Username = 'NULL';"; 
03.
 
04.
//Richtig 
05.
$sql="SELECT UserID, concat(left(Nname,3),left(Vname,3)) AS Nick FROM tbluser WHERE Username is NULL;";
MfG
Sapzero
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Datenbanken
Frage von MahsaaDatenbanken1 Kommentar

Hallo , ich habe folgende Abfrage und möchte ich jetzt die Summe aller Summenfelder abbilden. wie kann ich machen? ...

Datenbanken
Access Datenbank - Nach Eingabe soll die Datenbank durchsucht werden
gelöst Frage von tomi93Datenbanken1 Kommentar

Hallo, ich bin dabei eine Datenbank für unser recht kleines Lager zu erstellen (Es lohnt sich keine Lagerverwaltungssoftware anzuschaffen) ...

Datenbanken
Datenbank im Intranet
gelöst Frage von abuelitoDatenbanken7 Kommentare

Hallo an Alle, ich habe folgendes Problem Zudem bin ich in Sachen Datenbank noch ziemlich grün hinter den Ohren ...

Microsoft
Inventarisierung Datenbank
Frage von Timmi1987Microsoft1 Kommentar

Hallo, ich möchte gerne eine Datenbank aufbauen für unsere Inventarisierung. Zurzeit läuft diese über eine Excel-Datei, die sehr umständlich ...

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 15 StundenMikroTik RouterOS6 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 15 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 18 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 23 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Festplatten, SSD, Raid
USB Stick recovery
Frage von petereFestplatten, SSD, Raid15 Kommentare

Hallo, ich habe einen defekten USB-Stick, der nicht mehr lesbar ist. Er wird in WIN als unbekanntes Volume mit ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...