Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Sprawdzenie czy dane istnieją, blokada przed duplikowaniem danych w bazie
nikos
post
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.03.2009

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


Witam!
Chciałbym zabezpieczyć komórki bazy danych przed duplikowaniem.
Mam coś takiego niestety coś nie działa, nie wiem dokładnie czy jeśli takiego użytkownika nie ma to $sprawdz zwróci NULL?
  1. <?php
  2. $sprawdz = mysql_query("SELECT * FROM users WHERE ('$imie' = @imie AND '$nazwisko' = @nazwisko)")
  3. or die("sprawdzanie nie powiodło się");
  4. echo $sprawdz;
  5. if(!$sprawdz == NULL)
  6. {echo 'ten user juz jest!';
  7. }
  8. else{
  9. $zapis = mysql_query("INSERT INTO users VALUES(NULL, '$imie', '$nazwisko', '$telefon')")
  10. or die("Zapytanie niepoprawne");}
  11. ?>

Chodzi o bazę danych która będzie raz w miesiącu kasowana i w następnym można będzie się od nowa wpisać.
Czy lepiej zrobić funkcję która raz w miesiącu kasuje zawartość bazy?
Czy może zrobić osobne miejsce w tabeli typu (aktywny/nieaktywny) i raz w miesiącu wszystkich użytkowników ustawić na nieaktywny a w momencie gdy się zapiszą po raz kolejny zmienić na aktywny?
Tylko niestety nie wiem jak to zrobić ? Co zrobić będzie łatwiej i lepiej?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kajzur
post
Post #2





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

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


Kod
$sprawdz = mysql_query("SELECT * FROM users WHERE ('$imie' = @imie AND '$nazwisko' = @nazwisko)")
or die("sprawdzanie nie powiodło się");
$sprawdz = mysql_fetch_row($sprawdz);
if(isset($sprawdz[0]))
{
echo 'ten user juz jest!';
}
else{
$zapis = mysql_query("INSERT INTO users VALUES('', '$imie', '$nazwisko', '$telefon')")
or die("Zapytanie niepoprawne");
}


Spróbuj tak..

PS. Ja bym jednak zrobił aktywny/nieaktywny, i co miecha np. wysyłał maila z linkiem do aktywacji smile.gif

Ten post edytował kajzur 7.04.2009, 14:17:45


--------------------
Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
Go to the top of the page
+Quote Post
nikos
post
Post #3





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 30.03.2009

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


Cytat(kajzur @ 7.04.2009, 15:17:03 ) *
Kod
$sprawdz = mysql_query("SELECT * FROM users WHERE ('$imie' = @imie AND '$nazwisko' = @nazwisko)")
or die("sprawdzanie nie powiodło się");
$sprawdz = mysql_fetch_row($sprawdz);
if(isset($sprawdz[0]))
{
echo 'ten user juz jest!';
}
else{
$zapis = mysql_query("INSERT INTO users VALUES('', '$imie', '$nazwisko', '$telefon')")
or die("Zapytanie niepoprawne");
}


Spróbuj tak..

PS. Ja bym jednak zrobił aktywny/nieaktywny, i co miecha np. wysyłał maila z linkiem do aktywacji smile.gif

Niestety nie pomogło sad.gif a wiesz może w jaki sposób zrobić to aktywny/nieaktywny ?
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jezu podstawy...
Kod
$sprawdz = mysql_query('SELECT * FROM users WHERE imie = "'.$imie.'" AND nazwisko = "'.$nazwisko.'"');

Skad ci sie wziely tamte @questionmark.gif

Ten post edytował wookieb 7.04.2009, 14:35:40


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





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

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


Ja sądziłem że to są poprawne nazwy, więc nie zmianiałem ;x Losujesz sobie liczbę, i wysyłasz w linki do usera, zapisujesz tą samą liczbę do bazy danych, a później sprawdzasz czy liczba podana w linku zgadza się z tą w bazie danych, jesli tak to aktywkujesz, jeśli nie to jakiś komunikat.. Warto w linku dac też nazwę logowanego usera.

Ten post edytował kajzur 7.04.2009, 14:39:04


--------------------
Zapraszam na mojego bloga. Dowiedz się jak uzyskać darmowy, zaufany certyfikat albo jak rozpoznawać głos ;)
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 - 03:38