Вадене на потребители от базата

rutera24

Registered
Здравейте мъча се но не намирам отговора.Имам следната база:
[sql]CREATE TABLE IF NOT EXISTS `random` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;[/sql]

и искам когато запиша няколко потребителя с различно име да ми казва кое име колко записа е направил.

ето един код:
PHP:
<?php 
include 'conf.php';
$result = mysql_query("SELECT COUNT(*) FROM random"); 
$row = mysql_fetch_array($result, MYSQL_NUM); 
//echo $row['user']; 
// or ... 
echo mysql_result($result, 0);
?>
но както виждате този код ми вади целия брой потребители.
Благодаря :)
 
exec каза:
[sql]SELECT `user`, COUNT(*) as `total` FROM `random` GROUP BY `user`[/sql]

PHP:
<?php 
include 'conf.php';
$result = mysql_query("SELECT `user`, COUNT(*) as `total` FROM `random` GROUP BY `user`"); 
$row = mysql_fetch_array($result, MYSQL_NUM); 
//echo $row['user']; 
// or ... 
echo mysql_result($result, 0);
?>

Интересното е е сега ми вади някакви произволни !!

adsad
gtag
rutera
ico
ivan
sto
asdfg

вади ми или последния запис но като добавя нов си избира някой и го вади :shock:

Мен идеатя ми е да има записани потребители няколко и със сесия да си избирам потребителя и съответно идва този код тук да ми изкарва колко записа има при което ако има > 20 да изпълни дадено действие.
 
Аз не мога да разбера кое му е сложното:

[sql]
mysql> CREATE TABLE IF NOT EXISTS `random` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `user` varchar(255) NOT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
Query OK, 0 rows affected (0.12 sec)

mysql> insert into `random` values
-> (NULL, 'Peter'),
-> (NULL, 'Todor'),
-> (NULL, 'Maria'),
-> (NULL, 'Peter'),
-> (NULL, 'Ivan'),
-> (NULL, 'Maria');
Query OK, 6 rows affected (0.00 sec)
Records: 6 Duplicates: 0 Warnings: 0

mysql> select * from `random`;
+----+-------+
| id | user |
+----+-------+
| 5 | Peter |
| 6 | Todor |
| 7 | Maria |
| 8 | Peter |
| 9 | Ivan |
| 10 | Maria |
+----+-------+
6 rows in set (0.00 sec)

mysql> select `user`, count(*) as `total` from `random` group by user;
+-------+-------+
| user | total |
+-------+-------+
| Ivan | 1 |
| Maria | 2 |
| Peter | 2 |
| Todor | 1 |
+-------+-------+
4 rows in set (0.00 sec)

[/sql]
 
Ако искаш да изкараш само тези, които са с над 20 записа:

[sql]select `user`, count(*) as `total` from `random` group by user having total >= 20;[/sql]
 
Ти май не ме разбра.
имам база

id | user
1 Ivan
2 Ivan
3 Maria
4 Maria
5 Maria
6 Gergan

идеята ми е базата да ми изкара колко записа има в таблицата "Иван" в случая са 2 и толко да ми изкара.Благодаря

Дано сега съм бил ясен.
 
[sql]select count(*) from `random` where `user` = 'Ivan'[/sql]

Нямаш база, имаш таблица в базата от данни. Заявката е почти същата, но трябва да използваш WHERE клаузата за да търсиш по определена колона и стойност. Опитвай се някой като ти дава код, да разбереш как работи, тогава ще знаеш и как да правиш дребни промени по кода който ти дават.

Успех!
 
exec каза:
[sql]select count(*) from `random` where `user` = 'Ivan'[/sql]

Нямаш база, имаш таблица в базата от данни. Заявката е почти същата, но трябва да използваш WHERE клаузата за да търсиш по определена колона и стойност. Опитвай се някой като ти дава код, да разбереш как работи, тогава ще знаеш и как да правиш дребни промени по кода който ти дават.

Успех!



Благодаря ще седна утре на свежа глава да го помисля че не съм спал 21ч.

exec Благодаря ти и на всички.
 

Back
Горе