Konstal13n
26.02.2016, 14:35:46
Mam proste zapytanie wykorzystujące zmienna $_get. Wszystko działa dobrze gdyby nie to że po podłączeniu do szablonów wszystko się sypie.
$_GET["druzyna"] == $team;
///////////////////////TABELE/////////////////////////
$zapytanie = "SELECT * FROM druzyna WHERE id=$team";
$druzyna = $db->select_user($zapytanie);
if ($druzyna) {
$smarty->assign("druzyna", $druzyna);
}
/////////////////////////////////////////
$zawodnikza = "SELECT * FROM zawodnik WHERE druzyna=$team ORDER BY nazwa ASC";
$zawodnik = $db->select_full_user($zawodnikza);
if ($zawodnik) {
for ($i=0; $i<count($zawodnik); $i++) {
}
}
$smarty->assign("zawodnik", $zawodnik);
$smarty->display("lista.tpl");
Próbowałem $smarty.get.druzyna, ale jakbym tego nie zrobił nie chce działać.
Pozdrawiam i z góry dziękuje za pomoc!
lukaskolista
26.02.2016, 14:45:08
tylko czemu do tablicy globalnej $_GET coś przypisujesz?
kapslokk
26.02.2016, 14:46:57
Raczej porównuje
Konstal13n
26.02.2016, 14:59:27
$_GET["druzyna"] = $team;
Też nie działa. Wiem że pewnie robię jakiś prosty, dla Was doświadczonych błąd.
nospor
26.02.2016, 15:01:04
$smarty.get nie jest referencja do $_GET. To jest jej kopia, ktora jest tworzona duzo wczesniej. Pewnie temu ci nie dziala.
Przypisz normalnei jak czlowiek to co cchesz przez $smarty->assign();
Konstal13n
26.02.2016, 16:29:07
$_GET["druzyna"] == $team;
$smarty->assign("team", $team);
Nadal nie działa. Tak bardzo chciałbym to zrozumieć

.
nospor
26.02.2016, 16:34:51
$smarty->assign("team", $team);
a potem w szablonie juz nie
$smarty.get
a
$team
Skoro lapiesz sie za smartiego, to korzystaj z manuala, tam to wszystko ladnie pokazane
http://www.smarty.net/docs/en/language.var...igned.variablesprzenosze
Konstal13n
26.02.2016, 16:38:43
Tak już miałem, ale nadal nie działa.
Może problemem jest adres który mam: /lista?druzyna=1, ale przy /lista.php?druzyna=1 wyrzuca fatal error.
"
Fatal error: Call to a member function assign() on a non-object in ...."
viking
26.02.2016, 16:39:37
$team = $_GET["druzyna"];
albo $smarty->assign("team", $_GET["druzyna"]);
Konstal13n
26.02.2016, 16:45:33
Cytat(viking @ 26.02.2016, 16:39:37 )

$team = $_GET["druzyna"];
albo $smarty->assign("team", $_GET["druzyna"]);
Przy $smarty->assign("team", $_GET["druzyna"]); co mam podstawić w zapytaniu sql?
$zapytanie = "SELECT * FROM druzyna WHERE id=$team"; ?
viking
26.02.2016, 16:49:52
Ok. Może podstawy
http://php.net/manual/pl/language.operators.precedence.phpJak się przypisuje zmienne w PHP? Później wrócimy jeszcze do tematu przepuszczania danych użytkownika do zapytania.
Konstal13n
26.02.2016, 17:04:59
Dobra, zrozumiałem. Mimo to zapytanie nadal nie działa.
nospor
26.02.2016, 17:09:21
Pokaz aktualny kod po poprawkach
Konstal13n
26.02.2016, 17:13:46
$smarty->assign("team", $_GET["druzyna"]);
///////////////////////TABELE/////////////////////////
$zapytanie = "SELECT * FROM druzyna WHERE id='$team' ";
$druzyna = $db->select_user($zapytanie);
if ($druzyna) {
$smarty->assign("druzyna", $druzyna);
}
/////////////////////////////////////////
Pewnie nadal czegoś nie rozumiem. Teraz nie wywala żadnego błędu, ale nie ma tez wyniku zapytania.
nospor
26.02.2016, 17:15:06
$smarty->assign("team", $_GET["druzyna"]); - to wrzuca zmienna do smartiego...
Jak chcesz korzystac z niej w php to masz miec jeszcze tak:
$team = $_GET["druzyna"];
Zamiast brac sie za szablony to moze wpierw by tak podstawy php?
Konstal13n
26.02.2016, 17:16:50
No tak, ale jak zrobię tak:
$team = $_GET["druzyna"];
///////////////////////TABELE/////////////////////////
$zapytanie = "SELECT * FROM druzyna WHERE id='$team' ";
$druzyna = $db->select_user($zapytanie);
if ($druzyna) {
$smarty->assign("druzyna", $druzyna);
}/////////////////////////////////////////
Również nie ma żadnego efektu.
nospor
26.02.2016, 17:17:51
Ale co rozumiesz przez EFEKT?? Patrzyles czy ci sie w ogole zapytanie odpala poprawnie??
No i skad mamy wiedziec co ty masz w tym szablonie i zczego czytasz.
Konstal13n
26.02.2016, 17:19:56
<?php
$team = $_GET["druzyna"];
///////////////////////TABELE/////////////////////////
$zapytanie = "SELECT * FROM druzyna WHERE id='$team' ";
$druzyna = $db->select_user($zapytanie);
if ($druzyna) {
$smarty->assign("druzyna", $druzyna);
}
/////////////////////////////////////////
$zawodnikza = "SELECT * FROM zawodnik WHERE druzyna='$team' ORDER BY nazwa ASC";
$zawodnik = $db->select_full_user($zawodnikza);
if ($zawodnik) {
for ($i=0; $i<count($zawodnik); $i++) {
}
}
$smarty->assign("zawodnik", $zawodnik);
$smarty->display("lista.tpl");
?>
I szablon:
<td colspan=2 style="height: 60px;" colspan=2><center><img width="60" height="60" src="../druzyny/{$druzyna.logo}" /><center></th> <th class="trow2" style="width: 90%;"><center><a href="lista?druzyna=1">IMIĘ I NAZWISKO
</a><center></th> <th class="trow2" style="width: 10%;"><center><a href="lista?druzyna=1">BR
</a><center></th> {if $zawodnik}
{section name=i loop=$zawodnik}
<td class="trow2" style="width: 10%;"><center>{$zawodnik[i].bramki}
<center></td> {/section}
{/if}
Po prostu nie ma żadnego efektu, jakby nie znajdowało żadnego rekordu z id=$_get.
viking
26.02.2016, 17:24:48
var_dump($team, $druzyna); po 8 linii
nospor
26.02.2016, 17:25:31
Sprawdz czy ci w ogole pobralo jakies dane to zapytanie
$druzyna = $db->select_user($zapytanie);
var_dump($druzyna);
exit;
Przenosze na przedszkole
Konstal13n
26.02.2016, 17:32:26
Po dopisaniu:
var_dump($druzyna);
exit;
Nie pokazuje nawet szablonu.
nospor
26.02.2016, 17:35:40
Cos musi pokazac.
Konstal13n
27.02.2016, 11:25:35
Nic nie pokazuje.
Wydaje mi się że problem leży cały czas w $_get bo zmienna $team nadal nic nie odbiera.
Może problem polega na tym że używam lista?druzyna=1, a nie lista.php?druzyna=1 ?
Przy wersji z .php wywala fatal error.
viking
27.02.2016, 11:59:50
Czyli masz jakiś rewrite adresu? Nie będzie przypadkiem lista/druzyna/1 ?
Konstal13n
27.02.2016, 13:41:43
W pliku index.php mam:
$strona = '';
switch ($site) {
default: $strona = "glowna"; break;
case "lista": $strona = "lista"; break;
$smarty->assign("strona", $strona);
$smarty->display("header.tpl");
$smarty->display("content.tpl");
?>
<?php
switch ($site) {
default: include("glowna.php"); break;
case "lista": include("lista.php"); break;
}
Na 100% to tu gdzieś leży problem bo po odłączeniu od smarty wszystko działa.
Dobra, poradziłem sobie omijając tą zmiane adresu.
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.