[PHP] Warning messages on web page.

2010-06-22 Thread Mike Davies
Hello,

This is my first post to this list and I am a novice at php coding. I
can generally follow the code but not good at writing from scratch.


I have recently been trying to add to a website which was originally
developed by someone else and is written in php and mysql. I am trying
to add a 'news' section to the site. This would be similar to an
existing 'projects' section so, rather than write it completely from
scratch I copied the php and the database tables from the 'project'
section and renamed 'project' to 'news'.


This is working well except for one thing – I get the following error
messages when looking at the detailed news item. This code does not
produce this warning in the project section which is using the same php
code


Warning: reset() [function.reset]: Passed variable is not an array or
object in /home/b23aadf/public_html/news/details.php on line 72

Warning: Variable passed to each() is not an array or object
in /home/b23aadf/public_html/news/details.php on line 73


The relevant lines are :


72 reset($thumbsarray);

73 while (list($key, $value) = each($thumbsarray)) {

The site is at www.aadf.co.uk and select 'News'.

Is anyone able to help resolve this? If you let me know what further
information you require I can provide it.


Mike Davies

-- 
Mike Davies
Integra Web Design, Rhynie, By Huntly, AB54 4LS
01464 861535www.integrawebdesign.co.uk


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



Re: [PHP] Warning messages on web page.

2010-06-23 Thread Mike Davies
On Tue, 2010-06-22 at 10:41 -0400, Daniel P. Brown wrote:
> On Tue, Jun 22, 2010 at 10:17, Mike Davies  
> wrote:
> [snip!]
> >
> > Warning: reset() [function.reset]: Passed variable is not an array or
> > object in /home/b23aadf/public_html/news/details.php on line 72
> [snip!]
> >
> > Is anyone able to help resolve this? If you let me know what further
> > information you require I can provide it.
> 
> Note the first error (quoted herein).  That tells you that the
> variable ($thumbsarray) is not actually an array.  How is it being
> instantiated and defined?
> 

The only earlier reference to $thumbsarray is in the first lines of the
file :



This is exactly the same as the code which is working for the 'projects'
pages.

Mike

-- 
Mike Davies
Integra Web Design, Rhynie, By Huntly, AB54 4LS
01464 861535www.integrawebdesign.co.uk


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



Re: [PHP] Warning messages on web page.

2010-06-23 Thread Mike Davies
On Wed, 2010-06-23 at 09:09 -0400, Daniel Brown wrote:
> Hold everything, Mike!
> 
> On Wed, Jun 23, 2010 at 05:18, Mike Davies  
> wrote:
> [snip!]
> >
> >  > mysql_select_db($database_general, $general);
> > $query_details = "SELECT * FROM news WHERE news_id = '$_GET[id]'";
> 
> /**
>  *  Above line is placed here so that we can be easily,
>  *  deliberately, and permanently destroyed.  Of course,
>  *  I suppose we *could* avoid that by sanitizing the input.
>  *  Perhaps mysql_real_escape_string() or something
>  */
> 
> > $details = mysql_query($query_details, $general) or die(mysql_error());
> > $row_details = mysql_fetch_assoc($details);
> > $totalRows_details = mysql_num_rows($details);
> >
> > mysql_select_db($database_general, $general);
> 
> // You don't need to reconnect to the database between queries.
> // Since you're using the same here as above, the same link is fine.
> 
> > $query_thumbs = "SELECT * FROM news_thumbs";
> > $thumbs = mysql_query($query_thumbs, $general) or die(mysql_error());
> 
> // You don't need to tell mysql_query() which database to use every time
> // either, when using the same database for queries.
> 
> > $totalRows_thumbs = mysql_num_rows($thumbs);
> 
> // Doesn't look like you use this --- at least in this code
> snippet.  Necessary?
> 
> > $i = 1;
> 
> // I'd lose the above line as well.  You'll see why in a second
> 
> /** REPLACE THIS:
> > while ($row_thumbs = mysql_fetch_assoc($thumbs)){
> > $thumbsarray[$i] = $row_thumbs;
> > $i++;
> > }
> **/
> 
> // WITH THIS:
> while($row_thumbs = mysql_fetch_assoc($thumbs)) {
> $thumbsarray[] = $row_thumbs;
> }
> 
> > //print_r($thumbsarray);
> > ?>
> 
> 
> > This is exactly the same as the code which is working for the 'projects'
> > pages.
> 
> Okay.  On the database to which you're connecting, use phpMyAdmin,
> the MySQL CLI, or something other than this and run the following
> query:
> 
> SELECT * FROM news_thumbs;
> 
> Is anything returned?
> 
Nothing is returned for SELECT query as there is nothing in the table as
yet. Perhaps this is the problem. Typically all projects would have an
associated thumb image but all news items may not. Perhaps a thumb image
is necessary to stop this warning? Should I change the code to allow for
there being no thumb image, if so can you suggest how I might modify it?

Thanks to everyone who has responded, it has been most useful.

regards,
Mike
-- 
Mike Davies
Integra Web Design, Rhynie, By Huntly, AB54 4LS
01464 861535www.integrawebdesign.co.uk


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



Re: [PHP] Warning messages on web page.

2010-06-23 Thread Mike Davies
On Wed, 2010-06-23 at 16:22 +0100, Ashley Sheridan wrote:
> On Wed, 2010-06-23 at 16:14 +0100, Mike Davies wrote: 

> If you haven't in your code, then make sure you define $thumbsarray as
> an array before you attempt to use it in the loop. This will have no
> effect where rows are returned, but it will ensure an empty array
> exists if your code expects it and there is no data in the database to
> populate it.
> 
> Thanks,
> Ash
> http://www.ashleysheridan.co.uk
> 
> 
> 

Thanks Ash and to everyone else. I added :
$thumbsarray=array()

above the first instance and the warning no longer appears. Hopefully
nothing else will be affected.

Many thanks for all your time.

regards,
Mike
-- 
Mike Davies
Integra Web Design, Rhynie, By Huntly, AB54 4LS
01464 861535www.integrawebdesign.co.uk


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