2017-03-25 9 views
0

Brauchen Sie Ihre Hilfe. php, mysqlSummenfelder aus verschiedenen Tabellen pro BenutzerID

Ich habe das folgende Projekt.

Ich habe zwei Tabellen

**table 1** 

user_id Plan 
1   5 
1   7 
2   5 
2   9 
3   7 
1   9 


**table 2** 
Plan  Price 
5   100 
7   200 
9   300 

Ich muss die Gesamtkosten der Pläne von einem Benutzer zB user_id = 2 muss 400 zahlen

Ich habe ausgewählt finden bereits den folgenden Code, aber dieser fügt der Preis aller Pläne in der Datenbank im obigen Beispiel Gesamtkosten = 600 Was mache ich falsch? :(

$totalcost = NULL; 

$sql = "select SUM(Plan.Cost) as ANSWER FROM Plan"; 
     $result = mysql_query($sql, $link) or die(mysql_error()); 
     $totalcost = mysql_fetch_row($result); 


      $sql = "select * FROM Plan"; 
     $result = mysql_query($sql, $link) or die(mysql_error()); 
     $rows = mysql_num_rows($result); 

     $Plan = array(); 

     if (is_resource($result)) { 
       while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
        $Plan[] = $row; 
       } 
     } 

Antwort

0

Sie haben die user_id in Ihrer Abfrage angeben, wie:

$user_id = 2; // or get it from $_GET, $_POST...  
$sql = "select SUM(Plan.Cost) as ANSWER 
FROM Plan, Users 
WHERE Users.Plan = Plan.Plan AND Users.user_id = $user_id"; 
0

Sie wollen wahrscheinlich LEFT JOIN in der Abfrage verwenden, so dass Sie so etwas wie dies machen:

SELECT table1.user_id, table1.plan, SUM(table2.cost) FROM table1 LEFT JOIN table2 ON table1.plan=table2.plan WHERE table1.user_id = $user_id; 

Auf diese Weise können Sie Ergebnisse in 1 Abfrage abrufen und machen Datenbank die ganze Arbeit statt Daten in Funktionen usw. durchschleifen

SQL left join tutorial

Verwandte Themen