Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > Общие вопросы Web
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2014, 16:28   #1
star007
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 38
Вопрос Вставка php-кода в xml.

Всем доброго времени суток! Такая проблема: пытаюсь подгружать при из БД в флэш-галерию изображения по средствам mysql и php; ссылки на изображения размещаются в xml-файле к которому обращается галерея.
есть код:
Код:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<images>
<?
    include ('db_fns.php');
    $products = get_products();
    foreach($products as $item){
?>
    <pic>
        <image>gallery/<? $item['image'] ?></image>
        <thumbnail>gallery/<? $item['s_image'] ?></thumbnail>
        <caption>1</caption>
    </pic>
   <?
    }
?>
</images>
но он не работает(. Вопрос: как заставить все работать, а именно подгружать картинки в галерею с бд по средствам php?
star007 вне форума Ответить с цитированием
Старый 10.12.2014, 17:02   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

PHP-код, в общем случае, работает в .php файлах – в .xml не работает.
При помощи PHP можно создать и записать валидный XML-файл.
Andkorol вне форума Ответить с цитированием
Старый 10.12.2014, 17:23   #3
star007
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 38
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
PHP-код, в общем случае, работает в .php файлах – в .xml не работает.
При помощи PHP можно создать и записать валидный XML-файл.
а по средствам какой/их функций/и можно провернуть сей финт? и можно ли пример?
star007 вне форума Ответить с цитированием
Старый 10.12.2014, 17:48   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Read and write XML with PHP
Andkorol вне форума Ответить с цитированием
Старый 10.12.2014, 17:57   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Можно сконфигурировать Апач соответствующим образом, чтобы .xml открывался как php. Но для этого надо иметь возможность править конфиг. Да и короткие теги не советую использовать (<?), т.к. они тоже могут быть отключены в конфиге.
Arigato вне форума Ответить с цитированием
Старый 17.12.2014, 14:51   #6
star007
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 38
По умолчанию

В общем посмотрел я данную ссылку и вот что у меня получилось
Код:
<?php
include('db_fns.php');
$projects = get_projects();

$doc = new DOMDocument('1.0','utf-8');
$doc->formatOutput = true; 
  $images = $doc->appendChild($doc->createElement("images"));
  
  foreach($projects as $item){
 $pic = $images->appendChild($doc->createElement("pic"));
 $image = $pic->appendChild($doc->createElement("image")); 
  $image->appendChild( 
  $doc->createTextNode('gallery/', $item['image'] ) 
  ); 
  $thumbnail = $pic->appendChild($doc->createElement("thumbnail")); 
  $thumbnail->appendChild( 
  $doc->createTextNode('gallery/', $item['s_image'] ) 
  ); 
   
 $caption = $pic->createElement($doc->createElement("caption")); 
  $caption->appendChild( 
  $doc->createTextNode( $item['id'] ) 
  );} 

echo $doc->saveXML();
$doc->save('images.xml');
 
 ?>
но почему-то выдает такой результат
Код:
<?xml version="1.0" encoding="utf-8"?>
<images/>
а в коде страницы, с которой вызываю данный код, пишет следующее

Код:
<!--error--><br />
<b>Warning</b>:  mysql_fetch_array() expects parameter 1 to be resource, boolean given in <b>S:\home\mysite\www\db_fns.php</b> on line <b>23</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script><?xml version="1.0" encoding="utf-8"?>
<images/>
в чем может юыть дело
star007 вне форума Ответить с цитированием
Старый 17.12.2014, 15:09   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от star007 Посмотреть сообщение
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in S:\home\mysite\www\db_fns.php on line 23
Ошибка в SQL-запросе к БД.
Указан файл и номер строки – выше этой строки и выполняется тот самый ошибочный запрос.
Andkorol вне форума Ответить с цитированием
Старый 17.12.2014, 15:24   #8
star007
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 38
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Ошибка в SQL-запросе к БД.
Указан файл и номер строки – выше этой строки и выполняется тот самый ошибочный запрос.
спасибо, будем смотреть)

вот тот самый код
Код:
<?php

    function db_connect()
    {
        $host = 'localhost';
        $user = 'galery_user';
        $pswd = 'admin123';
        $db = 'galery';
        
        $connection = mysql_connect($host, $user, $pswd);
        
        if(!$connection || !mysql_select_db($db, $connection))
        {
            return false;
        }
        return $connection;
    }
    
   function db_result_to_array($result)
   {
        $res_array = array();
        $count = 0;
        while($row = mysql_fetch_array($result)) // тут 23я строка
        {
            $res_array[$count] = $row;
            $count++;
        }
     return $res_array; 
   }
    
   function get_projects()
   {
        db_connect();
        $query = "SELECT * FROM projects ORDER BY id DESC";
        $result = mysql_query($query);
        $result = db_result_to_array($result);
        
   return $result;
   }
?>
я так понял, что я не правильно подключаюсь к бд?
если что то я денвер пользую

Последний раз редактировалось star007; 17.12.2014 в 16:02.
star007 вне форума Ответить с цитированием
Старый 17.12.2014, 16:05   #9
star007
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 38
По умолчанию

С ошибкой я разобрался, я немного опечатался в файле с функциями)
теперь при переходе на страницу с галереей выдает такое сообщение на страницу:
Warning: DOMDocument::createTextNode() expects exactly 1 parameter, 2 given in S:\home\mysite\www\gallereya.php on line 13

Catchable fatal error: Argument 1 passed to DOMNode::appendChild() must be an instance of DOMNode, null given in S:\home\mysite\www\gallereya.php on line 14
star007 вне форума Ответить с цитированием
Старый 17.12.2014, 16:20   #10
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от star007 Посмотреть сообщение
Warning: DOMDocument::createTextNode() expects exactly 1 parameter, 2 given in S:\home\mysite\www\gallereya.php on line 13
Достаточно внятно описана суть проблемы – указанный метод ожидает 1 параметр, а получает 2.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка посторонних симовлов при трансформации XML документа xunicorn Помощь студентам 0 18.01.2013 16:32
-=Разбор кода (С++ и Ассемблерная вставка)=- MeTeOpA Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 26.12.2010 16:46
Вставка кода в Delphi 2009 Lich Общие вопросы Delphi 1 29.12.2008 14:15
Вставка кода из файла Gribushkino PHP 9 26.02.2008 01:36