2017-01-23 1 views
1

Ich bin ein Anfänger Programmierer versucht, "Einnahmen" von Tabelle ebaycashback in den vorhandenen Wert von "Cashback" aus Tabelle Konten hinzuzufügen.Wie UPDATE und fügen Sie oben den aktuellen Wert in PHP hinzu?

ebaycashback enter image description here

Accounts enter image description here

Daher möchte ich in Accounts 40 von ebaycashback hinzuzufügen. Problem ist, ich brauche den aktuellen Cashback-Wert von einer anderen Tabelle, also muss ich zwei Tabellen zusammenfügen. Ich bin nicht in der Lage zu erkennen, was falsch
Hier sind meine Reihe von Codes:

<?php 
header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=UTF-8"); 
error_reporting(E_ERROR); 
try{ 
    //Database connection 
    $conn = new mysqli("localhost", "xxxxxxxx", "xxxxxxxxx", "xxxxxxxx"); 

    //select earnings, campaign id and cashback 
    $result = $conn->query("SELECT ec.earnings as add, ec.campaignid, ac.cashback as total 
          FROM ebaycashback ec, Accounts ac 
          WHERE ec.campaignid = ac.campaignID 
          GROUP BY ec.campaignID"); 
//retrieves and returns the next row assigned to $row 
    while($row = $result->fetch_array()){  

//Add the new cashback into the current balance 
    $row['add'] + $row['total'] = $totalcashback; 
//Update Accounts of the new cashback value 
    $res = $conn->query("UPDATE Accounts SET cashback = '".$totalcashback."' WHERE campaignid = ".$row['campaignid']); 
//Check if $res was executed correctly, doesn't affect the whole code 
    if (!$res){ 
    $json_out = "[" . json_encode(array("result"=>0)) . "]";  
    } 
    else { 
    $json_out = "[" . json_encode(array("result"=>1)) . "]"; 
    } 

    } 
}catch(Exception $e) { 
    $json_out = json_encode(array("result"=>0)); 
    echo $json_out; 
} 
?> 
+1

Versuchen Sie nicht, JSON Strings manuell zu erstellen. Erstellen Sie ein Array oder Objekt und füllen Sie es mit dem, was Sie wollen, dann uns 'json_encode()' auf die ganze Sache! – RiggsFolly

+0

Einige sinnvolle Code-Einzug wäre eine gute Idee. Es hilft uns, den Code zu lesen und, was noch wichtiger ist, es hilft Ihnen, Ihren Code zu debuggen. ** [Werfen Sie einen Blick auf einen Kodierungsstandard] (http://www.php-fig.org/psr/psr-2/) zu Ihrem eigenen Vorteil. Sie werden möglicherweise aufgefordert, diesen Code in ein paar Wochen/Monaten zu ändern, und Sie werden mir am Ende danken. – RiggsFolly

+0

habe es, ich habe einige Kommentare –

Antwort

0

Sehr seltsam, es stellt sich heraus, der 'as ...' Teil verursacht das Problem, funktioniert, nachdem ich sie entfernt habe, änderte auch meine $ totalcashback Formel basierend auf @Oleksandr Kaleniuk Antwort. Hier ist der Satz von Codes:

try{ 
     //Database connection 
     $conn = new mysqli("localhost", "seetoh88_m06", "careep21", "seetoh88_m06"); 

    $result = $conn->query("SELECT earnings, ebaycashback.campaignid, cashback FROM 
    ebaycashback, Accounts WHERE ebaycashback.campaignid = Accounts.campaignid"); 

    while($row = $result->fetch_array()){  
//Add the new cashback into the current balance 
    $totalcashback = $row['earnings'] + $row['cashback']; 
//Update Accounts of the new cashback value 
    $res = $conn->query("UPDATE Accounts SET cashback = '".$totalcashback."' WHERE campaignid = ".$row['campaignid']); 

    } 



} 
2

Es sollte:

$totalcashback = $row['add'] + $row['total']; 

statt:

$row['add'] + $row['total'] = $totalcashback; 
+0

danke für Ihren Kommentar, aber es immer noch nicht korrekt ausgeführt .. –

+0

Haben Sie das Ergebnis der SELECT-Abfrage ausgedruckt? Sieht das Ergebnis so aus, wie Sie es erwarten? –

+0

Ich habe versucht, es ist definitiv nicht die richtige Ausgabe, es ist alles leer, wenn ich versuchte, Echo $ row ['..] –

Verwandte Themen