nclemale Posted September 7, 2011 Share Posted September 7, 2011 hi . am editting a code i have on a gallery script. so its has a download function for users and also a hits counter. my hits counter and downloading code works perfect but am struggling with the while loop and how to get it so the link shows under each picture . At present its showing the first picture then the download links for all 5 pictures that is displaying. quick pictorial example below as to what the output is . [] <<< pic 1 link for pic 1 link for pic 2 link for pic 3 link for pic 4 link for pic 5 [] <<< pic 2 [] <<< pic 3 [] <<< pic 4 [] <<< pic 5 Thats what the page looks like . I do like to try to give you guys as much info as possible lol if($action=="males") { addonline(getuid_sid($sid),"Male Gallery",""); echo "<head>"; echo "<title>Gallery Pics</title>"; echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"../themes/$theme[0]\">"; echo "</head>"; echo "<body>"; echo "<p align=\"center\"><small>"; echo "<i><b><u>Male Users From $sitename</u></b></i>"; echo "<br/><br/>"; echo "</small></p>"; //////ALL LISTS SCRIPT << $uid1 = getuid_sid($sid); $mid = $_GET["mid"]; if($page=="" || $page<=0)$page=1; $noi = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM dave_usergallery WHERE sex='M'")); $num_items = $noi[0]; //changable $items_per_page= 5; $num_pages = ceil($num_items/$items_per_page); if(($page>$num_pages)&&$page!=1)$page= $num_pages; $limit_start = ($page-1)*$items_per_page; $sql = "SELECT uid, id, imageurl FROM dave_usergallery WHERE sex='M' ORDER BY id DESC LIMIT $limit_start, $items_per_page"; ///////////////////// part of the added code also. $result = mysql_query($sql) or die("Error: " . mysql_error()); //// echo "<p>"; $items = mysql_query($sql); echo mysql_error(); if(mysql_num_rows($items)>0) { while ($item = mysql_fetch_array($items)) { $sql = "SELECT rating FROM dave_usergallery_rating WHERE imageid='".$item[1]."'"; $imginfo = mysql_query($sql); echo mysql_error(); if(mysql_num_rows($imginfo)>0) { while ($imginfos = mysql_fetch_array($imginfo)){ $ratingtotal = $ratingtotal + $imginfos[0];} } if($totalcomments<1){$totalcomments=0;} $norm = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM dave_usergallery_rating WHERE imageid='".$item[1]."'")); if ($norm[0]>0){ $rating = ceil($ratingtotal/$norm[0]); }else{$rating=0;} $rated = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM dave_usergallery_rating WHERE byuid='".$uid1."' and imageid ='".$item[1]."'")); $totalcomments = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM dave_usergallery_rating WHERE imageid ='".$item[1]."' and commentsyn ='Y'")); $userinfo = mysql_fetch_array(mysql_query("SELECT name FROM dave_users WHERE id='".$item[0]."'")); echo "<a href=\"index.php?action=viewuser&who=$item[0]&sid=$sid\"><b><i><u>$userinfo[0]</u></i></b></a><small>"; if(canratephoto($uid1, $item[0]) and ($rated[0]==0)) { echo "<br/><a href=\"usergallery.php?action=rate&sid=$sid&whoimage=$item[1]\">Rate This Photo</a>"; } if(ishost(getuid_sid($sid))||((isowner(getuid_sid($sid))||((isheadadmin(getuid_sid($sid))))))) { echo " / <a href=\"usergallery.php?action=del&sid=$sid&whoimage=$item[1]\">Del</a>"; } if($uid1==$item[0]) { echo " / <a href=\"usergallery.php?action=del&sid=$sid&whoimage=$item[1]\">Del</a>"; } if($uid1==$item[0]) { echo "<br/><a href=\"genproc.php?action=upavg&sid=$sid&avsrc=$item[2]\">Use As profile pic</a>"; } echo "</small><br/><img src=\"$item[2]\" alt=\"$userinfo[0]\"/><br/>"; echo "<small>Rating: $rating/10 (<a href=\"usergallery.php?action=votes&sid=$sid&whoimage=$item[1]\">$norm[0]</a> Votes)<br/><a href=\"usergallery.php?action=comments&sid=$sid&whoimage=$item[1]\">Comments</a>($totalcomments[0])"; echo "</small><br/><a href=\"$item[2]\" alt=\"$userinfo[0]\"/>Download<br/>"; ////////////////////////my problem part while($row = mysql_fetch_array($result)){ echo "<br/><a href=\"getpics.php?file=$row[id]&sid=$sid\">Download test</a>"; <br/>"; } //////////////////////// echo "</small><br/><br/>"; $ratingtotal = 0; } } echo "</p>"; echo "<p align="center\">"; if($page>1) { $ppage = $page-1; echo "<a href=\"usergallery.php?action=males&sid=$sid&page=$ppage\">«Prev</a> "; } if($page<$num_pages) { $npage = $page+1; echo "<a href=\"usergallery.php?action=males&sid=$sid&page=$npage\">Next»</a>"; } echo "<br/>$page/$num_pages<br/>"; if($num_pages>2) { $rets = "<form action=\"usergallery.php\" method=\"get\"><p align=\"center\">"; $rets .= "<input name=\"page\" style=\"-wap-input-format: '*N'\" size=\"3\"/>"; $rets .= "<input type=\"hidden\" name=\"sid\" value=\"$sid\"/>"; $rets .= "<input type=\"hidden\" name=\"action\" value=\"$action\"/>"; $rets .= "<input type=\"hidden\" name=\"view\" value=\"$view\"/>"; $rets .= "<input type=\"Submit\" value=\"Go To Page\" Name=\"Submit\"/></form>"; echo $rets; } echo "</p>"; ////// UNTILL HERE >> echo "<p align=\"center\">"; echo "<br/><br/><a href=\"usergallery.php?action=main&sid=$sid\">«Back to Gallery</a><br/>"; echo "<a href=\"index.php?action=main&sid=$sid\"><img src=\"images/home.gif\" alt=\"*\"/>"; echo "Home</a>"; echo "</p>"; echo"</body>"; exit(); i have pointed out the bits i have added and tried to work it out. i also appreciate the codings not that clean. am no coder this was given to me. but i can add bits here and there to things . Its just am stuck on this . really hope u guys can help. Quote Link to comment https://forums.phpfreaks.com/topic/246583-problem-with-while-loop/ Share on other sites More sharing options...
cyberRobot Posted September 7, 2011 Share Posted September 7, 2011 The issue seems to be caused by the double-query / double-loop thing you have going on. First you have the $sql variable which is being processed twice: <?php $sql = "SELECT uid, id, imageurl FROM dave_usergallery WHERE sex='M' ORDER BY id DESC LIMIT $limit_start, $items_per_page"; //... $result = mysql_query($sql) or die("Error: " . mysql_error()); //... $items = mysql_query($sql); ?> Then you have two while loops, one to process $items and the other to process $result. The code should work fine if you just remove the second while loop. Try changing this: <?php echo "</small><br/><a href=\"$item[2]\" alt=\"$userinfo[0]\"/>Download<br/>"; while($row = mysql_fetch_array($result)){ echo "<br/><a href=\"getpics.php?file=$row[id]&sid=$sid\">Download test</a>"; echo "<br/>"; } echo "</small><br/><br/>"; ?> To this (note that I changed $row to $item): <?php echo "</small><br/><a href=\"$item[2]\" alt=\"$userinfo[0]\"/>Download<br/>"; echo "<br/><a href=\"getpics.php?file=$item[id]&sid=$sid\">Download test</a>"; echo "<br/>"; echo "</small><br/><br/>"; ?> Quote Link to comment https://forums.phpfreaks.com/topic/246583-problem-with-while-loop/#findComment-1266378 Share on other sites More sharing options...
nclemale Posted September 7, 2011 Author Share Posted September 7, 2011 firstly thanks for your informative help. posted this on 2 other forums also and just got negative comments. so thanks . and secondly i resolved the problem without even using a loop. and i also changed $row to $item . Quote Link to comment https://forums.phpfreaks.com/topic/246583-problem-with-while-loop/#findComment-1266379 Share on other sites More sharing options...
cyberRobot Posted September 7, 2011 Share Posted September 7, 2011 firstly thanks for your informative help. posted this on 2 other forums also and just got negative comments. so thanks . and secondly i resolved the problem without even using a loop. and i also changed $row to $item . No problem, I totally understand the frustration of only receiving negative comments. Glad to hear that the issue was resolved. Quote Link to comment https://forums.phpfreaks.com/topic/246583-problem-with-while-loop/#findComment-1266380 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.