Forum » Izdelava spletišč » php variable scope problem
php variable scope problem
krho ::
----php----
if (count($_GET)== 0) {
$_GET['page']= 0;
}
if ($_GET['page'] == 1) { //dodaj novega
pageAddNew();
exit();
} elseif ($_GET['page'] == 2) { //popravi podatke
pageChange();
exit();
} else {
exit();
}
function pageAddNew(){
global $PHP_SELF;
$odgovor=""; //tukajle notri je obvestilo uporabniku, ki ga vrne narejena komanda.
if (count($_POST) != 0) { //glede na cmd nastavimo spremenljivke
if ($_POST['cmd'] == "add") {//tole se zgodi v drugem ciklu dodajanja
} else {
$link = mySQLConnect();
$query = "SELECT MAX(clanskaStevilka) FROM clani;";
$result = mysql_query($query,$link)
or die("Query failed - $PHP_SELF");
$rowcnt = mysql_num_rows($result);
if ($rowcnt != 0){
$GLOBALS['zadnjaClanskaSt'] = mysql_result($result,0,0);
$GLOBALS['zadnjaClanskaSt']++;
}
}
}
include_once("./include/pageHeader.htinc.php");
echo("".$odgovor."");
include_once("./include/claniDodaj_1.htinc.php");
include_once("./include/pageFooter.htinc.php");
}
function pageChange(){
}
---- konec php----
--------------------------------------------------------------
in se "./include/claniDodaj_1.htinc.php"
html koda
----php----
echo($GLOBALS['zadnjaClanskaSt']);
---konec php----
html koda
--------------------------------------------------------
kako naj definiram spremenljivko $zadnjaClanskaSt., da jo bom lahko uporabil v 6-ti vrstici "./include/claniDodaj_1.htinc.php" takole ne deluje, ce jo definiram kot static tudi ne. ali se boljse vprasanje kako prenesti spremenljivke tukajle. pa ne mi z RTFM prosim. ker tole pa nisem nasel pod variable scope
--------------------------------------------------------
html koda
---- php----
$link = mySQLConnect();
$query = "SELECT * FROM zzz;";
$result = mysql_query($query,$link)
or die("Query failed - $PHP_SELF");
$rowcnt = mysql_num_rows($result);
if ($rowcnt != 0) {
while (($row = mysql_fetch_array($result,MYSQL_ASSOC))){
}
}
---- konec php----
html koda
---- php----
sedaj pa ne bi rad se enkrat delal querija pa bi uporabil, kar prejsnji result
---- konec php----
.......
if (count($_GET)== 0) {
$_GET['page']= 0;
}
if ($_GET['page'] == 1) { //dodaj novega
pageAddNew();
exit();
} elseif ($_GET['page'] == 2) { //popravi podatke
pageChange();
exit();
} else {
exit();
}
function pageAddNew(){
global $PHP_SELF;
$odgovor=""; //tukajle notri je obvestilo uporabniku, ki ga vrne narejena komanda.
if (count($_POST) != 0) { //glede na cmd nastavimo spremenljivke
if ($_POST['cmd'] == "add") {//tole se zgodi v drugem ciklu dodajanja
} else {
$link = mySQLConnect();
$query = "SELECT MAX(clanskaStevilka) FROM clani;";
$result = mysql_query($query,$link)
or die("Query failed - $PHP_SELF");
$rowcnt = mysql_num_rows($result);
if ($rowcnt != 0){
$GLOBALS['zadnjaClanskaSt'] = mysql_result($result,0,0);
$GLOBALS['zadnjaClanskaSt']++;
}
}
}
include_once("./include/pageHeader.htinc.php");
echo("".$odgovor."");
include_once("./include/claniDodaj_1.htinc.php");
include_once("./include/pageFooter.htinc.php");
}
function pageChange(){
}
---- konec php----
--------------------------------------------------------------
in se "./include/claniDodaj_1.htinc.php"
html koda
----php----
echo($GLOBALS['zadnjaClanskaSt']);
---konec php----
html koda
--------------------------------------------------------
kako naj definiram spremenljivko $zadnjaClanskaSt., da jo bom lahko uporabil v 6-ti vrstici "./include/claniDodaj_1.htinc.php" takole ne deluje, ce jo definiram kot static tudi ne. ali se boljse vprasanje kako prenesti spremenljivke tukajle. pa ne mi z RTFM prosim. ker tole pa nisem nasel pod variable scope
--------------------------------------------------------
html koda
---- php----
$link = mySQLConnect();
$query = "SELECT * FROM zzz;";
$result = mysql_query($query,$link)
or die("Query failed - $PHP_SELF");
$rowcnt = mysql_num_rows($result);
if ($rowcnt != 0) {
while (($row = mysql_fetch_array($result,MYSQL_ASSOC))){
}
}
---- konec php----
html koda
---- php----
sedaj pa ne bi rad se enkrat delal querija pa bi uporabil, kar prejsnji result
---- konec php----
.......
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
- spremenil: krho ()
rasta ::
Če $zadnjaClanskaSt definiraš v funkciji pageAddNew(), jo poskusi dati pod globals na začetku.
darh ::
hm.. zakaj ne vražaš vrednosti iz funkcije? Vse kar rabiš iz funkcije pageAddNew() je $GLOBALS['zadnjaClanskaSt']++... namesto tega uporabi samo $zadnjaClanskaSt in to vrednost vrni - return $zadnjaClanskaSt. Ko kličeš funkcijo, pa shraniš to vredost ki jo vrne...
Še nekaj... ko delaš global $PHP_SELF - nepotrebno... vrednost je enaka v $_SERVER['PHP_SELF'], ki ga ni treba posebej "globalizirat" v funkcijah - nič življensko pomembnega, samo, ko boš izklopil register_globals, ti zadeva ne bo delala več.
sedaj pa ne bi rad se enkrat delal querija pa bi uporabil, kar prejsnji result
??
$result = mysql_query('...');
$result_bkp = $result;
... = mysql_fetch_row($result);
....
... = mysql_fetch_row($result_bkp);
Še nekaj... ko delaš global $PHP_SELF - nepotrebno... vrednost je enaka v $_SERVER['PHP_SELF'], ki ga ni treba posebej "globalizirat" v funkcijah - nič življensko pomembnega, samo, ko boš izklopil register_globals, ti zadeva ne bo delala več.
sedaj pa ne bi rad se enkrat delal querija pa bi uporabil, kar prejsnji result
??
$result = mysql_query('...');
$result_bkp = $result;
... = mysql_fetch_row($result);
....
... = mysql_fetch_row($result_bkp);
Excuses are useless! Results are priceless!
krho ::
sedaj pa ne bi rad se enkrat delal querija pa bi uporabil, kar prejsnji result
??
imam html kodo, ki jo 2x prekinem z <?php ?>
v prvem in drugem rabim enak rezultat poizvedbe, vendar php pozabi vrednosti spremenljivk v prvem <?php ?>
ce imas v bazi veliko vrstic je izgubljanje casa 2x delat se query. htmlja je pa prevec, da bi ga ven metal z echo.
primer v funkicijei je podoben.
v funkciji zgeneriram podatke oz. nastavim vrednosti spremenljivk, le te pa rabim v fajlu, ki ga vkljucim (v funkciji). v tem primeru rabim $zadnjaClanskaSt v "./include/claniDodaj_1.htinc.php"
Samo kaj ko php "pozabi" vrednosti spremenljivk, takoj ko naleti na naslednji <?php ?>
??
imam html kodo, ki jo 2x prekinem z <?php ?>
v prvem in drugem rabim enak rezultat poizvedbe, vendar php pozabi vrednosti spremenljivk v prvem <?php ?>
ce imas v bazi veliko vrstic je izgubljanje casa 2x delat se query. htmlja je pa prevec, da bi ga ven metal z echo.
primer v funkicijei je podoben.
v funkciji zgeneriram podatke oz. nastavim vrednosti spremenljivk, le te pa rabim v fajlu, ki ga vkljucim (v funkciji). v tem primeru rabim $zadnjaClanskaSt v "./include/claniDodaj_1.htinc.php"
Samo kaj ko php "pozabi" vrednosti spremenljivk, takoj ko naleti na naslednji <?php ?>
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
krho ::
gre se mi zato, da imam čim manj mešanja html-ja in php-ja
zato imam v .php fajlih samo cisti php v htinc.php pa html, ki ga prekinem z <?php ?>
zato imam v .php fajlih samo cisti php v htinc.php pa html, ki ga prekinem z <?php ?>
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
krho ::
rasta:
če definiram tole na začetku
$GLOBALS['zadnjaClanskaSt']= 99;
ter spremenim v funkciji vrednost spremenljivke:
$GLOBALS['zadnjaClanskaSt'] = mysql_result($result,0,0);
$GLOBALS['zadnjaClanskaSt']++;
le ta v "./include/claniDodaj_1.htinc.php"
kjer jo potrebujem to lle ta vrednost 99
grr.
če definiram tole na začetku
$GLOBALS['zadnjaClanskaSt']= 99;
ter spremenim v funkciji vrednost spremenljivke:
$GLOBALS['zadnjaClanskaSt'] = mysql_result($result,0,0);
$GLOBALS['zadnjaClanskaSt']++;
le ta v "./include/claniDodaj_1.htinc.php"
kjer jo potrebujem to lle ta vrednost 99
grr.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
krho ::
v funkciji je manjsa napaka.
spremenljivko bi moral postaviti v zunanjem if stavku ne v notranjem.
Sam sem pa nucal, da sem tole pogruntal.
Hvala za pomoč obema. :)
spremenljivko bi moral postaviti v zunanjem if stavku ne v notranjem.
Sam sem pa nucal, da sem tole pogruntal.
Hvala za pomoč obema. :)
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
krho ::
xbite:
$result = mysql_query('...');
$result_bkp = $result;
... = mysql_fetch_row($result);
....
... = mysql_fetch_row($result_bkp);
tvoja koda ne deluje
ko enkrat prides do konca z mysql_fetch_xxx moraš uporabiti mysql_data_seek($result,0);, da te vrže spet na začetek arraya.
tako da sedaj mi vse deluje.
$result = mysql_query('...');
$result_bkp = $result;
... = mysql_fetch_row($result);
....
... = mysql_fetch_row($result_bkp);
tvoja koda ne deluje
ko enkrat prides do konca z mysql_fetch_xxx moraš uporabiti mysql_data_seek($result,0);, da te vrže spet na začetek arraya.
tako da sedaj mi vse deluje.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [mySQL(+php)] Kako dobiti največji ID (številka) iz stolpcaOddelek: Izdelava spletišč | 1121 (1000) | preem |
» | [c++] osnovna težava z mysql apiOddelek: Programiranje | 2054 (1693) | SasoS |
» | sortOddelek: Izdelava spletišč | 1267 (1188) | darh |
» | Kaj je narobe tu...(php)Oddelek: Programiranje | 1190 (1088) | teac |
» | Zakaj? (php & mySQL)Oddelek: Programiranje | 1215 (1142) | darh |