Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Ошибка при PHP запросе в MySql для подсчета и изменения полей?

Ошибка при PHP запросе в MySql для подсчета и изменения полей?


     29.01.2018    php, MySQL    Все вопросы » MySQL    974

вопрос
Казалось бы все элементарно, тем более уже несколько раз делал похожие запросы. Но после первой ошибки...да и потом после последующих ошибок - удивлению не было предела...
Вот запрос, ниже что необходимо с этого запроса.

$dbf=$db->query("SELECT user_id FROM `".PREFIX."_users` WHERE user_id >= '0'");
if($dbf['user_id'] > 0){
$users_oids = $db->super_query("SELECT oid COUNT(*) AS cnt FROM `".PREFIX."_audio` WHERE oid = {$dbf['user_id']} AND public = '0'");
$au_cnt = $users_oids['cnt'];
$cnttt=$db->query("UPDATE `".PREFIX."_users` SET user_audio = '".$au_cnt."' WHERE user_id = {$users_oids['oid']}"); 


или так


$dbf=$db->query("SELECT user_id FROM `".PREFIX."_users` WHERE user_id >= '0'");

$users_oids = $db->super_query("SELECT oid COUNT(*) AS cnt FROM `".PREFIX."_audio` WHERE oid = {$dbf['user_id']} AND public = '0'");
$au_cnt = $users_oids['cnt'];
$cnttt=$db->query("UPDATE `".PREFIX."_users` SET user_audio = '".$au_cnt."' WHERE user_id = {$users_oids['oid']}"); 


Т.е. суть запроса Выбираем пользователя с user_id, для того, чтобы в запросе COUNT поставить в oid, пользователя, у которого считаем количество аудио. После, этому пользователю обновляем количество аудио в users

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

Ответил: Sander


Нет запятой после oid в списке SELECT.
А вообще вот, вместо всего того ужаса:
$db->query("UPDATE ".PREFIX."_users u SET user_audio = (SELECT count(*) FROM ".PREFIX."_audio WHERE u.user_id = oid AND public = 0)"); 

2 комментария

estverum
Юзер

estverum - 29 января 2018 21:44 -

SANDER, спасибо Вам. Правда пересмотрел свой код, так и не понял где именно там надо было поставить запятую, в запросе. В этом что ли SELECT oid, COUNT ???

vitnet
PHP-developer

vitnet - 29 января 2018 22:41 -

$dbf = $db->super_query( "SELECT user_id FROM " . PREFIX . "_users WHERE user_id >= '0'" );

if( $dbf['user_id'] > 0 ) {
	$users_oids = $db->super_query( "SELECT oid, COUNT(*) AS cnt FROM " . PREFIX . "_audio WHERE oid={$dbf['user_id']} AND public='0'" );

	$cnttt = $db->query( "UPDATE " . PREFIX . "_users SET user_audio='{$users_oids['cnt']}' WHERE user_id={$users_oids['oid']}" );

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 28.03.2014 i_loves_ac_dc  MySQL
наверх