luddeb Posted October 20, 2005 Share Posted October 20, 2005 Hello, I'm working to develop a new website but have run into some problems. I'm trying to build a links database, and until now everything has worked properly. I can add links to the database and then retrive them, but when I try to retrive a special number of them, they simply don't show. Maybe some code could clear things up: class links { function show($number) { global $dbconn; $query = mysql_query("SELECT * FROM `links` WHERE `featured` = '1' ORDER BY visits DESC",$dbconn); $query2 = mysql_query("SELECT * FROM `links` WHERE `featured` = '0' ORDER BY visits DESC",$dbconn); echo '<table bgcolor="black" border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td colspan="2"><h3>Featured links</h3></td></tr>'; while ($results = mysql_fetch_array($query)) { echo '<tr><td><a href="index.php?dir=links&id=' . $results["id"] . '">' . $results["link"] . '</a></td><td rowspan="2"><p>Description: ' . $results["description"] . '</p></td></tr><tr><td colspan="2"><p>Visits: <b>' . $results["visits"] . '</b></p></td></tr>'; if (login_check($_SESSION["user"],$_SESSION["pw"]) == "admin") { echo '<tr><td colspan="2"><a href="index.php?dir=acc&dir2=links&id=' . $results["id"] . '">Update/delete</a></td></tr>'; } echo '<tr><td> </tr></td>'; } echo '</table>'; echo '<table bgcolor="black" border="0" cellspacing="0" cellpadding="0" width="100%"><tr><td colspan="2"><h3>Non-featured links</h3></td>'; if ($number == "all") { while ($results = mysql_fetch_array($query2)) { echo '<tr><td><a href="index.php?dir=links&id=' . $results["id"] . '">' . $results["link"] . '</a></td><td rowspan="2"><p>Description: ' . $results["description"] . '</p></td></tr><tr><td><p>Visits: <b>' . $results["visits"] . '</b></p></td></tr>'; if (login_check($_SESSION["user"],$_SESSION["pw"]) == "admin") { echo '<tr><td colspan="2"><a href="index.php?dir=acc&dir2=links&id=' . $results["id"] . '">Update/delete</a></td></tr>'; } echo '<tr><td> </tr></td>'; } } else { for ($i=0;$results = mysql_fetch_array($query2) && $i<$number;$i++) // <--- this query dosen't work :/ { echo '<tr><td><a href="index.php?dir=links&id=' . $results["id"] . '">' . $results["link"] . '</a></td><td rowspan="2"><p>Description: ' . $results["description"] . '</p></td></tr><tr><td><p>Visits: <b>' . $results["visits"] . '</b></p></td></tr>'; if (login_check($_SESSION["user"],$_SESSION["pw"]) == "admin") { echo '<tr><td colspan="2"><a href="index.php?dir=acc&dir2=links&id=' . $results["id"] . '">Update/delete</a></td></tr>'; } echo '<tr><td> </tr></td>'; } } echo '</table>'; } // Other functions... } And as things couldn't get more strange (to me that is): Let's say i've got 3 links in my database and $number = "5" the function will loop three times, as it retrived the data but wasn't able to print it out :/. thanks, luddeb Quote Link to comment Share on other sites More sharing options...
ryanlwh Posted October 20, 2005 Share Posted October 20, 2005 you have $results all over the place. maybe they get replaced while the loop runs. try to use different names. i'd suggest you look into using LIMIT in the mysql query Quote Link to comment Share on other sites More sharing options...
luddeb Posted October 21, 2005 Author Share Posted October 21, 2005 thanks for your support, ryanlwh, everything works fine now. I skipped the for-loop and tried to limit the query instead by using the LIMIT statement, as you suggested. thanks! Quote Link to comment 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.