Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] sprawdzanie nazwiska
Forum PHP.pl > Forum > Przedszkole
mati28
Widze że takie tematy już byly milion razy ale nie umiem tego zrobic. Print zawsze wyświetla mi 1, zastanawiam sie jak tym sposobem sprawdzic czy nazwisko jest wpisane do bazy?

  1. $nazwisko = @mysql_num_rows(mysql_query("SELECT nazwisko FROM lista WHERE nr = ".$_SESSION['nr']." "));
  2. if(($nazwisko) > 0) {
  3. echo "Twoje nazwisko istnieje!"
  4. }


Turson
  1. var_dump($nazwisko);

pokaże co i jak

wywal @ przy zapytaniu bo to wygłusza błędy niepotrzebnie
mati28
var_dump wyświetla "int 1" . Niezależnie od tego czy w bazie istnieje rekord czy też nie
Turson
Usuń @ i spróbuj
mati28
Zrobiłem to od razu, gdy kazałeś. Cały czas pokazuje jedynkę sad.gif
Turson
  1. $query = "SELECT nazwisko FROM lista WHERE nr = ".$_SESSION['nr'];
  2. $nazwisko = mysql_num_rows(mysql_query($query)) or die(mysql_error());
mati28
Cały czas jest tak samo sad.gif Jak w tabeli jest nazwisko to vardump pokazuje "int 1" ,a jak nie ma to też
Pyton_000
czy aby na pewno $_SESSION['nr'] się zmienia a nie jest cały czas takie samo a tobie się wydaje że się zmienia ?

zrób sobie
Kod
echo $query;

i zobaczysz jakie zapytania wchodzą.
mati28
echo pokazuje mi takie coś
SELECT nick FROM players WHERE id = 8
mati28
Tzn nie id tylko nr... dokladnie tak sie wyswietla:
SELECT nick FROM players WHERE nr = 8
mati28
Przepraszam za spam ale nie moge edytowac posta. Zaraz zaloze sobie konto na forum.
Robie kilka rzeczy na raz i jeszcze uzywam kodu z postow z tego forum i mieszaja mi sie linijki. A wiec jeszcze raz... to co wyswietla mi echo $query :
SELECT nazwisko FROM lista WHERE nr = 8
Terrorizer
Właśnie tak patrze i jakiś ten kod znajomy i coś mi tablica znajoma i baza biggrin.gif
Mistrzu, lepiej moim kodem się nie wzoruj, bo nic dobrego z tego nie wynika biggrin.gif
Turson
A łączysz się w ogóle z bazą? tongue.gif
mati28
tak oczywiscie, mam polaczenie z baza i nawet echo to udowadnia bo pokazuje mi numer zalogowanego uzytkownika a jak loguje sie na innego to tez pobiera prawidlowy nr.
w ogole duzo rzeczy mi pokazuje, ale to jest varchar, moze to cos psuje? no bo kolumna "nazwiska" jest zrobiona ale u kazdego uzytkownika pusta, to ma niby sprawdzac czy jest pelna czy nie a zawsze pokazuje mi INT 1
Turson
Nie mam pomysłu. Spróbuj inaczej, mianowicie
  1. $query = mysql_query("SELECT COUNT(*) as ile FROM lista WHERE nr=".$_SESSION['nr']);
  2. $nazwisko = mysql_fetch_array($query);
  3. if($nazwisko['ile']>0) echo "istnieje"; else echo "nie istnieje";

jak wywali błąd w linii z ifem to daj print_r($nazwisko); bo nie pamiętam dokładnie jak to zwraca w mysql
mati28
Pokazuje mi coś takiego:
Kod
istnieje Array ( [0] => 1 [ile] => 1 )
Turson
Czyli jest ok
mati28
no tylko ze ja "nazwisko" na tym koncie mam puste a pokazuje że istnieje biggrin.gif
Turson
Ale to nie sprawdza, czy kolumna 'nazwisko' jest uzupełnione tylko czy istnieje w ogóle wpis... Trzeba było tak od razu. Musisz pobrać nazwisko i sprawdzić czy jest puste
mati28
To tak mam to zrobic? caly czas mi pokazuje ze nazwisko istnieje nie rozumiem nic... jak to napisac sad.gif
  1. $nazwisko = mysql_fetch_assoc(mysql_query("SELECT nazwisko FROM lista WHERE nr = ".$_SESSION['nr']." "));
  2. if ( empty ($nazwisko) ) {echo "puste!";}
  3. else echo " nazwisko istnieje";

Turson
if(empty($nazwisko['nazwisko'])){
//puste
}
else{
//niepuste
}
Terrorizer
Ja też z tym miałem problem ostatnio, bo myślałem ,że skoro jest tak jak tutaj np. (zmienna = SELECT nazwisko)
to zmienna jest już tym nazwiskiem a tu jednak trzeba się odnieść jak do tablicy czyli: nazwisko['nazwisko']
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.