Klaus Jasper
Klaus Jasper

Reputation: 89

PHP - how to select from a table one query

I got a table that contains ID, Names, message, and time, I want to select from the table only one message query from each ID, Currently I select all the messages, this is my code

$query= mysql_query("SELECT * FROM `table` ORDER BY `time`")or die(mysql_error());
while($arr = mysql_fetch_array($query)){
$num = mysql_num_rows($query);
$msg = $arr['message'];
echo '</br>';
echo $msg;
}

That Shows all messages ordered by time, Is there is a way to select only one message query from each ID?

Thanks,
Klaus

Upvotes: 0

Views: 507

Answers (2)

Manoj Yadav
Manoj Yadav

Reputation: 6612

If you want only one message you can use LIMIT like this

SELECT * FROM table ORDER BY time LIMIT 1

Or if you want only one message from some id then you can use GROUP BY

SELECT * FROM table ORDER BY time GROUP BY id

Upvotes: 3

Mostafa Berg
Mostafa Berg

Reputation: 3239

Sure, pretty straightforward

This will fetch all messages given ID:

$id = 10 //Get your id in any way you need
$query= mysql_query("SELECT `message` FROM `table` WHERE `ID` = $id")or die(mysql_error());

while($arr = mysql_fetch_array($query)){
    $num = mysql_num_rows($query);
    $msg = $arr['message'];
    echo $msg;
}

and this will fetch only the first message given ID

$id = 10 
$query= mysql_query("SELECT `message` FROM `table` WHERE `ID` = $id LIMIT 1")or die(mysql_error());

$row = mysql_fetch_array($query));
if($row){
    $msg = $row['message'];
    echo $msg;
}else{
    echo 'no messages for id '.$id;
}

Upvotes: 0

Related Questions