PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Ismail
Отправлено: 29 Октября, 2012 - 18:11:21
Новичок
Покинул форум
Сообщений всего: 46
Дата рег-ции: Сент. 2012
Помог: 0 раз(а)
Здравствуйте, есть такой скрипт:
PHP:
скопировать код в буфер обмена
<?
mysql_select_db(" база",$db );
$result_spisok = mysql_query(" SELECT name FROM ps_product_lang WHERE id_lang= '2' ORDER BY id_product LIMIT 15 ",$db );
$result_spisok1 = mysql_query(" SELECT description_short FROM ps_product_lang ORDER BY id_product LIMIT 15 ",$db );
$row1 = mysql_fetch_array($result_spisok );
$row2 = mysql_fetch_array($result_spisok1 );
header('Content-Type: text/xml');
print '<?xml version=" 1.0 "?> ' . "\n";
print "<CATALOG>\n";
$shows = array_fill(0, 15, array('NAME' => $row1['name'],'DESCRIPTION' => $row2['description_short']));
foreach ($shows as $show) {
print " <PRODUCT>\n";
foreach($show as $tag => $data) {
print " <$tag>" . htmlspecialchars($data) . "</$tag>\n";
}
print " </PRODUCT>\n";
}
print "</CATALOG>\n";
?>
По задумке, после запроса в базу, должны выдаваться значения последних 15 значений из соответствующих полей в виде XML. У меня выдается 15 одинаковых значений. Я так понял, нужно как то запихать в цикл строку:
Подскажите, как правильно сделать? Новичок в этом совсем.
ingram
Отправлено: 29 Октября, 2012 - 19:09:46
Гость
Покинул форум
Сообщений всего: 65
Дата рег-ции: Июнь 2010
Помог: 3 раз(а)
Какую то фигню написал
приверно так надо сделать:
PHP:
скопировать код в буфер обмена
<?PHP
mysql_select_db(" база",$db );
$result_spisok = mysql_query(" SELECT name FROM ps_product_lang WHERE id_lang= '2' ORDER BY id_product LIMIT 15 ",$db );
$result_spisok1 = mysql_query(" SELECT description_short FROM ps_product_lang ORDER BY id_product LIMIT 15 ",$db );
print '<?xml version=" 1.0 "?> ' . "\n";
print "<CATALOG>\n";
while($row1 = mysql_fetch_assoc($result_spisok) AND $row2 = mysql_fetch_assoc($result_spisok1)) {
print " <PRODUCT>\n";
// Тут выводишь то что тебе нужно
print " </PRODUCT>\n";
}
print "</CATALOG>\n";
(Отредактировано автором: 29 Октября, 2012 - 19:10:39)
ingram
Отправлено: 29 Октября, 2012 - 19:18:25
Гость
Покинул форум
Сообщений всего: 65
Дата рег-ции: Июнь 2010
Помог: 3 раз(а)
Кусочек отсюда
http://www.php.su/functions/?header
Цитата: Помните, что header() обязана вызываться до отправки любого вывода: нормальными ли тэгами HTML, пустыми строками в файле или из PHP. Очень частой ошибкой является чтение кода функциями include() или require(), или другой функцией доступа к файлу, и наличие пробелов или пустых строк, которые выводятся до вызова header(). Та же проблема возникает при использовании едингого PHP/HTML-файла.
While тут не при чем, вы где то делаете вывод до
header()
Ismail
Отправлено: 29 Октября, 2012 - 19:21:27
Новичок
Покинул форум
Сообщений всего: 46
Дата рег-ции: Сент. 2012
Помог: 0 раз(а)
... но где?
PHP:
скопировать код в буфер обмена
<?
// Читаем базу
mysql_select_db(" база",$db );
$result_spisok = mysql_query(" SELECT name, description_short FROM ps_product_lang WHERE id_lang= '6' ORDER BY id_product",$db );
$result_spisok1 = mysql_query(" SELECT quantity, price FROM ps_product ORDER BY id_product",$db );
header('Content-Type: text/xml');
echo " <? xml version= \"1.0\" encoding=\" utf-8\" ?>\n <CATALOG>\n " ;
echo "<PRODUCT>\n " ;
echo "<NAME>" . $row1 [ 'name' ] . "</NAME>\n " ;
echo "<DESCRIPTION>" . $row1 [ 'description_short' ] . "</DESCRIPTION>\n " ;
echo "<PRICE>" . $row2 [ 'quantity' ] . "</PRICE>\n " ;
echo "<QUANTITY>" . $row2 [ 'price' ] . "</QUANTITY>\n " ;
echo "</PRODUCT>\n " ;
}
echo "</CATALOG>\n " ;
?>
ingram
Отправлено: 29 Октября, 2012 - 19:30:23
Гость
Покинул форум
Сообщений всего: 65
Дата рег-ции: Июнь 2010
Помог: 3 раз(а)
Ты этот файл напрямую запускаешь? Или подключаешь куда то?
Вот таким макаром у меня хедер отрабатывает:
PHP:
скопировать код в буфер обмена
<?PHP
// Читаем базу
//$db = mysql_connect("localhost","имя","пароль");
//mysql_select_db("база",$db);
//$result_spisok = mysql_query("SELECT name,description_short FROM ps_product_lang WHERE id_lang='6' ORDER BY id_product",$db);
//$result_spisok1 = mysql_query("SELECT quantity,price FROM ps_product ORDER BY id_product",$db);
header ( 'Content-Type: text/xml' ) ; echo "<?xml version=\" 1.0\" encoding=\" utf-8\" ?>\n <CATALOG>\n " ;
/*while ($row1 = mysql_fetch_array($result_spisok) and ($row2 = mysql_fetch_array($result_spisok1))) {
echo "<PRODUCT>\n";
echo "<NAME>" . $row1['name'] . "</NAME>\n";
echo "<DESCRIPTION>" . $row1['description_short'] . "</DESCRIPTION>\n";
echo "<PRICE>" . $row2['quantity'] . "</PRICE>\n";
echo "<QUANTITY>" . $row2['price'] . "</QUANTITY>\n";
echo "</PRODUCT>\n";
}*/
echo "</CATALOG>\n " ;
?>
(Добавление)
И еще, перед открытием тега "<?php" не должно быть ни пробелов, ни чего либо еще.
Ismail
Отправлено: 29 Октября, 2012 - 19:58:00
Новичок
Покинул форум
Сообщений всего: 46
Дата рег-ции: Сент. 2012
Помог: 0 раз(а)
Сделал. В исходном коде страницы:
CODE (
htmlphp ):
скопировать код в буфер обмена
<? xml version= "1.0" encoding= "utf-8" ?>
< CATALOG>
< PRODUCT>
< NAME> iPod Nano</ NAME>
< DESCRIPTION>< p> New design. New features. Now in 8GB and 16GB. iPod nano rocks like never before.</ p></ DESCRIPTION>
</ PRODUCT>
< PRODUCT>
< NAME> iPod shuffle</ NAME>
< DESCRIPTION>< p> iPod shuffle, the world
А на самой странице выводит:
В общем, проблема была при выдергивании значений. Спасибо )Прикреплено изображение (Нажмите для увеличения) (Отредактировано автором: 29 Октября, 2012 - 20:23:10)
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB