RE: [PHP] SQL Warning

2002-04-24 Thread Ford, Mike [LSS]

 -Original Message-
 From: Jennifer Downey [mailto:[EMAIL PROTECTED]]
 Sent: 24 April 2002 04:46
 
 Would you please direct your attention to this URL
 
 http://testphp.netfirms.com/code1.html
 
 Look at the bottom where the big orange commented syntax is 
 and explain what
 is going on there?


$query = SELECT name FROM {$config[prefix]}_users WHERE uid={$session[uid]};

$ret = mysql_query($query);

 

// this is line 14
while($row = mysql_fetch_array($ret))
.
.
.
// this is the problem area. It is giving me this sql warning Warning: Supplied 
argument is not a valid MySQL result resource in /home/public_html/sortitems.php on 
line 14 look at top for line 14 why is it

// looking at line 14 I am not asking for any of that information?


No idea why the error message is so far down the page, but it is certainly referring 
to line 14 -- it is telling you that the $ret you are supplying to mysql_fetch_array 
is invalid.  Why?  Because the mysql_query failed, and so $ret was not assigned valid 
result resource.  This is why you should ALWAYS check the return value of a 
mysql_query call before trying to fetch its results.

Now, why is the query failing?  Well, let's take a look at this line:

$query = SELECT name FROM {$config[prefix]}_users WHERE uid={$session[uid]};

The stuff to the right of the = consists of:

(1) the string SELECT name FROM {$config[
(2) the constant named prefix (which, I guess, doesn't exist)
(3) the string ]}_users WHERE uid={$session[
(4) the constant named uid (ditto!)
(5) the string ]}

with NO concatenation operators in between.

This line ought to generate multiple warnings and notices -- you must have 
error_reporting set to suppress all these useful messages, so I suggest you change it 
to something more useful forthwith (such as E_ALL, or at least E_ALL ^ E_NOTICE).

So, the final solution to your problem would be either of the following:

$query = SELECT name FROM {$config[\prefix\]}_users WHERE 
uid={$session[\uid\]};

$query = SELECT name FROM {$config['prefix']}_users WHERE uid={$session['uid']};

Hope this helps.

Cheers!

Mike

-
Mike Ford,  Electronic Information Services Adviser,
Learning Support Services, Learning  Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Beckett Park, LEEDS,  LS6 3QS,  United Kingdom
Email: [EMAIL PROTECTED]
Tel: +44 113 283 2600 extn 4730  Fax:  +44 113 283 3211 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




Re: [PHP] SQL Warning

2002-04-24 Thread The_RadiX

Hey...


Ok Firs Mike.. Yes I have been fixing some of her scripts and saw she used
this too..

Unbelievably I also so this point about the string in the string without
concat op's but incredibly it works..



Now back to reason why it don't work..


Okay Jenny..

Hi again :)

Next..

Do you have anything actually IN your table ({$config[prefix]}_users) ??


If so does the username in it match {$session[uid]} ??


If it doesn't and mysql_query returns a error cos a) table don't exist or b)
some other sql error such as column name wrong etc..

Then mysql_fetch_array will cough up error..




This happened when I setup your scripts on my box.. And whenever I setup any
scripts in which I don't yet have any records matching the query so
mysql_fetch_array goes nuts..




Ok.. Hope it helped..


:::
:  Julien Bonastre [The-Spectrum.org CEO]
:  A.K.A. The_RadiX
:  [EMAIL PROTECTED]
:  ABN: 64 235 749 494
:  QUT Student :: 04475739
:::


- Original Message -
From: Ford, Mike [LSS] [EMAIL PROTECTED]
To: 'Jennifer Downey' [EMAIL PROTECTED]; [EMAIL PROTECTED]
Sent: Wednesday, April 24, 2002 10:05 PM
Subject: RE: [PHP] SQL Warning


  -Original Message-
  From: Jennifer Downey [mailto:[EMAIL PROTECTED]]
  Sent: 24 April 2002 04:46
 
  Would you please direct your attention to this URL
 
  http://testphp.netfirms.com/code1.html
 
  Look at the bottom where the big orange commented syntax is
  and explain what
  is going on there?

 
 $query = SELECT name FROM {$config[prefix]}_users WHERE
uid={$session[uid]};

 $ret = mysql_query($query);



 // this is line 14
 while($row = mysql_fetch_array($ret))
 .
 .
 .
 // this is the problem area. It is giving me this sql warning Warning:
Supplied argument is not a valid MySQL result resource in
/home/public_html/sortitems.php on line 14 look at top for line 14 why is it

 // looking at line 14 I am not asking for any of that information?
 

 No idea why the error message is so far down the page, but it is certainly
referring to line 14 -- it is telling you that the $ret you are supplying to
mysql_fetch_array is invalid.  Why?  Because the mysql_query failed, and so
$ret was not assigned valid result resource.  This is why you should ALWAYS
check the return value of a mysql_query call before trying to fetch its
results.

 Now, why is the query failing?  Well, let's take a look at this line:

 $query = SELECT name FROM {$config[prefix]}_users WHERE
uid={$session[uid]};

 The stuff to the right of the = consists of:

 (1) the string SELECT name FROM {$config[
 (2) the constant named prefix (which, I guess, doesn't exist)
 (3) the string ]}_users WHERE uid={$session[
 (4) the constant named uid (ditto!)
 (5) the string ]}

 with NO concatenation operators in between.

 This line ought to generate multiple warnings and notices -- you must have
error_reporting set to suppress all these useful messages, so I suggest you
change it to something more useful forthwith (such as E_ALL, or at least
E_ALL ^ E_NOTICE).

 So, the final solution to your problem would be either of the following:

 $query = SELECT name FROM {$config[\prefix\]}_users WHERE
uid={$session[\uid\]};

 $query = SELECT name FROM {$config['prefix']}_users WHERE
uid={$session['uid']};

 Hope this helps.

 Cheers!

 Mike

 -
 Mike Ford,  Electronic Information Services Adviser,
 Learning Support Services, Learning  Information Services,
 JG125, James Graham Building, Leeds Metropolitan University,
 Beckett Park, LEEDS,  LS6 3QS,  United Kingdom
 Email: [EMAIL PROTECTED]
 Tel: +44 113 283 2600 extn 4730  Fax:  +44 113 283 3211

 --
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




RE: [PHP] SQL Warning

2002-04-23 Thread Jason Murray

 Would you please direct your attention to this URL
 
 http://testphp.netfirms.com/code1.html
 
 Look at the bottom where the big orange commented syntax is 
 and explain what is going on there?

{$config[prefix]}

I think this should be

${config[prefix]}

... also, it's handy to actually echo or print the SQL you're
executing, as you will be able to see if the SQL is correct
or not. 

The error on line 14 occurs because you're trying to execute 
mysql_fetch_array on a mysql result set that doesn't exist. 

The most likely reason it doesn't exist is because the SQL is 
wrong. Echo the SQL and you'll find out whats happening.

J

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




RE: [PHP] SQL Warning

2002-04-23 Thread Martin Towell

or make it
$config[prefix]


-Original Message-
From: Jason Murray [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, April 24, 2002 1:51 PM
To: 'Jennifer Downey'; [EMAIL PROTECTED]
Subject: RE: [PHP] SQL Warning


 Would you please direct your attention to this URL
 
 http://testphp.netfirms.com/code1.html
 
 Look at the bottom where the big orange commented syntax is 
 and explain what is going on there?

{$config[prefix]}

I think this should be

${config[prefix]}

... also, it's handy to actually echo or print the SQL you're
executing, as you will be able to see if the SQL is correct
or not. 

The error on line 14 occurs because you're trying to execute 
mysql_fetch_array on a mysql result set that doesn't exist. 

The most likely reason it doesn't exist is because the SQL is 
wrong. Echo the SQL and you'll find out whats happening.

J

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




RE: [PHP] SQL Warning

2002-04-23 Thread Miguel Cruz

On Wed, 24 Apr 2002, Jason Murray wrote:
 {$config[prefix]}
 
 I think this should be
 
 ${config[prefix]}

Those are equivalent.

miguel


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




RE: [PHP] SQL Warning

2002-04-23 Thread Martin Towell

The reason why I said that is 'cause the array was inside quotes, so quoting
again would break out of the original quotes

-Original Message-
From: Miguel Cruz [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, April 24, 2002 2:03 PM
To: Jason Murray
Cc: [EMAIL PROTECTED]
Subject: RE: [PHP] SQL Warning


On Wed, 24 Apr 2002, Jason Murray wrote:
 {$config[prefix]}
 
 I think this should be
 
 ${config[prefix]}

Those are equivalent.

miguel


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php