Welkom, Gast. Je bent niet ingelogd.

Delete de oudste

Thomaz
'
Geplaatst op: 09 Apr 2007, 16:21
PimpCoins: 0
💸+
Bewerken Quote

Hallo allemaal,

Mijn login systeem werkt met hashes, en omdat soms de hashes bij het uitloggen niet worden gewist. Of doordat de members worden uitgelogd doordat de cookies verlopen. Wil ik iets hebben dat als er meer dan 5 hashes op een bepaalde user staan, dat die dan de oudste verwijderd net zolang tot dat er nog maar 5 hashes over zijn.

Maar omdat ik nogal inspiratieloos ben, weet ik niet hoe ik dit moet aanpakken. Ik had het volgende stukje script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

$Hquery = "SELECT time, user FROM hash WHERE user='".htmlspecialchars(mysql_real_escape_string($_SESSION['user']))."'";  
$Hresult = mysql_query($Hquery) or die (mysql_error());  
$mnr = mysql_num_rows($Hresult);

while ($mnr > 5)
{
    $delet = ($mnr - 5);
    
    $delet2 = mysql_fetch_assoc($Hresult);
        
}
?>

De hash tabel ziet er als volgt uit:

id | hash | Hash_id | User | time |

Wie weet een leuk maniertje om ze te verwijderen?

Bij voorbaat dank,

Thomas

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 09 Apr 2007, 16:43
PimpCoins: 0
💸+
Bewerken Quote

Ik kwam zo 123 niet ff op een makkelijke oplossing, dus dan maar ff omslachtig:

1
2
3
4
5
6
<?php
$sql = mysql_query("SELECT hash, count( * ) as vijf FROM hash GROUP BY user HAVING vijf > 5");
$result = mysql_fetch_assoc($sql);

mysql_query("DELETE FROM hash WHERE hash='" . $result['hash'] . "'");
?>

Thomaz
'
Geplaatst op: 09 Apr 2007, 17:08
PimpCoins: 0
💸+
Bewerken Quote

En dan moet dat laatste zeker in een while voor als er iemand bijv. 7 hashes heeft?

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 09 Apr 2007, 17:11
PimpCoins: 0
💸+
Bewerken Quote

Thomaz schreef:

En dan moet dat laatste zeker in een while voor als er iemand bijv. 7 hashes heeft?

uh nee, want hij delete alles meer dan 5 hashes, dus als member 'tjappie' in totaal 12 hashes heeft, dan zullen er 7 verwijderd worden. dus hoeft niks in een while gezet te worden.

Thomaz
'
Geplaatst op: 09 Apr 2007, 18:43
PimpCoins: 0
💸+
Bewerken Quote

Badeendje schreef:

[...]

uh nee, want hij delete alles meer dan 5 hashes, dus als member 'tjappie' in totaal 12 hashes heeft, dan zullen er 7 verwijderd worden. dus hoeft niks in een while gezet te worden.


Ik heb ff getest, maar hij verwijderd gewoon de bovenstaande, en niet de oudste. En dit kan tot problemen lijden, doordat als je inlogt en dat is toevallig de 5e hash, wordt je direct weer uitgelogt.

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 09 Apr 2007, 18:49
PimpCoins: 0
💸+
Bewerken Quote

Thomaz schreef:

[...]
Ik heb ff getest, maar hij verwijderd gewoon de bovenstaande, en niet de oudste. En dit kan tot problemen lijden, doordat als je inlogt en dat is toevallig de 5e hash, wordt je direct weer uitgelogt.

ow dan moet je ff limiten he of was et nou orderen met een desc, kom er ff zo 123 niet op, test het ff uit

📫

Nieuw privébericht

🔥

Registreren


Login