Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql][php] Nie wykrywa rekordu
Forum PHP.pl > Forum > PHP
outsider
Witam

W PHP juz troche siedze, i jeszcze nie mialem problemu aby skrypt nie umial znalezc ISTNIEJACEGO rekordu w bazie...

Kawalek kodu

Kod
</P><P>$imie_nazwisko = $_SESSION['imie']." ".$_SESSION['nazwisko'];</P><P>$query = "SELECT * FROM wiadomosci WHERE do='$imie_nazwisko' ORDER BY data DESC;";</P><P>$wynik = mysql_query($query);</P><P>


Dajac echo przed $imie_nazwisko; php podaje mi dobre dane, takie ktore istnieja. Jest to kawalek kody skrzynki odbiorczej, nie trzeba chyba tlumaczyc, pole do zawiera informacje o adresacie, czyli imie i nazwisko. Dodajac nawet recznie rekord, dana osoba nie widzi wiadomosci ktore zostalo do niej napisane :| Dzieje sie to tylko z 1 osoba, nie wiem dlaczego. $_SESSION napewno zawiera info o danych... Nie wiem jak to bardziej wytlumaczyc, jest to mozliwe ze jakis ciag znakow (polskich od a-z) zakluca pobieranie rekordow ? Dajac echo po $wynik = mysql_query($query); otrzymuje komunikat Resource id #16 - napewno jest dany rekord ktory spelnia warunek. 

Prosze o jaka rade bo nie wiem co robic smile.gif

Pozdrawiam

@EDIT:

Dodam ze wpisalem imie i nazwisko tej osoby recznie:
WHERE do='Imie Nazwisko'
I wszystko dziala :| Teraz chyba ktos mi pomoze smile.gif mam taka nadzieje

@EDIT2:

Juz powoli dochodze do tego. Zmienilem zmienna:
$imie_nazwisko = $_SESSION['imie']." ".$_SESSION['nazwisko'];
na
$imie_nazwisko = $_SESSION['imie']."".$_SESSION['nazwisko'];
- usunolem bialy znak pomiedzy " i ", teraz dla tej osoby wszystko chodzi, ale dla inncyh niet tongue.gif

@EDIT3:

Funckja trim() nic nie daje, znowu jest to samo, dla tej osoby widac wiadomosci dla reszty nie :| I na odwrot - jak dodam bialy znak pomiedzy ""
JoShiMa
A polskie znaki nie mają z tym nic wspólnego?

Tak na marginesie. Nie lepiej przechowywać w sesji ID usera i po nim szukać?
outsider
Ale ja lubie PHP biggrin.gif Taki kod dziala dla wszystkich uzytkownikow:

WHERE do=' ".trim($_SESSION['imie'])." ".trim($_SESSION['nazwisko'])." '

Temat mozna zamknac.



Cytat(JoShiMa @ 24.10.2008, 16:51:20 ) *
A polskie znaki nie mają z tym nic wspólnego?

Tak na marginesie. Nie lepiej przechowywać w sesji ID usera i po nim szukać?


Polskie znaki nie, sam nie wiem do konca co bylo nie tak, ale chyba cos z bialym znakiem / spacja. Mam ID usera w sesji, ale tak dla mnie jest wygodniej, mniej kodu tongue.gif
JoShiMa
Cytat(*OuTSideR* @ 24.10.2008, 16:56:54 ) *
Mam ID usera w sesji, ale tak dla mnie jest wygodniej, mniej kodu tongue.gif

Kodu może mniej, ale dla bazy z pewnością niej est to wygodniej. Lepiej się od razu uczyć pisać prawidłowo smile.gif
outsider
Czyli proponujesz aby nie przechowywac takich danych w sesji, tylko jesli sa potrzebne dzieki ID wyciagac je z bazy ?
nevt
w php może i trochę siedzisz, ale w MySQL zdecydowanie nie... w MySQL wyrazy DO i DATA są zastrzeżone, zatem jeżeli masz pola lub tabele o takiej nazwie musisz je ująć w `odwrócone apostrofy`. a najlepiej nabrać zwyczaju umieszczania w nich wszystkich nazw pól, tabel i baz - wtedy po prostu nie musisz się zastanawiać, czy dane słówko jest zastrzeżone, czy nie. zatem:
  1. SELECT * FROM `wiadomosci` WHERE `do`='$imie_nazwisko' ORDER BY `data` DESC;

powodzenia.
outsider
Dzieki wielkie exclamation.gif No racja, zawsze jak widze zastrzezone nazwy to zawsze je tylko przelece winksmiley.jpg Jak zrobic te odwrocone apostrofy ?
thm
o_O palcami !
nevt
Cytat
Jak zrobic te odwrocone apostrofy ?

masz 2 możliości:
1. poszukać znaczka ` na klawiaturze (podpowiem - blisko Escape...)
2. skopiować sobie z mojego poprzedniego postu...

smile.gif smile.gif smile.gif
outsider
faktycznie, nigdy go nie uzywalem tongue.gif

Mozna zamknac
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.