ďťż
Podstrony
|
telcocafePiszę do Vallheru miniskrypt do sprawdzania kont po IP.<?php $Title = 'Sprawdzanie multikont'; require_once ('includes/head.php'); $GetGracze = mysql_query("SELECT ip FROM players;"); while ($gracz = mysql_fetch_array($GetGracze)): $PobierzSe = mysql_query ('SELECT id, user FROM players WHERE ip="'.$gracz['ip'].'";'); if (mysql_num_rows($PobierzSe) > 1) { while ($wyn = mysql_fetch_array($PobierzSe)): echo '['.$wyn['id'].'] <b>'.$wyn['user'].'</b> ('.$gracz['ip'].')<br />'; endwhile; } endwhile; require_once ('includes/foot.php'); ?> Oto cały kod. Jednak kiedy skrypt się wykonuje pokazuje np. jeśli ktoś ma 2 konta to 2 razy ten wynik w postaci [ID] User (IP). Przykład: [142] ZEDD (83.25.22.9) [143] Kiku,Nights Flower (83.25.22.9) [142] ZEDD (83.25.22.9) [143] Kiku,Nights Flower (83.25.22.9) Da radę zrobić tak żeby pokazywał tylko raz? (Jakoś wykluczyć jeżeli znajdzie już multikonto sprawdzanie reszty). Może: SELECT id, user FROM players WHERE ip="'.$gracz['ip'].'" group by ip; // ale chyba cos zle kod zrozumiałem :/ Użytkownik master_dos edytował ten post 07 marzec 2007, 15:44 To w ogóle nic nie zwraca wtedy. Chce żeby mi pokazał wszystkie id, user jeżeli jest wiecej niz jedno takie IP. nie czasem tutaj: while ($gracz = mysql_fetch_array($GetGracze)): na końcu ma być średnik zamiast dwukropka? Użytkownik loguś edytował ten post 07 marzec 2007, 16:27 Nie, średnik zamyka, a to ma byc pętla. Nikt nie wie ? $GetGracze = mysql_query("SELECT ip FROM players;"); Zmień może na: $GetGracze = mysql_query("SELECT ip FROM players limit 1;"); Ale fakt - mało opisałeś, trzeba się dużo domyślać :D No i nie wiem, czy działa ;] Próbowałem z limit 1 i nie działa. Przedstawię to bardziej szczegółowo Jest gra na Vallheru. W tabeli players jest pole 'ip' w którym znajduje się IP danego gracza. Skrypt ma za zadanie pobrać wszystkie adresy ip z bazy danych, a następnie jeżeli jakieś IP występuje więcej niż 1 gracz ma wyświetlić id oraz user dla danego gracza. Wszystko niby jest dobrze, ale jeżeli gracz ma 2 konta, to 2 razy powtarza wynik (konto 1 jest multikontem dla 2, a 2 multikontem dla 1). Chodzi mi o to że jeśli ID 1 ma ip 127.0.0.1 a ID 2 ip 127.0.0.1 to ma wyświetlać ID1: 127.0.0.1 ID2: 127.0.0.1 Lecz wyświetla ID1: 127.0.0.1 ID2: 127.0.0.1 ID1: 127.0.0.1 ID2: 127.0.0.1 mówie ci, spróbuj zamiast kropki średnik na końcu, Loguś: takim sposobem się zapisuje pętle również: while (1) : endwhile; Średnik zakańcza, a to ma otwierać. Zakończone jest przez endwhile. To czy tam jest kropka czy średnik nic nie ma do mojego problemu. @pbnan: dzięi że powiedziałeś, pierwszy raz sie z tym spotykam A co do kodu to poco robisz tą pętle 2 razy? nie wystarczy tylko raz? No to przedstaw mi ten skrypt tak aby działał prawidłowo i zawierał jedną pętle. <?php $Title = 'Sprawdzanie multikont'; require_once ('includes/head.php'); $PobierzSe = mysql_query ('SELECT id, user FROM players;'); if (mysql_num_rows($PobierzSe) > 1) { while ($wyn = mysql_fetch_array($PobierzSe)): echo '['.$wyn['id'].'] <b>'.$wyn['user'].'</b> ('.$gracz['ip'].')<br />'; endwhile; } require_once ('includes/foot.php'); ?> W takim wypadku skrypt pobierze WSZYSTKICH użytkowników nie zważając na adres IP, którego i tak skrypt nie zna bo $gracz nie istnieje. ja znalazłęm taki kod: SELECT * FROM `aaa` WHERE CONCAT_WS( "-", `b` ) = "1" ORDER BY `b` LIMIT 0 , 30 a znalazłęm go bawiac się bazą w php my admin chcicałem dodać do bazy klucz i wybrałem pole co miało już kilka takich samych wartości i pokazał się ten kod jak się wykonał wybrały się bazy tylko rekordy o tej samej wartości nie wiem czy to w czymś pomoże Użytkownik gregorywojcik edytował ten post 07 marzec 2007, 20:38 |
|||
Sitedesign by AltusUmbrae. |