Ben bazı verileri almak için PHP kodu bir parça eklediğiniz bir SQL sorgusu ile sorun yaşıyorum. Sorgu kendisi SQL içinde mükemmel çalışıyor, ama benim PHP komut dosyası içinde bunu kullanırken "Sorgu Hata" sonra tüm SQL deyimi okur diyor. Ben kopyalayabilir ve doğrudan MySQL içine hata mesajı SQL deyimini yapıştırın eğer hiçbir hata ile çalışır.
Benim araştırma ben bir yerde bir kesme işareti eksik, bu yüzden PHP hükümler kafa karıştırıcı olabilir, ama inanıyorum onları nerede eklemek bilmek yeterince deneyimli değilim.
Sorgu daha önce PHP komut dosyası belirtilen bir değişken denir $ kull kullanıyor.
$sql= <<<END
SELECT sum(final_price)
FROM (
SELECT Table_A.rated_user_id, Table_B.seller, Table_B.final_price
FROM Table_A
INNER JOIN Table_B ON Table_A.id=Table_B.id
) AS total_bought
WHERE seller != $userid
AND rated_user_id = $userid
UNION ALL
SELECT sum(final_price)
FROM (
SELECT Table_A.rated_user_id, Table_C.seller, Table_C.final_price
FROM Table_A
INNER JOIN Table_C ON Table_A.id=Table_C.id
) AS total_bought
WHERE seller != $userid
AND rated_user_id = $userid
END;
Bu bölümden sonra komut dosyası daha sonra çıkışını tanımlamak ve her zamanki gibi gerekli parçaları yankı devam ediyor. Ben başka bir yerde çalışır gibi kod son bölümü ile mutluyum, ama ben yaşıyorum sorun yukarıdaki bölümünde görünüyor.
Herkes hata nokta olabilir?
Edited to add the following additional information:
Tüm alanların hiçbiri yazı, sayısal değerlerdir. Ben '$ kimliği' koyarak denedim ama bu sadece hata görüntülemek yapar 'hata sonucunda bu değerin etrafında. Sorun aynı kalır. Ekleme parenthasis da yardım etmedi. Benim soru göndermeden önce deneme ve erorr biraz yapmıştı.
Bu yardımcı olur, aşağıdaki gibi, kullanılan kod Bieng son parçasıdır:
$result = mysql_query($sql);
if (!$res) {
die('Error: ' . mysql_error() . ' in query ' . $sql);
}
$total_bought = 0;
while ($row = mysql_fetch_array($result)) {
$total_bought += $row[0];
}
$total_bought = number_format($total_bought, 0);
echo '<b>Your purchases: ' . $total_bought . '</b>';
echo "<b> gold</b>";