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. 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/>"; ?> 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 . 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. Link to comment https://forums.phpfreaks.com/topic/246583-problem-with-while-loop/#findComment-1266380 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.