Hi!
Ich habe eine Funktion für meine Community geschrieben, die die user_id (auto increment) aus der User-Tabelle holt und diese als Registrierungs-ID (reg_id) zusammen mit den optionalen user-infos in die Tabelle user _dat schreibt. Vor einiger Zeit hat noch alles geklappt. aber seitdem ich neulich mal wieder etwas gebastelt habe bekomme ich dauernd folgenden Fehler bei der Registrierung:
Warning: Unable to jump to row 0 on MySQL result index 3 in /community/include/user2.php4 on line 34
Hier nun die Funktion:
function save_user_dat ($user_name,$geb_tag,$geb_mon,$geb_jahr,$region,$geschlecht,$familie,$beruf,$homepage,$aim,$icq,$pro fil,$vismail)
{
global $feedback;
$region=urlencode($region);
$beruf=urlencode($beruf);
$homepage=urlencode($homepage);
$aim=urlencode($aim);
$profil=urlencode($profil);
if (!(ereg("^[0-9]{2}$", $geb_jahr))) {
$feedback .= ' ERROR - Geburtsjahr ungültig oder Du hast nichts eingegeben ';
$geb_jahr="";
$geb_mon="";
$geb_tag="";
}
if (!(ereg("^[0-9]{6,9}$", $icq))) {
$feedback .= ' ERROR - ICQ-Nummer ungültig oder Du hast nichts eingegeben ';
$icq="";
}
$aim=trim($aim);
if (!(eregi("^[0-9a-z]{3,16}$", $aim))) {
$feedback .= ' ERROR - AIM-Name ungültig oder Du hast nichts eingegeben ';
$aim="";
}
$user_name=strtolower($user_name);
$sql="SELECT user_id FROM user WHERE user_name='$user_name'";
$result=db_query($sql);
if (!$result) {
$feedback .= ' ERROR - '.db_error();
}
// hier kommt jetzt line 34!
$reg_id=mysql_result($result,0,"user_id");
unset($result);
$geb_date="19$geb_jahr-$geb_mon-$geb_tag";
if ($vismail) {
$vismail = 1;
} else {
$vismail = 0;
}
$sql="INSERT INTO user_dat (reg_id,geb_date,region,geschlecht,familie,beruf,homepage,aim,icq,profil,vismail) VALUES ('$reg_id','$geb_date','$region','$geschlecht','$familie','$beruf','$homepage','$aim','$icq','$profi l','$vismail')";
$result=db_query($sql);
if (!$result) {
$feedback .= ' ERROR - '.db_error();
}
}
db_query() entspricht mysql_query. is nur fehlerbehandlung mit drin.
Der Eintrag in die user Tabelle erfolgt unmittelbar vor dem in die user_dat.
Danke im Voraus für Antworten
Grüße Tim
Ich habe eine Funktion für meine Community geschrieben, die die user_id (auto increment) aus der User-Tabelle holt und diese als Registrierungs-ID (reg_id) zusammen mit den optionalen user-infos in die Tabelle user _dat schreibt. Vor einiger Zeit hat noch alles geklappt. aber seitdem ich neulich mal wieder etwas gebastelt habe bekomme ich dauernd folgenden Fehler bei der Registrierung:
Warning: Unable to jump to row 0 on MySQL result index 3 in /community/include/user2.php4 on line 34
Hier nun die Funktion:
function save_user_dat ($user_name,$geb_tag,$geb_mon,$geb_jahr,$region,$geschlecht,$familie,$beruf,$homepage,$aim,$icq,$pro fil,$vismail)
{
global $feedback;
$region=urlencode($region);
$beruf=urlencode($beruf);
$homepage=urlencode($homepage);
$aim=urlencode($aim);
$profil=urlencode($profil);
if (!(ereg("^[0-9]{2}$", $geb_jahr))) {
$feedback .= ' ERROR - Geburtsjahr ungültig oder Du hast nichts eingegeben ';
$geb_jahr="";
$geb_mon="";
$geb_tag="";
}
if (!(ereg("^[0-9]{6,9}$", $icq))) {
$feedback .= ' ERROR - ICQ-Nummer ungültig oder Du hast nichts eingegeben ';
$icq="";
}
$aim=trim($aim);
if (!(eregi("^[0-9a-z]{3,16}$", $aim))) {
$feedback .= ' ERROR - AIM-Name ungültig oder Du hast nichts eingegeben ';
$aim="";
}
$user_name=strtolower($user_name);
$sql="SELECT user_id FROM user WHERE user_name='$user_name'";
$result=db_query($sql);
if (!$result) {
$feedback .= ' ERROR - '.db_error();
}
// hier kommt jetzt line 34!
$reg_id=mysql_result($result,0,"user_id");
unset($result);
$geb_date="19$geb_jahr-$geb_mon-$geb_tag";
if ($vismail) {
$vismail = 1;
} else {
$vismail = 0;
}
$sql="INSERT INTO user_dat (reg_id,geb_date,region,geschlecht,familie,beruf,homepage,aim,icq,profil,vismail) VALUES ('$reg_id','$geb_date','$region','$geschlecht','$familie','$beruf','$homepage','$aim','$icq','$profi l','$vismail')";
$result=db_query($sql);
if (!$result) {
$feedback .= ' ERROR - '.db_error();
}
}
db_query() entspricht mysql_query. is nur fehlerbehandlung mit drin.
Der Eintrag in die user Tabelle erfolgt unmittelbar vor dem in die user_dat.
Danke im Voraus für Antworten
Grüße Tim
Kommentar