Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SMARTY i zmienna $_get
Forum PHP.pl > Forum > Przedszkole
Konstal13n
Mam proste zapytanie wykorzystujące zmienna $_get. Wszystko działa dobrze gdyby nie to że po podłączeniu do szablonów wszystko się sypie.

  1. $_GET["druzyna"] == $team;
  2.  
  3.  
  4. ///////////////////////TABELE/////////////////////////
  5. $zapytanie = "SELECT * FROM druzyna WHERE id=$team";
  6. $druzyna = $db->select_user($zapytanie);
  7. if ($druzyna) {
  8. $smarty->assign("druzyna", $druzyna);
  9. }
  10. /////////////////////////////////////////
  11.  
  12.  
  13. $zawodnikza = "SELECT * FROM zawodnik WHERE druzyna=$team ORDER BY nazwa ASC";
  14. $zawodnik = $db->select_full_user($zawodnikza);
  15.  
  16. if ($zawodnik) {
  17. for ($i=0; $i<count($zawodnik); $i++) {
  18. }
  19. }
  20.  
  21. $smarty->assign("zawodnik", $zawodnik);
  22.  
  23. $smarty->display("lista.tpl");
  24.  


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
tylko czemu do tablicy globalnej $_GET coś przypisujesz?
kapslokk
Raczej porównuje biggrin.gif
Konstal13n
$_GET["druzyna"] = $team;
Też nie działa. Wiem że pewnie robię jakiś prosty, dla Was doświadczonych błąd.

nospor
$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
  1. $_GET["druzyna"] == $team;
  2. $smarty->assign("team", $team);


Nadal nie działa. Tak bardzo chciałbym to zrozumieć oneeyedsmiley02.png.
nospor
$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.variables

przenosze
Konstal13n
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
$team = $_GET["druzyna"];

albo $smarty->assign("team", $_GET["druzyna"]);
Konstal13n
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
Ok. Może podstawy http://php.net/manual/pl/language.operators.precedence.php
Jak się przypisuje zmienne w PHP? Później wrócimy jeszcze do tematu przepuszczania danych użytkownika do zapytania.
Konstal13n
Dobra, zrozumiałem. Mimo to zapytanie nadal nie działa.
nospor
Pokaz aktualny kod po poprawkach
Konstal13n
  1. $smarty->assign("team", $_GET["druzyna"]);
  2.  
  3.  
  4. ///////////////////////TABELE/////////////////////////
  5. $zapytanie = "SELECT * FROM druzyna WHERE id='$team' ";
  6. $druzyna = $db->select_user($zapytanie);
  7. if ($druzyna) {
  8. $smarty->assign("druzyna", $druzyna);
  9. }
  10. /////////////////////////////////////////


Pewnie nadal czegoś nie rozumiem. Teraz nie wywala żadnego błędu, ale nie ma tez wyniku zapytania.
nospor
$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
No tak, ale jak zrobię tak:
  1. $team = $_GET["druzyna"];
  2.  
  3.  
  4. ///////////////////////TABELE/////////////////////////
  5. $zapytanie = "SELECT * FROM druzyna WHERE id='$team' ";
  6. $druzyna = $db->select_user($zapytanie);
  7. if ($druzyna) {
  8. $smarty->assign("druzyna", $druzyna);
  9. }/////////////////////////////////////////
  10.  


Również nie ma żadnego efektu.
nospor
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
  1. <?php
  2.  
  3. $team = $_GET["druzyna"];
  4.  
  5.  
  6. ///////////////////////TABELE/////////////////////////
  7. $zapytanie = "SELECT * FROM druzyna WHERE id='$team' ";
  8. $druzyna = $db->select_user($zapytanie);
  9. if ($druzyna) {
  10. $smarty->assign("druzyna", $druzyna);
  11. }
  12. /////////////////////////////////////////
  13.  
  14.  
  15. $zawodnikza = "SELECT * FROM zawodnik WHERE druzyna='$team' ORDER BY nazwa ASC";
  16. $zawodnik = $db->select_full_user($zawodnikza);
  17.  
  18. if ($zawodnik) {
  19. for ($i=0; $i<count($zawodnik); $i++) {
  20. }
  21. }
  22.  
  23. $smarty->assign("zawodnik", $zawodnik);
  24.  
  25. $smarty->display("lista.tpl");
  26.  
  27.  
  28.  
  29.  
  30.  
  31. ?>



I szablon:

  1. <table class="sklad" >
  2. <tr>
  3. <th colspan=2><center>{$druzyna.nazwa}<center></th>
  4. </tr>
  5. <tr>
  6. <td colspan=2 style="height: 60px;" colspan=2><center><img width="60" height="60" src="../druzyny/{$druzyna.logo}" /><center></th>
  7. </tr>
  8. <tr>
  9. <th class="trow2" style="width: 90%;"><center><a href="lista?druzyna=1">IMIĘ I NAZWISKO</a><center></th>
  10. <th class="trow2" style="width: 10%;"><center><a href="lista?druzyna=1">BR</a><center></th>
  11. </tr>
  12. {if $zawodnik}
  13. {section name=i loop=$zawodnik}
  14. <tr>
  15. <td class="trow2" style="width: 90%;"><center>{$zawodnik[i].nazwa}<center></td>
  16. <td class="trow2" style="width: 10%;"><center>{$zawodnik[i].bramki}<center></td>
  17. </tr>
  18. {/section}
  19. {/if}


Po prostu nie ma żadnego efektu, jakby nie znajdowało żadnego rekordu z id=$_get.
viking
var_dump($team, $druzyna); po 8 linii
nospor
Sprawdz czy ci w ogole pobralo jakies dane to zapytanie

$druzyna = $db->select_user($zapytanie);
var_dump($druzyna);
exit;

Przenosze na przedszkole
Konstal13n
Po dopisaniu:
var_dump($druzyna);
exit;

Nie pokazuje nawet szablonu.
nospor
Cos musi pokazac.
Konstal13n
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
Czyli masz jakiś rewrite adresu? Nie będzie przypadkiem lista/druzyna/1 ?
Konstal13n
W pliku index.php mam:
  1. $strona = '';
  2. switch ($site) {
  3. default: $strona = "glowna"; break;
  4. case "lista": $strona = "lista"; break;
  5.  
  6. $smarty->assign("strona", $strona);
  7. $smarty->display("header.tpl");
  8. $smarty->display("content.tpl");
  9. ?>
  10. <?php
  11. switch ($site) {
  12. default: include("glowna.php"); break;
  13. case "lista": include("lista.php"); break;
  14. }


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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.