Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] Przeszukanie bazdy danych
Forum PHP.pl > Forum > Przedszkole
yayco
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 ;/
legorek
  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.
nospor
Cytat
Czekam na pytanie jak policzyć ile jest 2 + 2.
Ty sie tak nie spiesz bo nawet z pytaniem 1+1 sobie nie poradziles 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 smile.gif
legorek
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. ?>
yayco
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?
Hectic
Robisz błędy w podstawach. Polecam np. http://pl2.php.net/mysql_query

P.S
Nikt nie poda Ci tu kodu na tacy.
yayco
@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...
Snowak
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!
Hectic
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.
yayco
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";
}

?>
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.