PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL&PHP Datensätze werden falsch ausgelesen


tomtom
2005-01-12, 20:20:18
Hi Leute,

Ich habe folgendes Problem: Ich möchte über einen Aktivierungslink, den neue registrierte Members per E-Mail erhalten den Account des jeweiligen Members aktivieren lassen. Im Aktivierungslink übertrage ich die aktuelle ID (wird später durch einen verschlüsselten Code ersetzt). Über folgenden Code will ich dann die Inhalte aus dem jeweiligen Datensatz auslesen.


include("mainfiles/db_data.php");
$res = mysql_db_query("$db_data_name", "SELECT * FROM w3fx_members WHERE ID=\"" . $actuid . "\"");
$num = mysql_num_rows($res);

$activated = mysql_result($res,"activated");
$act_activated = mysql_result($res,"act_activated");
$blocked = mysql_result($res,"blocked");
$actv_name = mysql_result($res,"username");
$act_id = mysql_result($res,"ID");
...


In der Datei db_data.php stehen die Zugangsdaten der Datenbank. Weiters wird der Code, der zum Aufbau der Datenbankverbindung verwendet wird (mysql_connect(...)) aus dieser Datei inkludiert. -> Die Verbindung zur DB funktioniert einwandfrei.

Allerdings werden die einzelnen Felder (activated, act_activated, blocked, username und ID) aus dem Datensatz nicht richtig ausgelesen. Eine Überprüfung der Variablen, in die die Attribute hineingeschrieben werden ergab, dass in jeder Variable die ID steht (die mit dem Link übergeben wird). activated sollte beim auslesen beispielsweise den String "no" beinhalten, anstatt dessen steht leider die jeweilige ID drin, weshalb keine weitere Verarbeitung der Daten möglich ist.
Alle Namen und Variablen wurden überprüft, die Verbindung zur Datenbank besteht ebenfalls!

Und ich finde den Fehler einfach nicht...wäre super wenn mir wer helfen könnte!

Vielen Dank, MfG
terminator2k3

clm[k1]
2005-01-12, 22:24:59
$dbRes = mysql_query("SELECT * FROM w3fx_members WHERE ID='$actuid'");
if(mysql_error() != "") die("query-error!");

$aLine = mysql_fetch_array($dbRes);

$activated = $aLine['activated'];
$act_activated = $aLine['act_activated'];
$blocked = $aLine['blocked'];
$actv_name = $aLine['username'];
$act_id = $aLine['ID'];


Versuchs mal so!

AFAIK ist die funktion mysql_db_query() depricated, sollte also nicht mehr verwendet werden!

Und wenn man die daten in ein array packt, und daraus ausliest, dann ist das IMO wesentlich kompfortabler!

Außerdem wird mysql_result so verwendet: mysql_result ( resource Ergebnis-Kennung, int Datensatz [, mixed Feld])

Du hast die datensatzangabe vergessen - kein wunder das du immer nur das selbe raus bekommen hast ;)


gruß
clm[k1]

tomtom
2005-01-13, 18:28:59
Hmm, ich habs mal mit deiner Methode probiert. Wie übergeb ich mysql_query allerdings den Namen der Datenbank? Ohne die kann die Funktion nämlich logischerweise wenig anfangen...(kreg gleich die Fehlermeldung :/ )

Trotzdem mal danke ;)
MfG

clm[k1]
2005-01-13, 19:31:10
Hmm, ich habs mal mit deiner Methode probiert. Wie übergeb ich mysql_query allerdings den Namen der Datenbank? Ohne die kann die Funktion nämlich logischerweise wenig anfangen...(kreg gleich die Fehlermeldung :/ )

Trotzdem mal danke ;)
MfG

Wie wärs mit: mysql_select_db("db_name"); ???


gruß
clm[k1]

tomtom
2005-01-13, 19:46:45
lol...man bin ich blöd^^
thx ;)

XPiRE
2005-01-15, 13:21:58
kannste sonst auch direkt mit in query pecken...

$query = 'SELECT... blablablabla';

$Result = mysql_query($query, $Datenbankhandle);

:biggrin: Basti