запрос mysql, написанный с использованием php

#php #mysql

#php #mysql

Вопрос:

  $u_id=$event_assoc['Uniqueid'];
                echo $u_id."n";
                $result1 = mysql_query("SELECT * FROM eventdetail WHERE unique_id = '$u_id'", $con1);
                while($row = mysql_fetch_array($result1))
                {
                        echo 'in eventdetail'."n";
                        $e_id= $row['event_id'];
                        $destination= $row['destination'];
                        $uniqueid= $row['unique_id'];
                        $call_num= $row['channelid'];
                }
                echo mysql_num_rows($result1);
                        echo $e_id."n";
                        echo $destination."n";
                        echo $call_num."n";
                        echo $uniqueid."n";

                if(mysql_num_rows($result1)>0)
                {
                echo 'calculate'."n";
                $result= mysql_query("SELECT sum(billsec)
                        FROM cdr
                        WHERE uniqueid = '$uniqueid'", $con2);
                $bil = mysql_fetch_array($result);
                $bill= (float) $bil['sum(billsec)'];

                echo $bill."n";
  

это мой код..
всякий раз, когда я пытаюсь выполнить запрос функции sum, он повторяет billsec верхней строки вместо добавления billsec всей строки

Ответ №1:

Вы выполняете where для уникального идентификатора в запросе sum. Удалите where, и он будет работать

Ответ №2:

Вы используете уникальный идентификатор в своем запросе.. И в таблице одна строка будет иметь этот идентификатор, поэтому вы получаете billsec верхней строки… Удалите предложение where во втором запросе, а затем проверьте.

Ответ №3:

$result= mysql_query(«ВЫБЕРИТЕ сумму (billsec) ИЗ cdr, ГДЕ uniqueid = ‘$uniqueid'», $ con2);

я предполагаю, что в этой области есть ошибка…посмотрите еще раз

Комментарии:

1. Я предлагаю вам отформатировать свой код как код, используя кнопку в редакторе, которая выглядит как {} .

Ответ №4:

Оператор PHP для запроса SQL SUM должен быть:-

 $result= mysql_query("SELECT sum(`billsec`), `uniqueid` FROM `cdr` GROUP BY `uniqueid` HAVING `uniqueid` = '$uniqueid'", $con2);
  

Вам нужно использовать предложение « GROUP BY » всякий раз, когда вы используете какие-либо агрегированные функции MySQL (если это необходимо). Также, если вы используете какие-либо агрегатные функции (например, « SUM «, « MAX » и т. Д.), Вы не можете использовать WHERE предложение «» в поле (в данном случае поле « uniqueid «), которое используется в GROUP BY предложении «».

Надеюсь, это поможет.