Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienna deklarowana zawczesnie. Minimum kodu.
Forum PHP.pl > Forum > PHP
stach
Napisalem taka funkcje

[php:1:513159390b]<?php
function get_menu_location($domenu,$funkcja,&$db)
{
$sql[] = 'SELECT Menu_dzial,Menu_nazwa FROM '.TABELA_MENU.' WHERE Menu_id = ''.$domenu.''';
$zmienna[] = 'menu';
$wyciagnij[] = array('Menu_dzial','Menu_nazwa');

$sql[] = 'SELECT Dzial_nazwa FROM '.TABELA_MENU_DZIAL.' WHERE Dzial_id = ''.$menu['Menu_dzial'].''';
$zmienna[] = 'dzial';
$wyciagnij[] = 'Dzial_nazwa';

$sql[] = 'SELECT Podmenu_nazwa FROM '.TABELA_PODMENU.' WHERE Podmenu_id = ''.$funkcja.''';
$zmienna[] = 'podmenu';
$wyciagnij[] = 'Podmenu_nazwa';

for ($i=0;$i<sizeof($sql);$i++) {
if( !($result = $db->sql_query($sql[$i])) )
{
die('ERR. Bazy '.__FILE__.' '.__LINE__);
}

if ($row = $db->sql_fetchrow($result))
{
do
{
$_temp[] = $row;
}
while ($row = $db->sql_fetchrow($result));
$db->sql_freeresult($result);
}
for ($j=0;$j<sizeof($_temp);$j++) {
if (is_array($wyciagnij[$i])) {
foreach ($wyciagnij[$i] as $key=>$val) {
${($zmienna[$i])}[$val] = $_temp[$j][$val];
}
}
else {
${($zmienna[$i])}[$wyciagnij[$i]] = $_temp[$j][$wyciagnij[$i]];
}
}
unset($_temp);
}
} // end func
?>[/php:1:513159390b]

Jej zadaniem jest wyciagniecie uzywanego w tym momencie dzialu, menu i podmenu, problem jest w linijce 8. Jak widac musze wykozystac zmienna pobrana pozniej, ale niechce pisac kolejnej procedury zapytania do sql. Moje pytanie jakbyscie tego dokonali bez powtarzania calej procedury sql_query ?
stach
No i problem udało sie rozwiazać. Czasem szokuje mnie rozwiazanie, jak czesto ciezko zobaczyc proste rzeczy smile.gif
[php:1:4f33053afa]<?php
function get_menu_location($domenu,$funkcja,&$db)
{
$sql[] = 'SELECT Menu_dzial,Menu_nazwa FROM '.TABELA_MENU.' WHERE Menu_id = ''.$domenu.''';
$zmienna[] = 'menu';
$wyciagnij[] = array('Menu_dzial','Menu_nazwa');

$sql[] = 'SELECT Podmenu_nazwa FROM '.TABELA_PODMENU.' WHERE Podmenu_id = ''.$funkcja.''';
$zmienna[] = 'podmenu';
$wyciagnij[] = 'Podmenu_nazwa';

for ($i=0;$i<sizeof($sql);$i++) {
if( !($result = $db->sql_query($sql[$i])) )
{
die('ERR. Bazy '.__FILE__.' '.__LINE__);
}

if ($row = $db->sql_fetchrow($result))
{
do
{
$_temp[] = $row;
}
while ($row = $db->sql_fetchrow($result));
$db->sql_freeresult($result);
}
for ($j=0;$j<sizeof($_temp);$j++) {
if (is_array($wyciagnij[$i])) {
foreach ($wyciagnij[$i] as $key=>$val) {
${($zmienna[$i])}[$val] = $_temp[$j][$val];
}
}
else {
${($zmienna[$i])}[$wyciagnij[$i]] = $_temp[$j][$wyciagnij[$i]];
}
}
unset($_temp);
$sql[2] = 'SELECT Dzial_nazwa FROM '.TABELA_MENU_DZIAL.' WHERE Dzial_id = ''.$menu['Menu_dzial'].''';
$zmienna[2] = 'dzial';
$wyciagnij[2] = 'Dzial_nazwa';
}
} // end func
?>[/php:1:4f33053afa]
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.