Получить минимальное значение в PHP из базы данных MySQL? - PullRequest
0 голосов
/ 06 апреля 2011

Итак, у меня есть несколько чисел, которые принимают имя «id» в моей базе данных MySQL.Я попробовал этот код:

while($row = mysql_fetch_array($result))     
{
$id=$row['id'];
$user = $row['usrname'];
$fname = $row['fname'];
$lname = $row['lname'];
echo "<strong>User:</strong> ".$user." ".$fname." ".$lname."<br/>";
echo min($id);
} 

В последней строке я попытался отобразить минимальное значение для id, но это не сработало.Есть предложения?

ОТВЕТ: Используйте «ASC LIMIT 1»

    while($row = mysql_fetch_assoc($sql)){    
$id=$row['id'];     
$user = $row['usrname'];     
$fname = $row['fname'];     
$lname = $row['lname'];
echo "<strong>User:</strong> ".$user." ".$fname." ".$lname."<br/>";     
echo $id; 
}

Ответы [ 4 ]

6 голосов
/ 06 апреля 2011
$sql = mysql_query("SELECT * FROM users ORDER BY id ASC LIMIT 1");

while($row = mysql_fetch_assoc($sql))     
{
    $id=$row['id'];
    $user = $row['usrname'];
    $fname = $row['fname'];
    $lname = $row['lname'];

    echo "<strong>User:</strong> ".$user." ".$fname." ".$lname."<br/>";
    echo $id;
} 
2 голосов
/ 06 апреля 2011

Попробуйте это:

$sql = 'SELECT min(id) as min FROM users';
$query = mysql_query($sql);
$row = mysql_fetch_assoc($query);
$min_id = $row['min'];
0 голосов
/ 06 апреля 2011

Если вы не можете использовать MIN() в MySQL, попробуйте это ...

$smallestId = -PHP_INT_MAX;

while($row = mysql_fetch_assoc($sql)) {
   ...
   $smallestId = min($smallestId, $id);
}

Если у вас никогда не было отрицательных идентификаторов (вы не должны), вы можете просто изменить -PHP_INT_MAX на0.

0 голосов
/ 06 апреля 2011

Если вы не можете изменить порядок запросов (сортировка по именам?), Вы можете определить наименьший $ id с помощью вспомогательной переменной:

 $min = isset($min) ? min($min, $id) : $id;

И затем print $min; после цикла.

...