also ich würde an deiner Stelle zuerst einmal nicht immer die gleichen Variablennamen zu übergeben. Durch die gleiche Benennung übergibst du in den Zeilen
PHP-Code:
$userdaten mysql_query($userdaten_1);
$userdaten mysql_fetch_array($userdaten);
...
$userdaten mysql_fetch_assoc($userdaten); 
einen falschen Variableninhalt an die Funktion mysql_fetch_assoc.
Versuch es mal so:
PHP-Code:
$userdaten mysql_query($userdaten_1);
$eineVariable mysql_fetch_array($userdaten);
...
$zweiteVariable mysql_fetch_assoc($userdaten); 
Durch die gleichen Variablennamen überschreibst du dir die Inhalte, wodurch dann Fehlermeldungen entstehen. Außerdem wird das ganze mit unterschiedlichen Variablennamen auch übersichtlicher