On Tue, Jul 14, 2009 at 3:38 PM, Miller, Terion<tmiller@xxxxxxxxxxxxxxxxxxxx> wrote: > I am trying to make a page that displays a-z like a b c d e etc as links > then when you click open one it reloads itself and shows only the query > results that go with that letter...i'm not getting it....I get a page that > says ARRAY over and over... > > What I have so far: > <?php > > if(!isset($_SESSION['RestaurantList'])) > > { > // List not grabbed yet, so run > query and store in $_SESSION > > $sql = "SELECT > DISTINCT name FROM restaurants GROUP BY name DESC"; > > $result = mysql_query($sql) or die(mysql_error()) ; > > $count = mysql_num_rows($result); > > echo $count; > > > while($row = mysql_fetch_array($result)) { > > > > $name=array($row['name'],0,1); Why are you setting the value of $name to an array? If you try to echo $name after this statement (as you are below), PHP will echo the word "Array". > > //$name = array('name'); > > echo "<a > href=\"page.php?name=" .$name. "\"> $name</a>\n"; > > } > > > } > > > > $alphabet = range('A', 'Z'); > > foreach ($alphabet as $letter) { > > echo '<a href="' . $_SERVER['PHP_SELF'] > > . '?letter=' . $letter . '">' . $letter . '</a>'; > > } > > > > > > > ?> If the list of restaurants is very long, I wouldn't store it in a session variable. It is the same for every person who visits your site, so there is little use storing separate redundant copies in session scope where it will needlessly fill up disk space and/or memory. As far as the query is concerned, you could do this: <?php $index_letter = $_GET['letter']; if (preg_match('/^[A-Za-z]$/', $index_letter)) { $sql = "SELECT DISTINCT name FROM restaurants WHERE name LIKE '$index_letter%' GROUP BY name DESC"; //.... ?> I would also consider whether you really need the keyword DISTINCT in the query. In a properly normalized table, name should probably already be distinct (and constrained by a UNIQUE index on that column). Andrew -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php