Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Spradzenie czy rekord jest już w bazie
Forum PHP.pl > Forum > Przedszkole
patry6123
Cześć,
piszę dość spory system, ale zaraz mnie coś trafi ponieważ od godziny męczę się z durnym sprawdzeniem czy rekord jest w bazie.

  1. $nazwa = ctype_alnum($_POST['name']);
  2. $zapytanie = row("SELECT * FROM firma WHERE nazwa = '".$nazwa."'");
  3. if($zapytanie){
  4.  
  5. }
  6. else{
  7.  
  8. }


takie coś nie działa
rad11
a tak?
  1. $nazwa = ctype_alnum($_POST['name']);
  2. $zapytanie = row("SELECT COUNT(*) FROM firma WHERE nazwa = '".$nazwa."'");
  3. if($zapytanie > 0){
  4.  
  5. }
  6. else{
  7.  
  8. }


a pozatym musisz podac troche wiecej kodu co robi funkcja row ?
patry6123
Dziękujęexclamation.gif!

Nareszcie

PS. row to mysql_fetch_assoc(mysql_query("Zapytanie"))

EDIT/// Jednak nie... Teraz utyka na ifie nawet gdy nie ma rekordu w bazie
rad11
Do takiego pojedynczego wyciagniecia rekordu lepiej uzyc mysql_fetch_row, a pozatym jak piszesz spory system to zainteresuj sie PDO lub jakims frameworkiem. smile.gif

Cytat(patry6123 @ 2.02.2015, 15:47:00 ) *
Dziękujęexclamation.gif!

Nareszcie

PS. row to mysql_fetch_assoc(mysql_query("Zapytanie"))

EDIT/// Jednak nie... Teraz utyka na ifie nawet gdy nie ma rekordu w bazie


a co zwraca var_dump($zapytanie); ?
patry6123
array(1) { [0]=> string(1) "0" }
rad11
No to w else powinien wpadac?
untorched
Cytat(rad11 @ 2.02.2015, 15:55:14 ) *
No to w else powinien wpadac?


Nie. string(1) "0" != int 0
patry6123
To ma działać tak, że jak rekord będzie w bazie to ma wejść w if a jak nie będzie to w else
rad11
No ja domyslam sie ze to tak ma dzialac to wez sparsuj wynik na int

  1. (int)$zapytanie
patry6123
No tak tylko, że teraz nawet jak nie mam w bazie rekordu to i tak zwraca mi 1
untorched
Cytat(patry6123 @ 2.02.2015, 15:54:16 ) *
array(1) { [0]=> string(1) "0" }

Cytat(rad11 @ 2.02.2015, 15:59:22 ) *
No ja domyslam sie ze to tak ma dzialac to wez sparsuj wynik na int

  1. (int)$zapytanie


Wydałoby chyba (int)$zapytanie[0]

// Update:
A najlepiej
  1. $zapytanie = mysql_num_rows(mysql_query("SELECT ..."));
  2.  
  3. if($zapytanie > 0)
  4. {
  5. // ok
  6. }
  7. else
  8. {
  9. // failed
  10. }
patry6123
Zrobiłem i teraz zawsze mi przechodzi i wpada do else

Update też nic nie wnosi
untorched
  1. $nazwa = ctype_alnum($_POST['name']);
  2. $zapytanie = mysql_num_rows(mysql_query("SELECT * FROM firma WHERE nazwa = '".$nazwa."'"));
  3.  
  4. var_dump($zapytanie);
  5.  
  6. if((int)$zapytanie > 0){
  7. var_dump($zapytanie);
  8. }
  9. else{
  10. var_dump($zapytanie);
  11. }


I pokaż wynik
patry6123
Dobra już wiem gdzie jest problem. W nazwie miałem spację która blokowała wszystko. Po wywaleniu ctype_alnum() wszystko zaczęło działać
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.