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 :)
Hilfe ?
keiner eine lösung ? :red:
: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)
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);
hey vielen dank für die antworten :) werds mal ausprobieren :):)