Re: irrational behavior
| From: | Nathan Rixham | Date: | Tue, 12 May 2009 15:24:19 +0000 |
| Subject: | Re: irrational behavior | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-292496@lists.php.net to get a copy of this message | ||
PJ wrote:
Could somebody please explain this? When the line - sort($category) is commented out, the output returns Notice: Undefined offset: in the line "36" for all the repeats (29 in this case) The code below: <? $SQL = "SELECT namewhat your doing is: $category[$row['name']] which sets $category['some name'] an associative array. now when you do sort($category); you're sorting all results and assigning them to numerical indexes.. so now $category contains: $category[0] $category[1] $category[2] ... which is what you need seeing as you are cycling them as a numerical array. so sort is turning your associative array in to the needed indexed array. if you remove sort($category) and then change this line: $category[$row['name']] = $row; to $category[] = $row; you'll find it works without error. regards,FROM categories ORDER BY category_id ";$category = array(); if ( ( $results = mysql_query($SQL, $db) ) !== false ) {while ( $row = mysql_fetch_assoc($results) ) { $category[$row['name']] = $row; }//sort($category); $count = mysql_num_rows($results); $lastIndex = ceil($count/2 -1); //echo $lastIndex; $ii = 0; while ($ii <= $lastIndex) {$cat = $category[$ii]['name']; //=======this is line 36========== $catn = preg_replace("/[^a-zA-Z0-9]/", "", $cat); echo "<a href='../categories/", $catn, ".php'>", $cat, "</a><br />"; $ii++; }$ii = $lastIndex; //echo $category[$ii]['category']; while ($ii <= $count -1) {$cat = $category[$ii]['name']; $catn = preg_replace("/[^a-zA-Z0-9]/", "", $cat); echo "<a href='../categories/", $catn, ".php'>", $cat, "</a><br>" ; $ii++; }echo "</td></tr></table>" ; } ?> The same phenomenon happens in another application using the identical code. I don't want to sort the category; that has been taken care of in the query. It just doesn't make sense that sorting would affect the count. :-(