Здравствуйте, имеются данные в бд Код (Text): ------------------------------------------------------------------------------------------------------------------------------------ | | id | users | cn | | 1 | vova | b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53 | | 2 | vova2 | 456456 | | 3 | vova3 | b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53 | | | | -------------------------------------------------------------------------------------------------------------------------------------- хочу вытащить кол-во одинаковых значений из столбца cn и в переменную занести пытался так Код (Text): $db->query("SELECT cn, count(*) as rates FROM " . PREFIX . "_logs WHERE cn <> 'b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53' GROUP BY cn ORDER BY rates" ); echo "number:\n".$count; должен был вывести 2, но нет не до конца понял, как работает, . PREFIX . "_logs не понял что это... с работой в БД mysql опыт небольшой, пример кода в нете нашел
Код (Text): SELECT count(*) as `rates` FROM `tablename` WHERE `cn` = 'b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53';
в php точка работает как склейка строк я не понял смысла в твоём WHERE cn <> 'блаблабла'. именно он отсекает от тебя значения, которых два. ты просто скопировал что-то наудачу? убунту, это ты? )))
------------------------------------------------------------------------------------------------------------------------------------ | | id | users | cn | | 1 | vova | b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53 | | 2 | vova2 | 456456 | | 3 | vova3 | b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53 | ----------------------------------------------------------------------------------------- спасибо, а как из вышеприведенной таблицы получить кол-во юзеров (в числовом значении) с данными b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53 которые находятся в стобике cn через php в таблице теперь нет столбца rates, есть только id,user,cn
пытался так: Код (Text): $count = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `cn` = 'mas'"),0); echo $count; но у меня mysqli а не mysql, как переписать этот код для mysqli ?
Так не пойдет. Надо хоть что-то почитать. Например вот - https://www.php.net/manual/ru/mysqli.quickstart.dual-interface.php Желательно раздельно - про php часть и mysql Освойте phpMyAdmin
в базу данных данные заносить умею, считывать тоже, но с чем-то более сложным траблы, хз как, пусть будет так Код (Text): $count = mysqli_query($mysqli,"SELECT COUNT(*) FROM `users` WHERE `cn` = 'mas'"); echo $count; холодно иль горяче?
Не знаю что вам ответить. В приведенной вами таблице ячейки с 'mas' я не вижу. Попробуйте развернуть мысль - что именно вы пытаетесь подсчитать, и где оно в таблице.
ОК PHP: <pre> <?php $mysql = new mysqli('host', 'login', 'password', 'database'); $result_set = $mysql->query("SELECT count(*) as `rates` FROM `tablename` WHERE `cn` = 'b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53';"); $results = array(); while ($row = $result_set->fetch_assoc()) { $results[] = $row; } print_r ($results); ?>
просто пытаюсь подсчитать кол-во записей b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53 из столбца cn и в переменную занести для дальнейшего сравнения if (b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53==$var) --- Добавлено --- Код (Text): $result_set = $mysql->query("SELECT COUNT(*) FROM users WHERE cn = 'b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53'"); $results = array(); while ($row = $result_set->fetch_assoc()) { $results[] = $row; } print_r ($results); что-то вроде этого, но я не так что-то намудрил, не работает хелп в последний раз плиз
Код (Text): header('Content-Type: text/html; charset=utf-8'); $server = "localhost"; // имя хоста (уточняется у провайдера), если работаем на локальном сервере, то указываем localhost $username = "nameuser7"; $password = "Test"; $database = "namebd7"; $mysqli = new mysqli($server, $username, $password, $database); if ($mysqli->connect_errno) { die("<p><strong>Ошибка подключения к БД</strong></p><p><strong>Код ошибки: </strong> ". $mysqli->connect_errno ." </p><p><strong>Описание ошибки:</strong> ".$mysqli->connect_error."</p>"); } $mysqli->set_charset('utf8'); --- Добавлено --- выше код подключения
Упростите запрос - удостоверьтесь, что у скрипта есть подключение к базе. Например Код (Text): SELECT 'test' as `result` Если выведет что-то вроде Код (Text): Array ( [0] => Array ( [result] => test ) ) Значит со скриптом всё в порядке и проблема с запросом. Отладьте его в phpMyAdmin
я ваш mysql запрос изменил, без столбца rates сделал, из за этого не работает --- Добавлено --- выполнил код Код (Text): $query = $mysqli->query("SELECT * FROM users WHERE login='{$name}'"); while ( $row = mysqli_fetch_assoc($query) ) { $b= $row['b']; } echo $b; работает
Это псевдоним для вывода результата функции. Верните как было --- Добавлено --- Если результатов будет больше, чем один, то выведет только последний
Код (Text): $result_set = $mysql->query("SELECT count(*) as `rates` FROM `users` WHERE `cn` = 'b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53';"); $results = array(); while ($row = $result_set->fetch_assoc()) { $results[] = $row; } print_r ($results); не работает, rates столбец создовать нужно иили нет ? Если да, то какое значение там должно быть. Этот запрос выдает 2 как нужно, если через phpAdmin Код (Text): SELECT COUNT(*) FROM users WHERE cn = 'b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53'
мне нужно именно это Код (Text): SELECT COUNT(*) FROM users WHERE cn = 'b2bdce46f9b58fea296fe1cc09c949ad53149b8e46c9f6b6ac3007cc95a37f53' sql запрос смог собрать, но как c php быть не знаю...
Например обратить внимание на print_r ($results); Затем попробовать выполнить пример как есть. Внимательно рассмотрев выводимое, и только потом что-то в примере начинать менять, сравнивая с предыдущим --- Добавлено --- Возможно, так вам буде проще PHP: ..... $result_set = $mysql->query("SELECT 'test'"); $results = array(); while ($row = $result_set->fetch_row()) //_assoc()) { $results[] = $row; } print_r ($results); ?>
мляяя ... я сразу не заметил, вы же $mysql->query написали... а нужно $mysqli->query --- Добавлено --- результат Array ( [0] => Array ( [rates] => 2 ) ) но как занести в переменную только основной результат 2 --- Добавлено --- Спасибо, сам бы не разобрался