SELECT SUM PHP MySQL sorun

3 Cevap

Bu beni deli ediyor! Eğer benim PHP / MySQL kodunu bulacaksınız ama Aşağıda burada doğrudan mySQL deyimi nakleder:

   SELECT SUM( ot.value ) AS msa
     FROM orders o
LEFT JOIN orders_total ot ON ot.orders_id = o.orders_id
    WHERE ot.class = 'ot_total'
      AND UNIX_TIMESTAMP( o.date_purchased ) >=1262332800
      AND UNIX_TIMESTAMP( o.date_purchased ) <=1264924800
      AND o.sales_rep_id = '2'

Ben phpMyAdmin içinde bu deyimi çalıştırdığınızda ben "MSA" ilişkili olduğu ot.value için toplamı olsun. Benim php kodu çalıştırdığınızda bir değer dönmez, rağmen. Herkes sorun görüyor?

// works in phpMyAdmin but not displaying during PHP execution!
$monthly_sales_amount_sql = "SELECT SUM(ot.value) AS msa 
                               FROM orders o 
                          LEFT JOIN orders_total ot ON ot.orders_id = o.orders_id 
                              WHERE ot.class = 'ot_total' 
                                AND UNIX_TIMESTAMP(o.date_purchased) >= $start_timestamp 
                                AND UNIX_TIMESTAMP(o.date_purchased) <= $end_timestamp 
                                AND o.sales_rep_id = '" . $sales_rep_id . "'";                                       

$result = mysql_query($monthly_sales_amount_sql);
$row = mysql_fetch_assoc($result); 

echo "MSA: " . $row['msa'] . "<BR><BR>";

3 Cevap

AND o.sales_rep_id = '" . $sales_rep_id "'";

Eğer bir birleştirme operatörü eksik gibi bir sözdizimi hatası $sales_rep_id sonra orada var.

Bu standart hata ayıklama yoluyla gitmek gerekir.

Eğer gerçekten bu olduğunu düşünüyorum ne olduğundan emin olmak için yürütmek için çalışıyorsunuz sql dizesini görüntüler. Bunları yaparken, bu en yaygın hatadır.

Vb php, sözdizimi, bağlantıdan mysql hataları denetlemek

Bu gibi durumlar için, mysql_query komut yürütülür hemen önce SQL deyimini yazdırmak:

print($monthly_sales_amount_sql)
$result = mysql_query($monthly_sales_amount_sql);

Hatırlatma: Your query is susceptible to SQL Injection attacks.