[php] function achterhalen na include

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • fromalk
  • Registratie: Januari 2004
  • Laatst online: 28-07 15:16
Ok het gaat hem dus om dit script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
session_start();
function template()
{
      $template_selecttype=mysql_num_rows(mysql_query("SELECT config_value FROM unib_cinfig WHERE config_para=user_can_select_temp AND WHERE config_value=1"))

    if($template_selecttype==0)
    {
       //User can not select his own template
       $ja="ja";
       session_register("ja");
    }
    else
    {
       $ja="nee";
       session_register("ja");
   }
}


SQL stuk:
CREATE TABLE `unib_config` (
  `config_ID` tinyint(4) NOT NULL auto_increment,
  `config_para` varchar(250) NOT NULL default '',
  `config_value` text NOT NULL,
  PRIMARY KEY  (`config_ID`),
  KEY `config_para` (`config_para`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

-- 
-- Gegevens worden uitgevoerd voor tabel `unib_config`
-- 

INSERT INTO `unib_config` VALUES (1, 'user_can_select_temp', '0');

Dat is een deel van de pagina functions.php
Nu include ik functions.php in de file index.php waar ik $ja echo, ik hb $ja gewoon genomen om te kijken of het wel werkte... wat dus niet is, daar ik niets zie als k index.php bekijk...
De bedoeling v h script:
mysql: achterhalen of er velden zijn die user_can_select_temp las parameter hebben en 1 als value, als die er niet zijn dan is het ja, en als die er wel zijn dan is het nee, (kwestie v test)

Nu merkte k al dat het deel WHERE gew niet kan kloppen, maar iemand enige suggesties waarmee k het moet vervangen, vrij grote n00b vraag :P

[ Voor 7% gewijzigd door fromalk op 05-09-2004 17:25 ]


Acties:
  • 0 Henk 'm!

  • fromalk
  • Registratie: Januari 2004
  • Laatst online: 28-07 15:16
1ste faut was al dat k nog mysql num rows moest doen op de query, ff vergete, maar wat moet er nog bij WHERE staan?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

fromalk schreef op 05 september 2004 @ 17:05:
Dat is een deel van de pagina functions.php
Nu include ik functions.php in de file index.php waar ik $ja echo, ik hb $ja gewoon genomen om te kijken of het wel werkte... wat dus niet is, daar ik niets zie als k index.php bekijk...
let eens op de scope van je variabele ;)
De bedoeling v h script:
mysql: achterhalen of er velden zijn die user_can_select_temp las parameter hebben en 1 als value, als die er niet zijn dan is het ja, en als die er wel zijn dan is het nee, (kwestie v test)

Nu merkte k al dat het deel WHERE gew niet kan kloppen, maar iemand enige suggesties waarmee k het moet vervangen, vrij grote n00b vraag :P
er is geen kolom user_can_select_temp, dus je moconfig_para checken op 'user_can_select_temp' _en_ je moet config_value checken op '1' :)
fromalk schreef op 05 september 2004 @ 17:13:
1ste faut was al dat k nog mysql num rows moest doen op de query, ff vergete, maar wat moet er nog bij WHERE staan?
waar zou je mysql_num_rows voor nodig hebben :?

Acties:
  • 0 Henk 'm!

Verwijderd

Als je een redelijk niewe versie van PHP gebruikt raad ik je ten eerste af om session_register te gebruiken, gebruik dan liever $_SESSION.

Verder, je weet dus niet óf het veld bestaat, en als het wel bestaat moet de waarde 1 zijn?
Wat je dan het beste kan doen is "SELECT * FROM tabel WHERE dit=dat", en dan met foreach de keys bekijken...zodra je key "user_can_select_temp" moet je kijken of het value "1" is...


Edit: sorry, verkeerd gelezen...het moet zijn wat Erkens zegt :)

PHP:
1
$sql = "SELECT * FROM unib_config WHERE config_para='user_can_select_temp' AND config_value='1'";

[ Voor 30% gewijzigd door Verwijderd op 05-09-2004 17:22 ]


Acties:
  • 0 Henk 'm!

  • fromalk
  • Registratie: Januari 2004
  • Laatst online: 28-07 15:16
Wat is dat precies die scope :-$

Acties:
  • 0 Henk 'm!

  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 15-09 17:06

Skat! Skat! Skat!


Acties:
  • 0 Henk 'm!

  • fromalk
  • Registratie: Januari 2004
  • Laatst online: 28-07 15:16
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
session_start();
function template()
{
   $template_selecttype=mysql_query("SELECT * FROM unib_config WHERE config_para='user_can_select_temp' AND config_value='1'");

    if($template_selecttype==0)
    {
       //User can not select his own template
       $ja="ja";
       global $ja;
       session_register("ja");
    }
    else
    {
       $ja="nee";
       global $ja;
       session_register("ja");
   }
}

Doet nog altijd niets :(

Acties:
  • 0 Henk 'm!

  • fromalk
  • Registratie: Januari 2004
  • Laatst online: 28-07 15:16
die functie template die word toch auto gestart als k die file functions include eh? anders is dat misch mis? Wat er in index.php staat:
PHP:
1
2
3
include(includepad.'/functions'.$ext.'');
session_start();
echo $ja;

Acties:
  • 0 Henk 'm!

  • fromalk
  • Registratie: Januari 2004
  • Laatst online: 28-07 15:16
Heb nog een stukje vernadert:
PHP:
1
2
3
4
5
6
7
8
9
if($template_selecttype==0)
    {
       //User can not select his own template
       $_SESSION['ja']='ja';
    }
    else
    {
       $_SESSION['ja']='nee';
   }

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Begrijp ik je goed dat je in een sessie het resultaat wilt opslaan en dit resultaat alleen iets verder op in je script gebruikt? Of moet het daarna "altijd" beschikbaar zijn in de volgende pagina's zonder die functie opnieuw aan te roepen?
In het eerste geval, waarom maak je niet gebruik van een return value?
Pagina: 1