Thread: Variable question...
Can anyone please tell me why this does not work: $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle WHERE o_plz = $HTTP_SESSION_VARS['user_tabelleXu_o_plz']"); And I have to do the following instead? $plz = $HTTP_SESSION_VARS['user_tabelleXu_o_plz']; $result = query_trans($c1, "SELECT o_plz FROM ort_tabelle WHERE o_plz = $plz"); Tia again Chris
Try -- $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle WHERE o_plz =". $HTTP_SESSION_VARS["user_tabelleXu_o_plz"]); > And I have to do the following instead? > > $plz = $HTTP_SESSION_VARS['user_tabelleXu_o_plz']; > $result = query_trans($c1, "SELECT o_plz FROM ort_tabelle WHERE o_plz = > $plz"); > > Tia again Chris > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org >
Hey, It might not be translating the array contents properly (because of the quotes inside the $HTTP_SESSION_VARS? Not sure)... Try - $result = pg_exec($c1, "SELECT o_plz FROM ort_tabelle WHERE o_plz = ".$HTTP_SESSION_VARS['user_tabelleXu_o_plz']); which basically appends the session variable onto the end of the query.. > Can anyone please tell me why this does not work: > > $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle WHERE o_plz = > $HTTP_SESSION_VARS['user_tabelleXu_o_plz']"); > > And I have to do the following instead? > > $plz = $HTTP_SESSION_VARS['user_tabelleXu_o_plz']; > $result = query_trans($c1, "SELECT o_plz FROM ort_tabelle WHERE o_plz = > $plz"); -- Chris Smith http://www.squiz.net
> Try -- > > $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle > WHERE o_plz =". > $HTTP_SESSION_VARS["user_tabelleXu_o_plz"]); Hell..... I'm doing this anyway in another script.. Thanks ;) But I wonder how you would do that within the string correctly :) (the error message php gives me does not tell me anything usefull;) ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly
Thanks :) Got that answer just a moment ago... I'm doing this in another script anyway... *dizzy* Well now it would be interessting to know how to accomplish this without this "work around". The PHP authors must have thought about a way to use variables with text marks inside strings, don't they? regards > -----Original Message----- > From: Chris Smith [mailto:csmith@squiz.net] > Sent: Thursday, May 10, 2001 2:49 AM > To: Christian Marschalek; [PHP] PostgreSQL > Subject: Re: [PHP] Variable question... > > > Hey, > > It might not be translating the array contents properly > (because of the > quotes inside the $HTTP_SESSION_VARS? Not sure)... > > Try - > > $result = pg_exec($c1, "SELECT o_plz FROM ort_tabelle WHERE o_plz = > ".$HTTP_SESSION_VARS['user_tabelleXu_o_plz']); > > which basically appends the session variable onto the end of > the query.. > > > Can anyone please tell me why this does not work: > > > > $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle WHERE o_plz = > > $HTTP_SESSION_VARS['user_tabelleXu_o_plz']"); > > > > And I have to do the following instead? > > > > $plz = $HTTP_SESSION_VARS['user_tabelleXu_o_plz']; > > $result = query_trans($c1, "SELECT o_plz FROM ort_tabelle > WHERE o_plz > > = > > $plz"); > > -- > > Chris Smith > http://www.squiz.net > ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html
Christian, There are one of three ways this can be done: 1. as you mentioned below; is to assign the variable to another variable first. 2. use the . syntax for string, as was mentioned in other responses to your question 3. use {} syntax to explicitly tell PHP what is your variable. see below for example The thing with PHP is that when parsing strings it needs to determine what is string and what is variable references. When you are using arrays and other complex access methods for object, classes and the like PHP gets confused and doesn't understand what to do. To solve this problem you can do one of the three listed above. The first is basically taking the complex access method and assigning to a variable that has the simple access method. The third uses PHP syntax to explicitly tell PHP what your variable is. Using you example you would write it like this: $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle WHERE o_plz = ${HTTP_SESSION_VARS['user_tabelleXu_o_plz']}"); NOTE: the {} brackets after the $ encapsulating the entire variable access. My preference is to use method 2 as it tends to be cleaner and a little easier to read but it is nice to know all the options as it depends on you application as to which is best for you. Chris Ryan chris@greatbridge.com Christian Marschalek wrote: > > Can anyone please tell me why this does not work: > > $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle WHERE o_plz = > $HTTP_SESSION_VARS['user_tabelleXu_o_plz']"); > > And I have to do the following instead? > > $plz = $HTTP_SESSION_VARS['user_tabelleXu_o_plz']; > $result = query_trans($c1, "SELECT o_plz FROM ort_tabelle WHERE o_plz = > $plz"); > > Tia again Chris > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://www.postgresql.org/search.mpl
> Try -- > > $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle > WHERE o_plz =". > $HTTP_SESSION_VARS["user_tabelleXu_o_plz"]); Hell..... I'm doing this anyway in another script.. Thanks ;) But I wonder how you would do that within the string correctly :) (the error message php gives me does not tell me anything usefull;) ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@postgresql.org so that your message can get through to the mailing list cleanly
Thanks :) Got that answer just a moment ago... I'm doing this in another script anyway... *dizzy* Well now it would be interessting to know how to accomplish this without this "work around". The PHP authors must have thought about a way to use variables with text marks inside strings, don't they? regards > -----Original Message----- > From: Chris Smith [mailto:csmith@squiz.net] > Sent: Thursday, May 10, 2001 2:49 AM > To: Christian Marschalek; [PHP] PostgreSQL > Subject: Re: [PHP] Variable question... > > > Hey, > > It might not be translating the array contents properly > (because of the > quotes inside the $HTTP_SESSION_VARS? Not sure)... > > Try - > > $result = pg_exec($c1, "SELECT o_plz FROM ort_tabelle WHERE o_plz = > ".$HTTP_SESSION_VARS['user_tabelleXu_o_plz']); > > which basically appends the session variable onto the end of > the query.. > > > Can anyone please tell me why this does not work: > > > > $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle WHERE o_plz = > > $HTTP_SESSION_VARS['user_tabelleXu_o_plz']"); > > > > And I have to do the following instead? > > > > $plz = $HTTP_SESSION_VARS['user_tabelleXu_o_plz']; > > $result = query_trans($c1, "SELECT o_plz FROM ort_tabelle > WHERE o_plz > > = > > $plz"); > > -- > > Chris Smith > http://www.squiz.net > ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html
Christian, There are one of three ways this can be done: 1. as you mentioned below; is to assign the variable to another variable first. 2. use the . syntax for string, as was mentioned in other responses to your question 3. use {} syntax to explicitly tell PHP what is your variable. see below for example The thing with PHP is that when parsing strings it needs to determine what is string and what is variable references. When you are using arrays and other complex access methods for object, classes and the like PHP gets confused and doesn't understand what to do. To solve this problem you can do one of the three listed above. The first is basically taking the complex access method and assigning to a variable that has the simple access method. The third uses PHP syntax to explicitly tell PHP what your variable is. Using you example you would write it like this: $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle WHERE o_plz = ${HTTP_SESSION_VARS['user_tabelleXu_o_plz']}"); NOTE: the {} brackets after the $ encapsulating the entire variable access. My preference is to use method 2 as it tends to be cleaner and a little easier to read but it is nice to know all the options as it depends on you application as to which is best for you. Chris Ryan chris@greatbridge.com Christian Marschalek wrote: > > Can anyone please tell me why this does not work: > > $result = pg_exec($c1,"SELECT o_plz FROM ort_tabelle WHERE o_plz = > $HTTP_SESSION_VARS['user_tabelleXu_o_plz']"); > > And I have to do the following instead? > > $plz = $HTTP_SESSION_VARS['user_tabelleXu_o_plz']; > $result = query_trans($c1, "SELECT o_plz FROM ort_tabelle WHERE o_plz = > $plz"); > > Tia again Chris > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://www.postgresql.org/search.mpl