PDA

Zobacz pełną wersję : osadzanie zmiennych JRequest::getVar(zmienna) w zapytaniu mysql



prostepc
21-12-2012, 10:50
Jak wygląda składnia wstawiania zmiennych z JRequest::getVar(zmienna) w zapytaniu mysql typu:


$query= mysql_query("Select * from $baza_danych where opis='JRequest::getVar(zmienna)' ";

taki zapis powoduje błąd funkcji mysql_num_rows();


zapis gdzie zamienię zmienną na konkretną wartość wyświetla wyniki prawidłowo. Jaki jest prawidłowy zapis tej zmiennej w takim zapytaniu?

pawelSafiStudio
21-12-2012, 14:36
A słyszałeś o czymś takim jak łączenie ciągów znaków ?


$query= mysql_query("Select * from ".$baza_danych." where opis='".JRequest::getVar('zmienna')."' ";


Btw. jeśli piszesz coś dla Joomla! 2.5 staraj się korzystać już z API 11.1, gdzie JRequest::getVar zostało zastąpione metodami klasy JInput.

prostepc
21-12-2012, 16:16
słyszałem o łączeniu ciągu znaków ale w jednym z kursów widziałem zapis :


$query= mysql_query("Select * from ".$baza_danych." where opis='{JRequest::getVar(zmienna)}' ";

pawelSafiStudio
21-12-2012, 16:26
Chodzi Ci o te klamry ? Przyznam szczerze, że ja z takim zapisem się nie spotkałem. Aż zajrzę do dokumentacji z ciekawości, ale jeśli już taki zapis ma rację bytu to na pewno nie dla mysql_query a bardziej dla JDatabase::setQuery() (chociaż i to wg mnie jest mało realne).
Ja z takiego zapisu nigdy nie korzystałem. Być może ktoś wie więcej na ten temat to się wypowie. Ja osobiście unikałbym takich zapisów.

Pawelo31
21-12-2012, 16:34
można jeszcze tak
$zmienna = JRequest::getVar(zmienna);
$query= mysql_query("Select * from $baza_danych where opis='$zmienna' ";
tylko $zmienna musi być w cudzysłowach podwójnych

pawelSafiStudio
21-12-2012, 16:47
@pawel25 używaj znaczników dla kodu PHP, co by zwiększyć czytelność :)