CodeIgniter Dizi Eksik Veri Sayı SQL

1 Cevap php
$query = $this->db->query("SELECT t1.numberofbets, t1.profit, t2.seven_profit, t3.28profit, user.user_id, username, password, email, balance, user.date_added, activation_code, activated FROM user LEFT JOIN (SELECT user_id, SUM(amount_won) AS profit, count(tip_id) AS numberofbets FROM tip GROUP BY user_id) as t1 ON user.user_id = t1.user_id LEFT JOIN (SELECT user_id, SUM(amount_won) AS seven_profit FROM tip WHERE date_settled > '$seven_daystime' GROUP BY user_id) as t2 ON user.user_id = t2.user_id LEFT JOIN (SELECT user_id, SUM(amount_won) AS 28profit FROM tip WHERE date_settled > '$twoeight_daystime' GROUP BY user_id) as t3 ON user.user_id = t3.user_id where activated = 1 GROUP BY user.user_id ORDER BY user.date_added DESC");

return $query->result_array();

Sorgu phpMyAdmin içinde çalışan çalışıyor ve (resimde ekli) tam sonuç verir. Ancak, CodeIgniter'daki dizi baskı, bu bir alan için hiçbir değeri yoktur, bu SQL sorgusunda olduğu seven_profit, 'Ben sadece can ... sql php dizi için, bu alanda, phpMyAdmin sadece tutarsızlık koştu 26 değeri olmalıdır dizi, bu bir alan, yazdırırken neden, hiçbir şey içerir Göremiyorum? Herhangi bir fikir? Ben bunu düzeltmek için girişimde bir sayı ile başlayan alan adını değiştirdi, ama hiçbir fark.

Bu, hakkında bilmek herhangi bir yardım ya da sadece insanların benzer bir şey genelinde geliyor harika olurdu, teşekkürler karmaşık ve korkunç göründüğünü biliyorum.

Sam


edit: sorgu biraz daha biçimlendirilmiş:

$query = $this->db->query("
  SELECT
    t1.numberofbets, t1.profit, t2.seven_profit, t3.28profit,
    user.user_id, username, password, email,
    balance, user.date_added, activation_code, activated
  FROM
    user
  LEFT JOIN
    (
      SELECT
        user_id,
        SUM(amount_won) AS profit,
        count(tip_id) AS numberofbets
      FROM
        tip
      GROUP BY
        user_id
    ) as t1
  ON
    user.user_id = t1.user_id
  LEFT JOIN
    (
      SELECT
        user_id,
        SUM(amount_won) AS seven_profit
      FROM
        tip
      WHERE
        date_settled > '$seven_daystime'
      GROUP BY
        user_id
    ) as t2
  ON
    user.user_id = t2.user_id
  LEFT JOIN
    (
      SELECT
        user_id,
        SUM(amount_won) AS 28profit
      FROM
        tip
      WHERE
        date_settled > '$twoeight_daystime'
      GROUP BY
        user_id
    ) as t3
  ON
    user.user_id = t3.user_id
  WHERE
    activated = 1
  GROUP BY
    user.user_id
  ORDER BY
    user.date_added DESC
");

1 Cevap

Tamam sorun SQL sorgu PHP değişkenleri içeren oldu, bu değişkenler sadece 0 veya hataları vermeden bir şey olarak tedavi edilmelidir, bu nedenle seven_profit sütunundaki bir değeri gösterir.

Sorgu CodeIgniter'daki koştu zaman $seven_daystime değişken için doğru değeri kullanır ve veri diziye koymak bu nedenle sonuç farklıdır.

/ Yorgunluk suçluyor