PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 3
Otto Отправлено: 10 Июля, 2008 - 23:39:19 • Тема: Информер погоды • Форум: Напишите за меня, пожалуйста

Ответов: 5
Просмотров: 115
сталкивался с поставленой задачей.
На сколько я знаю , gismeteo каждые четыре часа выкладывает xml файл с погодой .
На каждый город своя xml-ка со своим url (статичным).
Часто ссылатя на неё не желательно.
Я зделал елементарно - c помошью фушкции file_get_contents()
скачиваю данные с xml.
заношу их в бд и заношу время этой операции через функцию date().
При следующем выполнение скрипта страницы с погодой достаю из бд время последнего выполнения скачивания xml контента и проверяю , если оно больше четырёх часов - функция вновь скачивает xml с погодкой и обновляет старый который лежал в базе , а если не прошло 4 часа то просто вывожу данные из базы.
Главное написать скрипт который будет считать сколько времени прошло с последней загрузки xml файла...
Otto Отправлено: 09 Июля, 2008 - 23:28:23 • Тема: Помогите разобраться, как записать массив в таблицу? • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 58
считаю что надо зделать так.
Вопервых цикл foreach ($name as $vivod) стоит не там где нужно.
К базе достаточно один раз подконектится.
Достаточно создать одну таблицу и выбрать её из базы тоже только один раз (тоесть всё это зделать ещё до цикла foreach).
Мой вариант этого скрипта - если использовать процедурный подход -
PHP:
скопировать код в буфер обмена
  1.  
  2.  <?PHP
  3.  $user = "username";
  4.  $pass = "password";
  5.  $db   = "training";
  6.  
  7.  
  8. $name[1]=1.1;
  9. $name[2]=2.1;
  10. $name[3]=3.1;
  11. $name[4]=4.1;
  12. $name[5]=5.1;
  13.  
  14. $connection = mysql_connect("localhost", $user, $pass)
  15.                  or die("Could not connect: ".mysql_error());
  16. $db = mysql_select_db ("training",$connection);
  17.  
  18.  
  19. //поле arr что знать из какого массива
  20. //чтобы можно было использовать эту таблицу не только под один массив
  21. $querry = mysql_query("CREATE TABLE `test` (
  22. `id` INT( 10 ) NOT NULL ,
  23. `arr` CHAR( 15 ) NOT NULL ,
  24. `id_in_arr` INT( 15 ) NOT NULL ,
  25. `value` FLOAT( 15 ) NOT NULL ,
  26. PRIMARY KEY ( `id` )
  27. );") or die ("could not create table 'test'");
  28.  
  29.  
  30. foreach ($name as $key => $value)
  31.         {
  32.         $result = mysql_query ("INSERT INTO test (arr,id_in_arr,value) VALUES ('name','$key','$value')") or die ('ska , laja');
  33.         }
  34.  
Otto Отправлено: 09 Июля, 2008 - 13:00:03 • Тема: постраничный вывод контента из базы mySQL • Форум: Напишите за меня, пожалуйста

Ответов: 8
Просмотров: 121
У меня есть другой вариант постраничного вывода (пой первый скрипт написанный в классах). Оцените пожалуиста и заодно выявите недоработки .

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. // ###################################     начало класса        ###################################################
  5. class pages
  6.         {
  7.                         private $art_per_page;
  8.                         private $server;
  9.                         private $username;
  10.                         private $password;
  11.                         private $db;
  12.                         private $table;
  13.                         private $what_to_select;
  14.                         //вносим наши параметры
  15.                         //$art_per_page  -  сколько заметок мы хотим вывести на одной странице
  16.                         //$server        -  указываем сервер на котором хранится БД (в нашем случае - 'localhost')
  17.                         //$username      -  имя пользователя базы данных
  18.                         //$password      -  пароль от базы данных
  19.                         //$db            -  выбираем конкретную базу данных
  20.                         //$table         -  выбираем конкретную табличку из $db
  21.                 function __construct($art_per_page,$server,$username,$password,$db,$table)
  22.                         {
  23.                                 $this->ART_PER_PAGE=$art_per_page;
  24.                                 $this->server = $server;
  25.                                 $this->username = $username;
  26.                                 $this->password = $password;
  27.                                 $this->dbase = $db;
  28.                                 $this->table = $table;
  29.                         }
  30.        
  31.                 function what_to_select()
  32.                         {
  33.                                 $this->num_args = func_num_args();
  34.                                 $this->what_to_select = func_get_args();
  35.                         }
  36.                
  37.  
  38.        
  39.                        
  40.        
  41.        
  42.                         //соиденяемся с базой данных
  43.                 private function connect_to_db()
  44.                         {
  45.                                 $this->connection = mysql_connect("$this->server","$this->username","$this->password") or die ("laja");
  46.                                 $this->db = mysql_select_db ("$this->dbase",$this->connection) or die ("toje laja");
  47.                         }
  48.        
  49.        
  50.        
  51.        
  52.                         //определяем количество заметок и количество страниц
  53.                 private function math()
  54.                         {
  55.                                 $this->result = mysql_query ("SELECT * FROM $this->table") or die ("toje toje laja");
  56.                                 $this->num_articles = mysql_num_rows($this->result);
  57.                                 $this->number_of_pages = ceil($this->num_articles/$this->ART_PER_PAGE);
  58.                         }
  59.        
  60.        
  61.        
  62.        
  63.                         //определяем текущею страницу
  64.                 private function math_pages()
  65.                         {
  66.                                 if ($_GET['page']=='')
  67.                                         {
  68.                                                 $this->curent_page = 1;
  69.                                         }
  70.                                 elseif  ($_GET['page'] > $this->number_of_pages)
  71.                                         {
  72.                                                 $this->curent_page = $this->number_of_pages;
  73.                                         }
  74.                                 elseif  (($_GET['page'] < 1)  || (!ctype_digit($_GET['page'])))
  75.                                         {
  76.                                                 $this->curent_page = 1;
  77.                                         }
  78.                                 else
  79.                                         {
  80.                                                 $this->curent_page = round($_GET['page']);
  81.                                         }
  82.                         }
  83.        
  84.        
  85.        
  86.        
  87.                         //определяем сколько заметок на данной странице будет(если последнея страница то количество заметок не будет братся из конструктора а будет счиатся по примеру : всего_заметок - всего_количество_страниц * количество_заметок_на_странице(из конструктора) - количество_заметок_на_странице(из конструктора))
  88.                         //к примеру если по 4 заметки на страницу и всего 9 заметок то количество страниц будет -3 но на последней странице будет одна заметка (9-3*4-4=1)
  89.                 private function art_in_this_page()
  90.                         {
  91.                                 $this->NUM_OF_ARTICLES_IN_THIS_PAGE = ($this->curent_page==$this->number_of_pages)? $this->num_articles-($this->number_of_pages*$this->ART_PER_PAGE - $this->ART_PER_PAGE ):$this->ART_PER_PAGE;
  92.                         }
  93.        
  94.        
  95.                         //определяем с какой заметки выводить на странице заметки (к примеру если на странице но 3 заметки , то на третьей странице надо выводить (из базы данных) наченая с седьмой заметки)
  96.                 private function art_start()
  97.                         {
  98.                                 $this->article_start = ($this->curent_page*$this->ART_PER_PAGE)-$this->ART_PER_PAGE;
  99.                         }
  100.        
  101.                
  102.                 private function query()
  103.                         {
  104.                         $this->query = $this->what_to_select['0'];
  105.                         for ($counter = 1 ; $counter < $this->num_args ; $counter++)
  106.                                 {
  107.                                 $this->query.=','.$this->what_to_select[$counter];
  108.                                 }
  109.                         $this->query = 'SELECT '.$this->query.' FROM '.$this->table.' LIMIT '.$this->article_start.','.$this->NUM_OF_ARTICLES_IN_THIS_PAGE;
  110.                         $this->result = mysql_query("$this->query");
  111.                         }
  112.  
  113.  
  114.                 //выводим всё указанные поля
  115.                 private function write_articles()
  116.                         {
  117.                                 //если неуказанно неодного поля - пишем что надо указать
  118.                                 if ($this->num_args==0)
  119.                                         {
  120.                                                 echo "you must intoduce min - one fild that you wont to extract from db";
  121.                                         }      
  122.                                 else
  123.                                         {
  124.                                                 for ($i = 1; $i <=  $this->NUM_OF_ARTICLES_IN_THIS_PAGE ; $i++)
  125.                                                         {
  126.                                                                 $this->myrow = mysql_fetch_array($this->result);
  127.                                                                 for ($counter = 0 ; $counter < $this->num_args ; $counter++)
  128.                                                                         {
  129.                                                                         $this->critery = $this->what_to_select[$counter];
  130.                                                                         echo $this->myrow[$this->critery].'<br>';
  131.                                                                         }
  132.                                                                 echo "<br><br>";
  133.                                                         }
  134.                                         }
  135.                         }
  136.                                
  137.  
  138.                
  139.        
  140.        
  141.        
  142.        
  143.                         //выводим страницы ссылками на них
  144.                 private function write_pages()
  145.                         {
  146.                         if ($this->number_of_pages != 1)
  147.                                 {
  148.                                         for ($i=1 ; $i<=$this->number_of_pages ; $i++)
  149.                                                 {
  150.                                                         if ($i != $this->curent_page)
  151.                                                                 {
  152.                                                                         echo '<a  href="/db1.php?page='.$i.'">'.$i.'</a>&nbsp;';
  153.                                                                 }
  154.                                                         else
  155.                                                                 {
  156.                                                                         echo $i."&nbsp;";
  157.                                                                 }
  158.                                                 }
  159.                                 }
  160.                         }
  161.        
  162.                         //выполняем все вышеперечисленные функции
  163.                 public function write_all()
  164.                         {
  165.                                 $this->connect_to_db();
  166.                                 $this->math();
  167.                                 $this->math_pages();
  168.                                 $this->art_in_this_page();
  169.                                 $this->art_start();
  170.                                 $this->query();
  171.                                 $this->write_articles();
  172.                                 $this->write_pages();
  173.                                
  174.                         }
  175.         }
  176. // ###################################     конец класса ###################################################    
  177.        
  178.        
  179.  
  180. // ###################################     тело скрипта ###################################################    
  181. //вводим количество заметок н одной странице
  182. //указываем сервер на котором хранится БД (в нашем случае - 'localhost')
  183. //указываем  имя пользователя базы данных
  184. //указываем  пароль от базы данных
  185. //$указывае  выбираем конкретную базу данных
  186. //указываем выбираем конкретную табличку из базы
  187. $obj = new pages('number_of _articles_per_page','host','username','password','database','table');
  188.  
  189.         //указываем какие поля мы хотим вывестиз таблицы
  190.         $obj->what_to_select('ADDR','CITY','FIO','PHONE');
  191. $obj->write_all();
  192.  
  193. ?>
  194.  
  195.  
  196.  
  197.  

Просто указываем все параметры при создание обьекта класса.
Указываем поля которые желаем вывести.
И в функции select_write_articles() просто указываем как выводить (ну там цвет , таблички , и тд. и тп.)

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB