Prev: fetching DB entries
Next: Stripping Characters
From: Mike Davies on 23 Jun 2010 05:18 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 23 Jun 2010 06:25 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 23 Jun 2010 06:30 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 23 Jun 2010 09:09 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 23 Jun 2010 11:14
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 |