Oto, co robisz jako pierwszy krok. Usuń WHERE url = '$url' z całego zapytania i wydrukuj mysql_num_rows($exists) przed użyciem.
To powinno wystarczyć, aby stwierdzić, czy jest to jeden z dwóch najbardziej prawdopodobnych problemów:
- zły adres URL, w wyniku którego nie są zwracane żadne wiersze; lub
- zły wiersz spowodowany przez bazę danych zawierającą inne niż oczekiwano.
Na podstawie Twoich dotychczasowych komentarzy, najbardziej prawdopodobna jest ta pierwsza. Jeśli okaże się, że otrzymasz wiersz z powrotem bez where klauzula, musisz dowiedzieć się, dlaczego Twój adres URL jest nieprawidłowy. Może to być między innymi kwestia rozróżniania wielkości liter lub wypełnienia (rozmiaru).
Jeśli, jak wspomniałeś w komentarzu, like działa gdzie = nie, musimy zobaczyć Twoje dane.
Wykonaj (na poziomie bazy danych):
select concat('[',url,']') from sites
i pokaż nam dokładnie jakie jest wyjście. Podobnie, wypisz adres URL używany przez kod w następujący sposób:
print_r($url)
bezpośrednio przed wykonaniem mysql_query .
Dołącz wyniki obu tych poleceń do swojego pytania.