2017-01-25 1 views
-1

제품 및 가격이있는 작은 데이터베이스가 있습니다. 나는 주문이라는 내 테이블에서 열 "주문"의 합계를 계산하고 싶습니다. 이것을 화면에 인쇄하십시오. 확실하지 않은 경우 솔루션 근처에있어하지만이 작동 할 것이라고 생각하지만 그것은 몰랐어. 나는 무엇을 잘못 했는가?mysqli 데이터베이스의 합계를 계산하십시오.

<?php  
function sum() { 
    /* Connect to database */ 
    $db = new mysqli('localhost', 'admin2', 'password', 'myshop'); 
    if($db->connect_errno > 0){ 
     die('Fel vid anslutning [' . $db->connect_error . ']'); 
    } 


$results = mysqli_query("SELECT sum(orderpris) FROM orders") or die(mysqli_error()); 
     while ($rows = mysqli_fetch_array($results)) { 

} 

    ?> 

    <div> 
     Total:&nbsp;<?php echo $rows['sum(orderpris)']; ?> 
    </div> 

<?php } 
?> 

<?php 
sum(); 
?> 
+2

'sum (orderpris)'을'sum (orderpris as as sum) '으로 변경하면'$ row ['sum ']' – ArtisticPhoenix

+0

을 사용할 수 있습니다. 핵심 함수를 사용자 정의 함수로 사용해서는 안됩니다. 코어 MySQL 집계 함수; 부작용이있을 수 있습니다. –

+0

나는 합계가 핵심 작업이기 때문에 '합계'라고 불렀을 것이다. bla bla :-( – ArtisticPhoenix

답변

-1

이 시도 :

<?php 

function sum() { 
    /* Connect to database */  
    $db = new mysqli('localhost', 'admin2', 'password', 'myshop'); 
    if ($db->connect_errno > 0) { 
     die('Fel vid anslutning [' . $db->connect_error . ']'); 
    } 
    $results = mysqli_query($db, "SELECT sum(orderpris) as total FROM orders") or die(mysqli_error()); 
    while ($rows = mysqli_fetch_array($results)) { 
     $iResult = 'Total:'.$rows['total']; 
    } 
    return $iResult; 
} 
echo sum(); 

1- 내가 변경 한 대신

$results = mysqli_query($db, "SELECT sum(orderpris) as total FROM orders") or die(mysqli_error()); 

:

$results = mysqli_query("SELECT sum(orderpris) FROM orders") or die(mysqli_error()); 

을 당신이 볼 수 있듯이, mysqli_query 기능은 적어도 두를 필요 매개 변수 :

-A link identifier, in your case it is $db 
    -The query string. 

2- 나는 쿼리에

- 그것은 작품을 별칭 '총'을 추가,하지만 당신은 몇 가지 기능을 가지고 있다고 가정, 함수에 데이터베이스 연결을 사용하지 않는하려고 다음을 수행해야 한 데이터베이스에 연결하면 매번 동일한 작업이 반복됩니다.

꼬 시러 다니구은 각 기능에 대한 데이터베이스 연결 및 여러되지 연결에 고유 한 방법을 만들 클래스

꼬 시러 다니구에 합계() 함수를 이동합니다.

+0

이 솔루션이 작동했습니다! 연결 및 함수를 제안한 것과 같은 클래스에 추가하십시오. 감사합니다. – Pepsi

+0

솔루션이 유용 할 경우 유용 답변으로 표시하고 나중에 누군가에게 도움이 될 수 있습니다. – rescobar

+0

그랬지만 다음과 같이 말합니다. " 의견을 보내 주셔서 감사합니다! 명성이 15 미만인 투표자는 기록되지만 공개적으로 게시 된 점수는 변경하지 마십시오 " – Pepsi

관련 문제