Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> weryfikacja email w bazie, MySql
kosmos
post
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 17
Dołączył: 4.03.2008

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


Witam
Nie znalazłem tematu więc zakładam nowy

Otóż mam pytanie do znawców SQL

Jak można sprawdzić w tabeli bazy danych, czy email który użytkownik wprowadza przy rejestracji, znajduje się już w bazie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Wysyłam zapytanie do bazy danych w taki sposób:
Kod
$podobne = mysql_query("SELECT *
                                           FROM osoba")
                                        or die ('Błąd zapytania');


i teraz sprawa while ...

zaczynając w ten sposób

Kod
while($pod = mysql_fetch_array($podobne))
                     {
                       if($pod['email']!==$email)     gdzie $email to zmienna do której zapisany jest email wysłany w formularzu
                       return false;
                        else
                      return true;
                     }
.
.
.


jeśli natrafię na pierwszy spełniony warunek to od razu zwróci mi sie false i wykona dalszy kod a z while wyjdzie ;/ co jest bezsensem



natomiast jesli zadam pytanie w ten sposób:

Kod
$podobne = mysql_query("SELECT *
                                           FROM osoba WHERE osoba.email=$email")
                                        or die ('Błąd zapytania');

no to jeśli zapytanie nie znajdzie takiego samego emaila jak wprowadził klient w pole formularza przy rejestracji to od razu wyświetli się komunikat "Błąd zapytania"

Poradźcie coś proszę ...

Ten post edytował kosmos 14.04.2008, 23:29:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


SELECT bez WHERE - jest bezsensu

OFFTOPIC:
takiego while'a pisze sie:

  1. <?php
  2. function czy_sie_powtarza()
  3. {
  4.  while (.... )
  5.  {
  6. if ( $email == $row['email'] )
  7. {
  8. return true;
  9. }
  10. }
  11. // za while
  12. return false;
  13. }
  14. ?>



Wracajac do tematu,
SQL: - najpierw wyprobuj SQLki bezposrednio na bazie, phpMyAdmin czy cos podobnego - czemu? bedziesz pisal zapytanie bez mozliwosci popelnienia bledu w php, jak to zapytanie bedzie ci dzialac to przenosisz je do php, jak tu nie dziala, tzn ze cos w php pomyliles (bo zaczynajac od php, nie wiesz czy masz zly SQL czy zly kod php budujacy ta SQLke), no i bezwglednie wyswietlaj (przynajmniej na razie, potem mozesz wylaczyc) bledy mysqla (robiac zapytanie bezposrednio na bazie- zawsze je otrzymasz).

Bo twoj SQL wyglada

  1. SELECT * FROM osoba WHERE osoba.email=a.gdzie@apostrofy.pl
  2.  
  3. -- zamiast
  4.  
  5. SELECT * FROM osoba WHERE osoba.email='a.gdzie@apostrofy.pl'


Ten post edytował dr_bonzo 15.04.2008, 01:11:44
Go to the top of the page
+Quote Post
kosmos
post
Post #3





Grupa: Zarejestrowani
Postów: 367
Pomógł: 17
Dołączył: 4.03.2008

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


Dzięki za zainteresowanie:)
Teraz już wszystko działa.
Pomogłeś (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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 - 08:22