выберите строку, где слот является самым большим - PullRequest
1 голос
/ 19 января 2011

Мне нужно выбрать одну строку, где slot_left является самым большим. я пытался

for ( $i=1;$i<3;$i++) {
    $sql5 = "SELECT * from user u where (
        select max(slot_left) from company c,user u 
        where c.id=u.company_id and c.id='$name'
    )";
    $result5 = mysqli_query($link, $sql5) or die(mysqli_error($link));
    while($row=mysqli_fetch_array($result5)) {  
        // echo the id which the slot_left is the biggest      
        echo $i['slot_left'];
    }
}

но все еще не может. пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 19 января 2011

Вы должны использовать GROUP BY в своем запросе.И выполнение запроса в цикле не рекомендуется, это снизит производительность.

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

$sql5 = "select c.id, max(slot_left) from company c,user u 
        where c.id=u.company_id and c.id='$id' GROUP by c.id";

    $result5 = mysqli_query($link, $sql5) or die(mysqli_error($link));
    while($row=mysqli_fetch_array($result5)) {  
        echo $row['slot_left'];
    }
0 голосов
/ 19 января 2011
  1. SQL может быть. Вы выбираете все строки из БД.

    $ sql5 = "выберите максимум (slot_left) AS slot_left от компании c, пользователя u, где c.id = u.company_id и c.id = '$ name' GROUP by u.company_id";

  2. Переменная $ name, используемая в запросе, не установлена ​​

  3. Переменная $ i не является массивом. Массив $ row

    echo $ row ['slot_left'];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...