Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt usuwający te same rekordy
Forum PHP.pl > Forum > Przedszkole
Weles
Witam!
Mam pewien problem.

Mam tabelę: account

A w niej kolumnę 'ip' i są tam IP użytkowników.

I teraz potrzebuję:

- Jeśli jest więcej kont z takim samym ip, to tylko jednemu kontu tego użytkownika z największą ilością punktów w tabeli 'punkty' zostawić te punkty, a reszcie jego kont wyzerować punkty do 0.

Długo się głowiłem nad tym, lecz nie mam pomysłu jak to napisać.

Liczę na waszą pomoc,

Dziękuję z góry,
Pozdrawiam!
CTRL
Select z: ORDER BY punkty ASC, w pętli zeruj sobie punkty i zatrzymaj się na przedostatnim rekordzie, żeby ten z największą ilością został

Oczywiście też WHERE ip = '$ip'
Weles
$query = mysql_query("SELECT * FROM account ORDER BY punkty ASC");
while($q = mysql_fetch_array($query)) {
$znajdz = mysql_fetch_array(mysql_query("SELECT * FROM $ip='$q[ip]'"));
mysql_query("UPDATE account SET punkty='0' WHERE ip='$znajdz[ip]'");
}

Dobra, ale jak nie kasować tego największego rekordu ?

$i++;

if(!$i == 1) ? :F
CTRL
Po pierwsze smile.gif
  1. $znajdz['ip']


  1. $query = mysql_query("SELECT * FROM account ORDER BY punkty DESC");
  2. $array = mysql_fetch_array($query);
  3. $id = $array['id'] //ten z największym
  4. while($q = mysql_fetch_array($query))
  5. {
  6. if($q['id']==!$id)
  7. {
  8. mysql_query("UPDATE account SET punkty='0' WHERE ip='".$q['id']."'");
  9. }
  10. }


Jednak daj desc, i przed pętlą pobierz id tego co ma najwięcej. Potem w pętli sprawdzaj czy nie jest to ten z największym i usuwaj im punkty

@down: Nie wykluczam skoro wkleiłeś po prostu, chciałem podsunąć pomysł żebyś sam sobie to przerobił do własnych potrzeb i do własnej tabeli w bazie, więc cieszę się że Ci działa. Jeśli chcesz to kliknij pomógł tongue.gif
Weles
Twój skrypt mi nie zadziałał, ale podsunąłeś mi pomysł i napisałem taki:

  1. <?php
  2. $query = mysql_query("SELECT * FROM $baza_account.account ORDER BY is_monety DESC");
  3. while($q = mysql_fetch_array($query)) {
  4. $i=0;
  5. $konta = mysql_query("SELECT * FROM $baza_account.account WHERE utworzone_ip='$q[utworzone_ip]' ORDER BY is_monety DESC");
  6. while($k = mysql_fetch_array($konta)) {
  7. $i++;
  8. if($i > 2) {
  9. mysql_query("UPDATE $baza_account.account SET is_monety='0' WHERE id='$k[id]'");
  10. }
  11. }
  12. }
  13. ?>


I pyka prawidłowo.
Dzięki za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.