Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] jak porównać zmienną do kolumny wyników z sql
Taifun
post
Post #1





Grupa: Zarejestrowani
Postów: 222
Pomógł: 2
Dołączył: 10.07.2007

Ostrzeżenie: (10%)
X----


Witam.
Jak porównać czy istnieje już taki wpis czyli porównać zmienną przesłaną z formularza zapisaną pod np $1 do wyników z całej kolumny mysql o nazwie np. tresc ?
Dalej już sobie poradze ale jak porównać snitch.gif


--------------------
Go to the top of the page
+Quote Post
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


Sprawdzasz czy w tabeli istnieje taki wpis gdzie
  1. SELECT * FROM tabela WHERE nazwa_kolumny=$wartosc_z_formularza

wywołujesz takie zapytanie po czym sprawdzasz czy zostały zwrócone jakieś wiersze ( np za pomocą mysql_num_rows" title="Zobacz w manualu PHP" target="_manual )


--------------------
404
Go to the top of the page
+Quote Post
Taifun
post
Post #3





Grupa: Zarejestrowani
Postów: 222
Pomógł: 2
Dołączył: 10.07.2007

Ostrzeżenie: (10%)
X----


dlaczego jak wklepuje do php admina:
Cytat
select * from sb(poprawnatabele wpisałem) where wiadomosc(istnieje)=wartosc z formularza, ktora jest w phpmyadminie


to wyskakuje to wyskakuje:

Cytat
zapytanie SQL: Dokumentacja

SELECT *
FROM sb
WHERE wiadomosc = edfsdfd
LIMIT 0 , 30

MySQL zwrócił komunikat: Dokumentacja
#1054 - Nieznana kolumna 'edfsdfd' w where clause


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale nie kopiuj bezmyslnie....
Skoro to wartosc tekstowa to ma byc w ciapkach:
  1. SELECT * FROM tabela WHERE nazwa_kolumny='$wartosc_z_formularza'


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Taifun
post
Post #5





Grupa: Zarejestrowani
Postów: 222
Pomógł: 2
Dołączył: 10.07.2007

Ostrzeżenie: (10%)
X----


o jest! O ciapkach zapomniałem bom nowy :Pmam taki kod i zamiast ochrony przed wysylaniem podwojnego postu mam spam na maxa ;/
  1. <?php
  2. $query = "select * from sb where wiadomosc='$wiadomosc'";
  3. $wyk = mysql_query($query);
  4. $row = mysql_num_rows($wyk);
  5. if (!$wiadomosc) 
  6.  $puste++;
  7. if ($$row>=) 
  8.  echo "nie powtarzaj sie!";
  9. if ($puste>0) 
  10.  echo "pusto tu";
  11. ?>

co źle robię?


-------------------------
do PHP są odpowiednie znaczniki BBCode
tym razem poprawiłem ale pamiętaj
i stosuj sie do tego na przyszłość
~Cienki1980


--------------------
Go to the top of the page
+Quote Post
Cienki1980
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


W tym kodzie co podałeś nie ma żadnego zabezpieczenia przed wielokrotnym wysłaniem posta .. tylko tworzysz komunikaty co ktoś zrobił

Pomijam fakt podwójnego znaku $ przy row w if'ie .. bo to chyba literówka.

Schemat sprawdzania powinien wyglądać jakoś tak:
- odbierasz dane z formularza
- sprawdzasz czy dane są poprawne
* nie - wyrzucasz stosowne komunikaty - koniec przetwarzania danych
* są poprawne - idziesz dalej
- sprawdzasz czy takich danych nie ma już w bazie
* są - wyrzucasz stosowne komunikaty - koniec przetwarzania danych
* nie ma - zapisujesz do bazy

Wystarczy kilka if - elseif - else i najprostszy system antyspamowy powinien zadziałać


--------------------
404
Go to the top of the page
+Quote Post
Taifun
post
Post #7





Grupa: Zarejestrowani
Postów: 222
Pomógł: 2
Dołączył: 10.07.2007

Ostrzeżenie: (10%)
X----


koleś na pewnym forum mi polecił ciasteczka ale rozwiązałem to inaczej:
  1. <?php
  2. $query = "select * from sb where wiadomosc='$wiadomosc'";
  3. $wyk = mysql_query($query);
  4. $row = mysql_num_rows($wyk);
  5.  
  6.  
  7.  
  8.  
  9. if (!$imie) $puste++;
  10. if (!$gg) $puste++;
  11. if (!$wiadomosc) $puste++;
  12. if ($puste>0 OR $row>0) echo "";
  13.  
  14. else
  15. {
  16.  
  17. $query = "INSERT INTO sb VALUES ('','$imie','$gg','$wiadomosc')";
  18. $wyk = mysql_query($query);
  19. echo "wpis dodany!";
  20.  
  21. }
  22. ?>


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:31