XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   Mysql Abfrage geht nicht (http://xhtmlforum.de/showthread.php?t=62362)

rs-web 12.09.2010 20:54

Mysql Abfrage geht nicht
 
Hi,
folgendes Script und die erste Query wird ausgeführt aber die 2te nicht. Habe versucht den Fehler zu suchen aber keine Chance. Mysql sagt immer iwas in der Nähe der ID='$id' falsch ist, aber da das ja zwei Mal das gleiche ist, hilft mir das nix:

PHP-Code:

$sql "UPDATE nicht_aktivierte_benutzer SET aktivierungsCode = 'aktiviert' WHERE ID='$id'";
$GLOBALS['DB']->query($sql);
$sql "SELECT ID, benutzername, passwort, email, registrierungsDatum FROM nicht_aktivierte_benutzer WEHRE ID='$id'";
$daten $GLOBALS['DB']->query($sql); 

Also wenn ich das Aufrufe, steht in der Spalte aktivierungsCode "aktiviert.

LG rs-web

stravid 12.09.2010 22:22

In
Code:

$sql = "SELECT ID, benutzername, passwort, email, registrierungsDatum FROM nicht_aktivierte_benutzer WEHRE ID='$id'";
ist ein Schreibfehler, es sollte wohl WHERE und nicht WEHRE heißen.
Code:

$sql = "SELECT ID, benutzername, passwort, email, registrierungsDatum FROM nicht_aktivierte_benutzer WHERE ID='$id'";

Praktikant 12.09.2010 22:55

Es ist zwar von der Syntax her korrekt so, aber ich würde es wegen der besseren Leserlichkeit eher folgendermaßen machen:
PHP-Code:

$sql "UPDATE nicht_aktivierte_benutzer SET aktivierungsCode = 'aktiviert' WHERE ID='" $id "'";
$GLOBALS['DB']->query($sql);
$sql "SELECT ID, benutzername, passwort, email, registrierungsDatum FROM nicht_aktivierte_benutzer WHERE ID='" $id "'";
$daten $GLOBALS['DB']->query($sql); 


stravid 13.09.2010 01:28

Zitat:

Zitat von Praktikant (Beitrag 474408)
Es ist zwar von der Syntax her korrekt so, aber ich würde es wegen der besseren Leserlichkeit eher folgendermaßen machen:
PHP-Code:

$sql "UPDATE nicht_aktivierte_benutzer SET aktivierungsCode = 'aktiviert' WHERE ID='" $id "'";
$GLOBALS['DB']->query($sql);
$sql "SELECT ID, benutzername, passwort, email, registrierungsDatum FROM nicht_aktivierte_benutzer WEHRE ID='" $id "'";
$daten $GLOBALS['DB']->query($sql); 


Du hast den gleichen Schreibfehler in deinem Code wie rs-web!

Praktikant 13.09.2010 07:10

Zitat:

Zitat von HEXMACHINE (Beitrag 474418)
Du hast den gleichen Schreibfehler in deinem Code wie rs-web!

Sorry. Habs im Halbschlaft kopiert und vergessen den Fehler zu verbessern, werde es kurz nachholen.

rs-web 13.09.2010 07:31

Ok,

danke euch beiden. Auf den Schreibfehler mit dem WHERE wäre ich nie gekommen. Und das mit den Variablen ist auch gut zu wissen.

PS Guten Morgen :D

rs-web 13.09.2010 08:00

Bin gerade auf das nächste Problem gestoßen:
Ich möchte eine ID immer sechstellig haben: 000045, 000046.
PHP-Code:

$sql "SELECT ID FROM nicht_aktivierte_benutzer WHERE aktivierungsCode = '".$zufallsString."'";
$ID $GLOBALS['DB']->query($sql);//Sql Befehl wir ausgeführt
$ID $ID[0]["ID"];
$neueId str_pad($ID6"0"STR_PAD_LEFT);
$sql "UPDATE nicht_aktivierte_benutzer SET ID = '".$neueId."' WHERE aktivierungsCode = '".$zufallsString."'";
$GLOBALS['DB']->query($sql);
echo 
$GLOBALS['DB']->lastSqlError(); 

Es gibt keine Fehlermeldung, aber die ID belbt nach wie vor 2 stellig. Achja die ID wird mit Auto_increment erstellt. Wenn iich mir den String testweise vor der Abfrage ausgeben lasse ist er sechstellig. Die Spalte ist von Type int(6).

LG rs-web

Praktikant 13.09.2010 08:15

Führende Nullen in Zahlenfeldern werden bei MySQL gelöscht. Ich glaube das ist bei allen Datenbankentypen so. Habe auch noch keinen Weg gefunden das zu umgehen, außer ein Textfeld draus zu machen was aber nicht Sinn der Sache ist.

rs-web 13.09.2010 08:25

Danke für deine Antwort.
Gilt das auch für Abfragen?
Also wenn ich ein Feld hab in das dann 000045 eingetragen wird und in der DB 45 steht, kommt dann true raus?

LG rs-web

uspri 13.09.2010 08:46

Den Wert kannst Du doch für die Ausgabe "hübschen", aber intern ohne die führenden Nullen arbeiten.


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

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2021, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2020