Benutzerdaten auslesen und verändern.

Begonnen von vittatus, 07 Februar 2008, 12:21:32

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

vittatus

Hallo,
habe ein kleines Problem. und zwar möchte ich gerade eine datei schreiben das alle Premiummitglieder von meiner seite wieder zurücksetzt. folgendes habe ich bisher was aber nicht wirklich funktioniert.

function removepremiumauto() {
        global $user_prefix;

                include("header.php");
                GraphicAdmin();
            OpenTable();
              echo "<center><font class=\"title\"><b>[Autolöschung]</b></font></center>";
              CloseTable();


$result = sql_query("SELECT * FROM `mx_user_premium`");
while (list($uname, $laufzeit, $premiumseid, $premiumbis, $bearbeitet) = sql_fetch_row($result)) {
               
$userdata = mxGetUserDataFromUsername($uname);
               
if($premiumbis < time()) {

$qry = "UPDATE ".$user_prefix."_users SET user_ingroup='1' WHERE uname='".$uname."'";
$result = sql_query($qry);

$qry = "DELETE FROM ".$user_prefix."_user_premium  WHERE uname='".$uname."'";
$result = sql_query($qry);

$qry = "DELETE FROM ".$user_prefix."_ehe  WHERE uid='".$userdata['uid']."'";
$result = sql_query($qry);

$qry = "DELETE FROM ".$user_prefix."_ehe  WHERE verheiratetmit='".$userdata['uid']."'";
$result = sql_query($qry);

        }
                OpenTable();
              echo "<center>".$uname."<br></center>";
              CloseTable();
}       
                include("footer.php");               
}


Folgendes sollte passieren.
Er soll die datenauslesen: Bis wann hat der benutzer premium, wenn die premiumzeit < als die normale zeit ist sollen die benutzer wieder aus der premium tabelle gelöscht werden und wieder auf normal user status gesetzt werden. wo is der fehler ? er löscht immer nur einen user und nicht alle wo das zutrifft.

Hilfe ?

Lg Markus :)

vittatus


bajazzo

 :gruebel: wenn er nur einen löscht und nicht alle, dann stimmt die laufzeit nicht!
schau mal ob du die while schleife richtig aufgebaut hast (klammer)
Genie ist die grenzenlose Bereitschaft, sich Mühe zu geben.

Andi

Moin :)

Stichwort: Variable $result

while (list($uname, $laufzeit, $premiumseid, $premiumbis, $bearbeitet) = sql_fetch_row($result)) {
               


Du verwendest die Variable $result für das resultset der Datenbankabfrage in der Schleife.

Innerhalb der Schleife überschreibst du aber diese Variable $qry = "UPDATE ".$user_prefix."_users SET user_ingroup='1' WHERE uname='".$uname."'";
$result = sql_query($qry);

Damit wird die Schleife abgebrochen...

Verwende innerhalb der Schleife einen anderen Namen, als $result. Bzw. eigentlich ist die Zuweisung eh unnötig. Das genügt auch:

$qry = "UPDATE ".$user_prefix."_users SET user_ingroup='1' WHERE uname='".$uname."'";
sql_query($qry);

$qry = "DELETE FROM ".$user_prefix."_user_premium  WHERE uname='".$uname."'";
sql_query($qry);

$qry = "DELETE FROM ".$user_prefix."_ehe  WHERE uid='".$userdata['uid']."'";
sql_query($qry);

$qry = "DELETE FROM ".$user_prefix."_ehe  WHERE verheiratetmit='".$userdata['uid']."'";
sql_query($qry);

schön´s Grüssle, Andi

vittatus

hey vielen dank für die antworten :) werds mal ausprobieren :):)