From: Mike Davies on
On Tue, 2010-06-22 at 10:41 -0400, Daniel P. Brown wrote:
> On Tue, Jun 22, 2010 at 10:17, Mike Davies <mike(a)integrawebdesign.co.uk> 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 :

<?php
mysql_select_db($database_general, $general);
$query_details = "SELECT * FROM news WHERE news_id = '$_GET[id]'";
$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);
$query_thumbs = "SELECT * FROM news_thumbs";
$thumbs = mysql_query($query_thumbs, $general) or die(mysql_error());
$totalRows_thumbs = mysql_num_rows($thumbs);
$i = 1;
while ($row_thumbs = mysql_fetch_assoc($thumbs)){
$thumbsarray[$i] = $row_thumbs;
$i++;
}

//print_r($thumbsarray);
?>

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 861535 www.integrawebdesign.co.uk

From: Shreyas Agasthya on
Mike,

Little weird. I executed the same lines of code against my sample database
and did not got any warning. You might want to send the code for projects
and news to do any comparison?
*[I will silently wait for the PHP demi-gods (the Ashleys, the Pauls et al)
at hover their vigilant eyes on your lines .:) ]*

Regards,
Shreyas

On Wed, Jun 23, 2010 at 2:48 PM, Mike Davies <mike(a)integrawebdesign.co.uk>wrote:

>
> The only earlier reference to $thumbsarray is in the first lines of the
> file :
>
> <?php
> mysql_select_db($database_general, $general);
> $query_details = "SELECT * FROM news WHERE news_id = '$_GET[id]'";
> $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);
> $query_thumbs = "SELECT * FROM news_thumbs";
> $thumbs = mysql_query($query_thumbs, $general) or die(mysql_error());
> $totalRows_thumbs = mysql_num_rows($thumbs);
> $i = 1;
> while ($row_thumbs = mysql_fetch_assoc($thumbs)){
> $thumbsarray[$i] = $row_thumbs;
> $i++;
> }
>
> //print_r($thumbsarray);
> ?>
>
> 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 861535 www.integrawebdesign.co.uk
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


--
Regards,
Shreyas Agasthya
From: Ashley Sheridan on
On Wed, 2010-06-23 at 15:55 +0530, Shreyas Agasthya wrote:

> Mike,
>
> Little weird. I executed the same lines of code against my sample database
> and did not got any warning. You might want to send the code for projects
> and news to do any comparison?
> *[I will silently wait for the PHP demi-gods (the Ashleys, the Pauls et al)
> at hover their vigilant eyes on your lines .:) ]*
>
> Regards,
> Shreyas
>
> On Wed, Jun 23, 2010 at 2:48 PM, Mike Davies <mike(a)integrawebdesign.co.uk>wrote:
>
> >
> > The only earlier reference to $thumbsarray is in the first lines of the
> > file :
> >
> > <?php
> > mysql_select_db($database_general, $general);
> > $query_details = "SELECT * FROM news WHERE news_id = '$_GET[id]'";
> > $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);
> > $query_thumbs = "SELECT * FROM news_thumbs";
> > $thumbs = mysql_query($query_thumbs, $general) or die(mysql_error());
> > $totalRows_thumbs = mysql_num_rows($thumbs);
> > $i = 1;
> > while ($row_thumbs = mysql_fetch_assoc($thumbs)){
> > $thumbsarray[$i] = $row_thumbs;
> > $i++;
> > }
> >
> > //print_r($thumbsarray);
> > ?>
> >
> > 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 861535 www.integrawebdesign.co.uk
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>
>


If you didn't get any warnings on your test machine, it might just be
because of a different error reporting being set up.

As for the local test, did it work as expected? If so, and the code
hasn't changed, then it might be the actual tables in the database. If
there are no rows returned where you expected some, and the code expects
rows as an array, then it could be the cause of the problem.

Thanks,
Ash
http://www.ashleysheridan.co.uk


From: Daniel Brown on
Hold everything, Mike!

On Wed, Jun 23, 2010 at 05:18, Mike Davies <mike(a)integrawebdesign.co.uk> wrote:
[snip!]
>
> <?php
> 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?

--
</Daniel P. Brown>
UNADVERTISED DEDICATED SERVER SPECIALS
SAME-DAY SETUP
Just ask me what we're offering today!
daniel.brown(a)parasane.net || danbrown(a)php.net
http://www.parasane.net/ || http://www.pilotpig.net/
From: Mike Davies on
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 <mike(a)integrawebdesign.co.uk> wrote:
> [snip!]
> >
> > <?php
> > 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 861535 www.integrawebdesign.co.uk

First  |  Prev  |  Next  |  Last
Pages: 1 2 3
Prev: fetching DB entries
Next: Stripping Characters