|
|
|
| Здравствуйте.
Необходимо отсортировать пользователей у которых $col_ref больше, те выше должны стоять.
Как из этого куска кода сделать такую сортировку (можно и не запросом)?
<?
$sql_rating_users = mysql_query("SELECT id, login FROM users");
$rating_users = mysql_fetch_array($sql_rating_users);
while($rating_users = mysql_fetch_array($sql_rating_users)){
$id_user = intval($rating_users['id']);
$login_user = htmlspecialchars(trim($rating_users['login']));
$col_ref = mysql_num_rows(mysql_query("SELECT * FROM users WHERE ref='$id_user'"));
echo '<p>Пользователь: '.$login_user.'<br/>
Рефералов: '.$col_ref.'</p>';
}
?>
|
| |
|
|
|
|
|
|
|
для: Almaz
(24.08.2009 в 05:22)
| |
SELECT u.id, u.login, COUNT(r.id) AS qty_ref FROM users AS u LEFT JOIN users AS r ON u.id = r.ref GROUP BY u.id ORDER BY qty_ref DESC
|
Крайней советую изучить многотабличные запросы с использованием JOIN'ов. На практике они нужны на каждом шагу. | |
|
|
|
|
|
|
|
для: Fractured
(24.08.2009 в 07:06)
| | ой.. а можете этот запрос вставить в мой код? А то я даже и не понял как его применить.
За совет спасибо, обязательно почитаю.
Только вот это мне надо срочно =( | |
|
|
|
|
|
|
|
для: Almaz
(24.08.2009 в 07:08)
| |
<?php
$q = 'SELECT u.id, u.login, COUNT(r.id) AS qty_ref FROM users AS u LEFT JOIN users AS r ON u.id = r.ref GROUP BY u.id ORDER BY qty_ref DESC';
$r = mysql_query($q);
while( $row = mysql_fetch_assoc($r) )
{
$login_h = htmlspecialchars($row['login']);
echo "<p>Пользователь {$login_h}. Рефералы: {$row['qty_ref']}</p>";
}
|
P.S. В след. раз писать не буду | |
|
|
|
|
|
|
|
для: Fractured
(24.08.2009 в 07:12)
| | Большое спасибо. | |
|
|
|