SELECT only puling first row! AHH help

Discussion in 'PHP' started by bobby9101, Jul 3, 2007.

  1. #1
    Hi, in my PHP script I am using:
    
    print_r(mysql_fetch_row(mysql_query("SELECT email, name FROM newsletter")));
    print_r(mysql_fetch_row(mysql_query("SELECT COUNT(email), COUNT(name) FROM newsletter")));
    die();
    
    PHP:
    newsletter table:

    
    INSERT INTO `newsletter` VALUES (1, 'email1@email.com', 'name1');
    INSERT INTO `newsletter` VALUES (2, 'email2@email.com', 'name2');
    INSERT INTO `newsletter` VALUES (3, 'email3@email.com', 'name3');
    
    Code (markup):
    For some reason, it is only printing the first row

    results:
    
    Array ( [0] => email1@email.com [1] => name1 ) Array ( [0] => 3 [1] => 3 )
    
    Code (markup):
     
    bobby9101, Jul 3, 2007 IP
  2. nico_swd

    nico_swd Prominent Member

    Messages:
    4,153
    Likes Received:
    344
    Best Answers:
    18
    Trophy Points:
    375
    #2
    You have to loop through the result.

    
    
    $query = mysql_query("SELECT email, name FROM newsletter");
    
    while ($row = mysql_fetch_row($query))
    {
        print_r($row);
    }
    
    PHP:
     
    nico_swd, Jul 3, 2007 IP
  3. bobby9101

    bobby9101 Peon

    Messages:
    3,292
    Likes Received:
    134
    Best Answers:
    0
    Trophy Points:
    0
    #3
    then how do I use the implode function on it?
     
    bobby9101, Jul 3, 2007 IP
  4. Gangsta

    Gangsta Active Member

    Messages:
    145
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    53
    #4
    nico_swd right
    this script print first result because you pull only first result

     
    Gangsta, Jul 3, 2007 IP
  5. nico_swd

    nico_swd Prominent Member

    Messages:
    4,153
    Likes Received:
    344
    Best Answers:
    18
    Trophy Points:
    375
    #5
    
    $query = mysql_query("SELECT email, name FROM newsletter");
    $tmp = array();
    
    while ($row = mysql_fetch_row($query))
    {
        $tmp[] = $row['email'];
    }
    
    echo implode(', ', $tmp);
    
    
    PHP:
     
    nico_swd, Jul 3, 2007 IP
  6. SEV3N

    SEV3N Peon

    Messages:
    45
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #6
    You can't use that!
    
    $q = mysql_query("SELECT email, name FROM newsletter");
    while ($row = mysql_fetch_array($q))
    {
      echo 'Email is: '.$row['email'];
      echo '<br />Name is: '.$row['name'];
    }
    
    PHP:
    Like nico_swd said, you must use a loop (while or for is you'll count the results before the loop).
     
    SEV3N, Jul 3, 2007 IP