Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] Przeszukanie bazdy danych
yayco
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 2
Dołączył: 22.01.2008

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


A wiec potrzebuje jednego elementu zeby moj skrypt zadziałał.

Powiedzmy, ze mam w bazie danych MySQL 100 różnych kodów. Jak mam sprawdzić czy kod, który wpisała dana osoba już istnieje w tej bazie?

Cos w tym stylu:
if( $wprowadzony_kod  znajduje sie w bazie )
  {
  Kod jest poprawny
  }
      else
      {
      Niepoprawny kod
      }

Tylko własnie nie wiem jak to sprawdzic, prosze o pomoc ;/
Go to the top of the page
+Quote Post
legorek
post
Post #2





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


  1. <?php
  2. $response = mysql_query("SELECT COUNT(*) WHERE `kod`='$kod'")
  3. $prawdziwyKod = mysql_fetch_assoc($response);
  4.  
  5. if ($prawdziwyKod) {
  6. ...
  7. ?>


Pamiętaj, że jeśli $kod pochodzi od użytkownika, trzeba zabezpieczyć się przed SQL injection

P.S. Czekam na pytanie jak policzyć ile jest 2 + 2.
Go to the top of the page
+Quote Post
nospor
post
Post #3





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




Cytat
Czekam na pytanie jak policzyć ile jest 2 + 2.
Ty sie tak nie spiesz bo nawet z pytaniem 1+1 sobie nie poradziles (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

przeciez ten kod:
  1. <?php
  2. $prawdziwyKod = mysql_fetch_assoc($response);
  3. ?>

zawsze zwroci ci rekord, nawet jesli rekordow w bazie jest 0. czemu? bo zrobiles SELECT COUNT(*)
wiec ten warunek:
if ($prawdziwyKod)
zawsze bedzie prawdziwy.

Teraz skoro juz wiesz co masz źle podaj jeszcze raz prawidlową odpowiedź na pytanie 1+1 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
legorek
post
Post #4





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


Faktycznie, przepraszam mój błąd, Powinno być:

  1. <?php
  2. $response = mysql_query("SELECT COUNT(*) AS `iloscRekordow` WHERE `kod`='$kod'")
  3. $prawdziwyKod = mysql_fetch_assoc($response);
  4.  
  5. if ($prawdziwyKod['iloscRekordow']) {
  6. ...
  7. ?>
Go to the top of the page
+Quote Post
yayco
post
Post #5





Grupa: Zarejestrowani
Postów: 32
Pomógł: 2
Dołączył: 22.01.2008

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


Nie wiem dlaczego ale cos nieche działać ;/

Wysyłam formularzem:
Kod
<FORM ACTION="kup.php" METHOD=POST>
<INPUT TYPE=TEXT NAME="kod">
<INPUT TYPE=SUBMIT VALUE="ok">
</FORM>



I oto skrypt:
Kod
$kod_usera=$_POST['kod'];   //pobieram dane z formularza


//opis do zapytania
// tabla nazywa sie: kod
// nazwa kolumny w tabeli: kody

$query="SELECT * FROM kod WHERE kody=$kod_usera";
  if ( mysql_query($query) > 0) // mysql_query() bedzie rozne od zera jesli znajdzie taki sam wpis
{
echo "Jest taki kod w tabeli";
}
else
{
echo "NIe ma takiego kodu w tabeli";
}

?>


PROBLEM: Cały czas wyświetla się: "Jest taki kod w tabeli", nawet jesli nie ma.
Gdzie robie błąd?
Go to the top of the page
+Quote Post
Hectic
post
Post #6





Grupa: Zarejestrowani
Postów: 256
Pomógł: 7
Dołączył: 1.01.2005

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


Robisz błędy w podstawach. Polecam np. http://pl2.php.net/mysql_query

P.S
Nikt nie poda Ci tu kodu na tacy.
Go to the top of the page
+Quote Post
yayco
post
Post #7





Grupa: Zarejestrowani
Postów: 32
Pomógł: 2
Dołączył: 22.01.2008

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


@up
A umisz ty czytac?

Chyba przeciez podałem cały kod napisany przezemnie i sie pytam gdzie mam błedy nieche niczego na tacy...
Go to the top of the page
+Quote Post
Snowak
post
Post #8





Grupa: Zarejestrowani
Postów: 78
Pomógł: 2
Dołączył: 13.12.2007

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


mysql_query nie zwraca wyniku lecz identyfikator zasobu z wynikami
najpierw odpalasz zapytanie:

  1. <?php
  2. $q = mysql_query($query);
  3. $result = mysql_fetch_assoc($q);
  4. ?>


I masz dane w tablicy..

Co więcej, w zapytaniu nie * tylko count(*) as ilosc - i wtedy ilość takich rekordów będzie w $result['ilosc']


Działający kod:
  1. <?php
  2. $kod_usera = intval($_POST['kod']);  //pobieram dane z formularza
  3.  
  4.  
  5. //opis do zapytania
  6. // tabla nazywa sie: kod
  7. // nazwa kolumny w tabeli: kody
  8.  
  9. $query="SELECT count(*) as ilosc FROM kod WHERE kody=$kod_usera";
  10. $q = mysql_query($query);
  11. $res = mysql_fetch_assoc($q);
  12. if ( $res('ilosc') > 0) //tu miales napisane jakies herezje
  13. {
  14. echo "Jest taki kod w tabeli";
  15. }
  16. else
  17. {
  18. echo "NIe ma takiego kodu w tabeli";
  19. }
  20.  
  21. ?>


P.S. Nie zapominaj o SQL Injection!

Ten post edytował Snowak 6.03.2008, 18:25:54
Go to the top of the page
+Quote Post
Hectic
post
Post #9





Grupa: Zarejestrowani
Postów: 256
Pomógł: 7
Dołączył: 1.01.2005

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


Cytat(yayco @ 6.03.2008, 20:18:30 ) *
@up
A umisz ty czytac?

Chyba przeciez podałem cały kod napisany przezemnie i sie pytam gdzie mam błedy nieche niczego na tacy...


Napisałem Ci wszystko, że nie masz nawet podstaw na tema php + mysql to nie moja wina, a nawet podałem link do manuala.

Ten post edytował Hectic 6.03.2008, 18:31:36
Go to the top of the page
+Quote Post
yayco
post
Post #10





Grupa: Zarejestrowani
Postów: 32
Pomógł: 2
Dołączył: 22.01.2008

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


W taki sposób sobie poradziłem, temat do zamknięcia.

Kod
$kod_usera=$_POST['kod'];   //pobieram dane z formularza


//opis do zapytania
// tabla nazywa sie: kod
// nazwa kolumny w tabeli: kody

$query="SELECT * FROM kod WHERE kody=$kod_usera";
$result = mysql_query($query);
if ( mysql_num_rows($result) > 0) // mysql_num_rows() bedzie wieksze od zera jesli znajdzie taki sam wpis
{
echo "Jest taki kod w tabeli";
}
else
{
echo "NIe ma takiego kodu w tabeli";
}

?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 01:24