Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: porównanie ip z dwóch tabel HELP !
Forum PHP.pl > Forum > Bazy danych
slodki21
witam mam spam killera jest tam rowniez tabelka pokazujaca konkretne ip oraz ilosc dodanego przez nie spamu. druga tabela to ban gdzie blokuje ip ktore zablokuje spam killer i teraz sedno mojego pytania: proje zrobic spam killerze dodatkowa kolumn w ww tabeli gdzie bedzie pokazywalo mi czy danw nr ip znajduje sie juz w ban czy nie. probowalem juz prawie wszystkiego i za kazdym razem w kolumnie pokazuje mi sie albo ze wszystkie ip sa zablokowane albo nie :/ bardzo bym prosil o pomoc.

  1. <?php
  2. echo '<table align="center" border="1">
  3.   <tr>
  4.   <td bgcolor="'.$color[6].'" class="uni_01" align="center"><b><font color="'.$color[7].'">Lp</b></td>
  5.   <td bgcolor="'.$color[6].'" class="uni_01" align="center"><b><font color="'.$color[7].'">IP</b></td>
  6.   <td bgcolor="'.$color[6].'" class="uni_01" align="center"><b><font color="'.$color[7].'">Prób</b></td>
  7.   <td bgcolor="'.$color[6].'" class="uni_01" align="center"><b><font color="'.$color[7].'">Zablokowany</b></td>
  8.   </tr>';
  9.  
  10.   $result = (mysql_query("SELECT ip FROM ban JOIN spam on spam.ip = ban.ip"));
  11.  
  12.   if(spam.ip == ban.ip) {
  13.   $z = '<font color="green">zablokowany</font>';
  14.   }
  15.   else
  16.   {
  17.   $z = '<center><font color="red">nie</font></center>';
  18.   }
  19.  
  20.   $res = (mysql_query("select ip, count(*) as Prob from {$prefix}spam group by ip order by Prob DESC"));
  21.   while($r = mysql_fetch_object($res)) {
  22.  
  23.   $id = $r->id;
  24.   $ip = $r->ip;
  25.   $n = $r->n;
  26.  
  27.   $n = mysql_result(mysql_query("SELECT count(*) FROM `spam` WHERE ip='$ip'"),0);
  28.  
  29.   echo '<tr>
  30.   <td class="uni_01">'.($x+$limit).'</td>
  31.   <td class="uni_01">'.$ip.'</td>
  32.   <td class="uni_01">'.$n.'</td>
  33.   <td class="uni_01">'.$z.'</td>
  34.   </tr>';
  35.   $x++;
  36. ?>
kitol
spróbuj:
  1. SELECT ip FROM ban LEFT JOIN spam ON spam.ip = ban.ip


ewentualnie zamień miejscami tabele ban i span w zapytaniu
slodki21
tak tez probowalem i nie wiem czemu do wszystkiech pokazjue mi ze sa zablokowani mimo ze napewno tak nie jest :///
MajareQ
Prawidłowy JOIN:

  1. SELECT ip FROM ban, spam WHERE Ban.ip = Spam.ip


ewentualnie z użyciem warunku złączenia:


  1. SELECT ip FROM ban, spam ON Ban.ip = Spam.ip


Wracając do problemu... Co to jest??:
Cytat
  1. <?php
  2. if(spam.ip == ban.ip) {
  3. $z = '<font color="green">zablokowany</font>';
  4. }
  5. else
  6. {
  7. $z = '<center><font color="red">nie</font></center>';
  8. }
  9. ?>


Nie widzisz tutaj żadnego błędu?
batman
Proszę dodać poprawny bbcode do pierwszego posta.
slodki21
  1. <?php
  2. if(spam.ip == ban.ip) {
  3. $z = '<font color="green">zablokowany</font>';
  4. }
  5. else
  6. {
  7. $z = '<center><font color="red">nie</font></center>';
  8. }
  9. ?>


wiem ze cos jest nie tak ale nie wiem w jaki sposob to zrobic.
Bardzo prosze o pomoc
MajareQ
W pierwszym poście dałeś tag sql nie php.

  1. <?php
  2. $query = mysql_query("SELECT ip FROM ban, spam WHERE Ban.ip = Spam.ip");
  3.  
  4. while ($row = mysql_fetch_assoc($query)) {
  5. if ($row['spam.ip']$row['ban.ip']) {
  6. $z = '<font color="green">zablokowany</font>';
  7. } else {
  8. $z = '<center><font color="red">nie</font></center>';
  9. }
  10. }
  11. ?>
slodki21
wyskoczyl mi blad

Parse error: syntax error, unexpected T_VARIABLE in /var/www/sites/yoyo.pl/t/u/tulek/admin/spam.adm.php on line 185

i dotyczy on linijki

  1. <?php
  2. if ($row['spam.ip']$row['ban.ip']) {
  3. ?>

erix
Ok, a gdzie operator porównania?
MajareQ
ojoj nie napisałem ==
Ale ty chyba powinieneś to zauważyć...

  1. <?php
  2. $query = mysql_query("SELECT ip FROM ban, spam WHERE Ban.ip = Spam.ip");
  3.  
  4. while ($row = mysql_fetch_assoc($query)) {
  5. if ($row['spam.ip'] == $row['ban.ip']) {
  6. $z = '<font color="green">zablokowany</font>';
  7. } else {
  8. $z = '<center><font color="red">nie</font></center>';
  9. }
  10. }
  11. ?>
slodki21
zauwaz wstawilem wczesniej ale wtedy pokazal mi sie taki blad i wymieklem i postanowilem zapytac po raz kolejny



Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/t/u/tulek/admin/spam.adm.php on line 183

  1. <?php
  2. while($row = mysql_fetch_assoc($query)) {
  3. ?>

erix
Masz coś z zapytaniem...

Wysil się trochę...
slodki21
dzieki wielie za rade niestety jestem tylko laikiem proboje cos wykombinowac ale mi ni wychodzi. wiec zwracam sie do Was z pomoca
erix
Pokaż, że i Ty próbujesz coś zrobić. Na gotowca nie licz - zlecenia, to nie ten dział.
slodki21
no sory bardzo popatrz na pierwszy post wiec tyle udalo mi sie wykombinowac a jezeli nie chesz pomoc to po prostu nie muszisz zwracac uwagi na ten post dziekuje
MajareQ
Spróbuj w zapytaniu użyć JOIN zamiast przecinka. I/lub podmień WHERE na ON. Ciekaw jestem którą wersję MySQL posiadasz.
slodki21
I zonk podmienilem przecienk na JOIN i probowalem z WHERE I ON i nic ciagle ten sam blad. czy to normalne questionmark.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.