PHP und SQL: Datensätze werden nicht richtig ausgelesen!

imagine

Grünschnabel
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.

PHP:
 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
imagine
 
http://de2.php.net/manual/de/function.mysql-result.php

Der Aufruf muss folgende Form haben:
Code:
mixed mysql_result ( resource Ergebnis-Kennung, int Datensatz [, mixed Feld])

Soll heissen, der zweite Parameter muss die Nummer des Datensatzes sein und erst der dritte Parameter das Feld.

Bei dir müsste es dann so aussehen:
PHP:
   $activated = mysql_result($res, 0, "activated"); 
   $act_activated = mysql_result($res, 0, "act_activated"); 
   $blocked = mysql_result($res, 0, "blocked"); 
   $actv_name = mysql_result($res, 0, "username"); 
   $act_id = mysql_result($res, 0, "ID");

Aber verwende doch einfach mysql_fetch_row().
Ist einfacher, schneller und komfortabler, Details siehe hier:
http://de2.php.net/manual/de/function.mysql-fetch-row.php

swEEper
 
Zurück