Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите разобраться.....
 
 автор: kaya   (23.03.2010 в 12:11)   письмо автору
 
 


require (DIR_WS_CLASSES.'libchart/libchart.php');


$chart= new VerticalBarChart(500,250);
$dataset=new XYDataSet();
foreach($temp as $customers_country=> $array){
    echo "$customers_country has as ID $array[countries_id] and has $array[num_orders] orders";

}
$dataset->addpoint(new point("$customers_country","$array[num_orders]"));



Даёт следующую ошибку:
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\OTE\backoffice_admin\stats_countries_reports.php on line 41

Что не правильно???

  Ответить  
 
 автор: .....   (23.03.2010 в 12:42)
 
   для: kaya   (23.03.2010 в 12:11)
 

В переменной $temp не массив, если это о foreach( $temp
Смотрите где как и что оказывается в переменной $temp , или в предшествующих 40а строках или во файлах включённых.

  Ответить  
 
 автор: kaya   (23.03.2010 в 12:59)   письмо автору
 
   для: .....   (23.03.2010 в 12:42)
 

Но $temp у меня да таки массив,

$countries="SELECT ord.customers_country, cn.countries_id";
$from=" from ".TABLE_ORDERS. " ord, ".TABLE_COUNTRIES. " cn ";
$where="WHERE ord.date_purchased BETWEEN '".guion($_POST['fromdate'])."' AND '".guion($_POST['todate'])."' AND ord.customers_country=cn.countries_name";

 if(isset($_POST['fromdate'])){
$query=Tep_db_query($countries.$from.$where);
           while ($country =Tep_db_fetch_array ($query)){
               if(isset($temp[$country['customers_country']])){
                   $temp[$country['customers_country']]['num_orders']++;
               }else{
                   $temp[$country['customers_country']]=array('countries_id'=>$country['countries_id'],
                                             'num_orders'=>1);
               }
        }

 }

  Ответить  
 
 автор: GeorgeIV   (23.03.2010 в 13:11)   письмо автору
 
   для: kaya   (23.03.2010 в 12:59)
 

$_POST['fromdate'] существует?

  Ответить  
 
 автор: kaya   (23.03.2010 в 13:14)   письмо автору
 
   для: GeorgeIV   (23.03.2010 в 13:11)
 

Nu da,vso rabotaet,tolko c foreach vot takaya problema:( Pryamo ne znau chto delat?:(

  Ответить  
 
 автор: kaya   (23.03.2010 в 14:05)   письмо автору
 
   для: kaya   (23.03.2010 в 13:14)
 

Ya razobralas,sbasibo za pomosh:):):)

  Ответить  
 
 автор: ....   (23.03.2010 в 13:13)
 
   для: kaya   (23.03.2010 в 12:59)
 

Значить не выполняется ни разу цикл
>while ($country =Tep_db_fetch_array ($query)){
, в теле которого должно заполняться значениями

распечатайте сам получающайся sql-запрос и попробуйте выполнить в phpmyadmin например

  Ответить  
 
 автор: Trianon   (23.03.2010 в 13:22)   письмо автору
 
   для: kaya   (23.03.2010 в 12:59)
 

В $temp у Вас ни разу гарантированно не массив.
Массив там оказался бы , если б первой строкой было написано
$temp = array();

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования