dfowler Posted January 24, 2008 Share Posted January 24, 2008 Hey guys, I have a member list that an admin will be able to edit member's information. My problem is broken down into two questions, first here is the code: <?php $Page = 'manage-customers'; include 'header.php'; if (!($limit)){ $limit = 10; } if (!($page)){ $page = 0; } $numresults = mysql_query("select * from users"); $numrows = mysql_num_rows($numresults); /* not needed... if ($numrows == 0){ echo("No results found"); exit(); } */ $pages = intval($numrows/$limit); if ($numrows % $limit) { $pages++; } $current = ($page/$limit) + 1; if (($pages < 1) || ($pages == 0)) { $total = 1; } else { $total = $pages; } $first = $page + 1; if (!((($page + $limit) / $limit) >= $pages) && $pages != 1) { $last = $page + $limit; } else { $last = $numrows; } $resource = "select * from users order by name ASC LIMIT $page, $limit"; $customers = array(); $result = mysql_query($resource); while (($row = mysql_fetch_assoc($result)) !== false) { $customers[] = $row; } $counter=1; ?> <div id="app-page-title"> Manage Registered Customers </div> <div> <form action="user/user2.php" method="post" id="customer-search-form"> <label for="customer">Customer Name</label> <input type="text" name="customer" class="customer-name-field" /> <input type="submit" name="submit" value="Search" class="search-submit" /> </form> </div> <br /><br /> <div style="padding-left:10px;"> <?php foreach($customers as $c) { echo $counter.". ".$c['name']." - ".$c['email']." - ".$c['phone']."<br />"; $counter++; } ?> <p align="center"> <?php if ($page != 0) { $back_page = $page - $limit; echo("<a href=\"$PHP_SELF?query=$query&page=$back_page&limit=$limit\">back</a> \n"); } for ($i=1; $i <= $pages; $i++) { $ppage = $limit*($i - 1); if ($ppage == $page){ echo("<b>$i</b>\n"); } else { echo("<a href=\"$PHP_SELF?query=$query&page=$ppage&limit=$limit\">$i</a> \n");} } if (!((($page+$limit) / $limit) >= $pages) && $pages != 1) { $next_page = $page + $limit; echo(" <a href=\"$PHP_SELF?query=$query&page=$next_page&limit=$limit\">next</a>"); } ?> </p> </div> <div class="clear"></div> <?php include '/home/debisres/debisrestaurant.com/html/redsatin/meal_ticket/includes/app-footer.php'; ?> Question 1 - I want to have the alphabet displayed at the top and when the admin clicks on B it shows the names that start with B. Can this be done without creating a whole other page? Question 2 - I want each name to have an edit link after them that takes them to a page that will allow the admin to edit their information. How do I send the information from that specific user to the next page since I am dynamically populating the list? Thanks for any help! Quote Link to comment https://forums.phpfreaks.com/topic/87614-solved-member-list-edit/ Share on other sites More sharing options...
PHP Monkeh Posted January 24, 2008 Share Posted January 24, 2008 Ok, I'll answer question 2 as that's the easiest. When you're making the link, just include the users unique ID in the URL (so you can retrieve it via a _GET), example http://yoursite.com/edit.php?id=5, then you can retrieve the users information on the edit page based on their unique id (5 in this case). As for question 1, if you're wanting to display the list by the first letter, you could just do the same as above to be get which letter it would be, so retrieve it via $_GET. Then in your sql query, do something like this: <?php $letter = $_GET['letter']; $query = "SELECT * FROM users WHERE username LIKE '".$letter."%'"; ?> There's a nicer way to do it via regex, but I think that's quite a simply way Quote Link to comment https://forums.phpfreaks.com/topic/87614-solved-member-list-edit/#findComment-448127 Share on other sites More sharing options...
dfowler Posted January 24, 2008 Author Share Posted January 24, 2008 Ok, I'll answer question 2 as that's the easiest. When you're making the link, just include the users unique ID in the URL (so you can retrieve it via a _GET), example http://yoursite.com/edit.php?id=5, then you can retrieve the users information on the edit page based on their unique id (5 in this case). As for question 1, if you're wanting to display the list by the first letter, you could just do the same as above to be get which letter it would be, so retrieve it via $_GET. Then in your sql query, do something like this: <?php $letter = $_GET['letter']; $query = "SELECT * FROM users WHERE username LIKE '".$letter."%'"; ?> There's a nicer way to do it via regex, but I think that's quite a simply way That worked great with the edit feature! Here is my concern with the second part, won't that pull all names with that letter in them? I want it to be restricted to only names starting with the letter. Quote Link to comment https://forums.phpfreaks.com/topic/87614-solved-member-list-edit/#findComment-448166 Share on other sites More sharing options...
PHP Monkeh Posted January 24, 2008 Share Posted January 24, 2008 Nope it won't. The % sign is after the letter, so it'll only match names where it is that letter at the start. Like I said you could use regex, which would look something like: <?php $query = "SELECT * FROM users WHERE username REGEXP '^".$letter."'"; ?> I'm not great with regex but I think that's right, the ^ indicates starts with. Quote Link to comment https://forums.phpfreaks.com/topic/87614-solved-member-list-edit/#findComment-448170 Share on other sites More sharing options...
dfowler Posted January 24, 2008 Author Share Posted January 24, 2008 Oops, I didn't notice the % sign at all. That is great! Thanks for your help, that was way too simple and I feel pretty dumb now. Quote Link to comment https://forums.phpfreaks.com/topic/87614-solved-member-list-edit/#findComment-448182 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.