|
1.2 Кб |
|
| Доброго всем дня.
Помогите, пожалуйста, внести необходимые изменения в файл php, чтобы при формировании списка нумеровались строки (1,2,3,4 и т.д.). Сам PHP код при помощи которого формируется список прикрепил к вопросу (скрипт не большой, место где хотелось бы реализовать нумерацию выделил). | |
|
|
|
|
|
|
|
для: home-studia
(22.08.2012 в 11:55)
| |
<?
if($page = (int)$_POST['page'])) {
//.....
$i = 1;
while($info = mysql_fetch_assoc($new)) {
//...
$i++;
}
}
|
| |
|
|
|
|
|
|
|
для: confirm
(22.08.2012 в 12:08)
| | Уважаемый, confirm.
Если вас не затруднит, пожалуйста, вставьте этот код в прикрепленный мной файл, а то видимо я как-то не так это делаю и ничего не работает :-(
P.S. небольшой дополнительный вопрос. Я хочу сделать, чтобы эта сформированная таблица экспортировалась в .doc Серфинг в интернете дал результат, я нашел, что это можно сделать так:
<?php file_put_contents( 'word.doc', $result );?>
|
Где в $result необходимо добавить информацию, которая добавится в word.doc Так вот вопрос, как загнать в $result мою сформированную табличку? | |
|
|
|
|
|
|
|
для: home-studia
(22.08.2012 в 12:22)
| | >Я хочу сделать, чтобы эта сформированная таблица экспортировалась в .doc
В смысле просто сохранить в текстовый файл или именно формат MS Word? Если второе, то просто дав файлу такое расширение, не превратить файл в этот формат.
Что касается кода. Можно и вставить, конечно. Только пару замечаний:
Error_Reporting(E_ALL & ~E_NOTICE); - выбросить и настроить локальный сервер на выдачу всех ошибок и предупреждений, на реальном сервере они не нужны на экране, не для ваших посетителей они.
if(!preg_match("|^[\d]*$|",$_POST['page'])) puterror("Ошибка"); - во-первых такую мелочь не стоит проверять рег. выражениями, а во-вторых, чего вы боитесь? Какая тут ошибка? Если пусто или недоступно, значит первая страница. Ну что по каждой мелочи прерывать выполнение? По разумному это так (для вашего случая):
<?
$page = isset($_POST['page']) && (int)$_POST['page'] ? $_POST['page'] : 1;
| И далее использовать, без всяких вываливаний в ошибки.
А вот куда вставить $i++; Что тут непонятного? Вне цикла while объявлена переменная, которая в каждой итерации цикла увеличивается на 1.У вас указано $n, ну назовите ее $n вместо $i. Вот и будет нумерации, а после вывода строки таблицы инкремент ее.
PS. А использование mysql_fetch_array() в таком виде как у вас, это бяка. | |
|
|
|
|
|
|
|
для: confirm
(22.08.2012 в 12:39)
| | Спасибо за ваше терпение, страница отобразилась так как мне нужно :-) Не знаю все ли правильно сделал или нет, тут хочется сказать "Работает не трогай" :-)
По поводу .doc нужно создать файл .doc и записать в него сформированную таблицу.
Провел лабораторные исследования, создал файл php вот с таким кодом:
<?
$result="<table border='1'><tr><td>Проверка</td></tr></table>";
file_put_contents( 'word.doc', $result );
?>
|
В результате создался файл word.doc, а в нем записана таблица с одной строкой и одним столбиком и записью Проверка.
Вот у меня и возник вопрос, как в $result записать сформированную мной таблицу? | |
|
|
|
|
|
|
|
для: home-studia
(22.08.2012 в 13:20)
| | Я вас еще раз спрашиваю - что значит .doc, вам нужен именно файл формата Word, или вы просто такое расширение файлу выбрали? Вы знаете, что такое MS Word? | |
|
|
|
|
|
|
|
для: confirm
(22.08.2012 в 13:22)
| | Извините, если плохо излагаю свои мысли. Мне нужно сохранить полученную таблицу с форматированием, т.е. при открытии, чтобы была табличка, отступы, цвет и т.д. Будет ли это настоящий документ Word или просто текстовый файл которому приписали расширение .doc не важно. Сейчас созданный файл по примеру выше открывается в ворде (выдав пару ошибок чтения) со всем форматированием и дальше уже можно редактировать его в ворде и при необходимости распечатать. Вот что мне нужно. Если непонятно выразил свою мысль, попробую перефразировать :-) | |
|
|
|
|
|
|
|
для: home-studia
(22.08.2012 в 13:39)
| | Формат MS Word, это не просто расширение .doc, а именно формат, со своей структурой, разметкой. Так как вы его сохраняете, это не Word документ, да и нет у вас никакой разметки в нем. Но если вас такое устраивает, то записывайте в файл:
<?
$s = '<table cellpadding="0" cellspacing="0" border="0" >
<tr></tr></table><br><table><tr><td><p>№</p></td>
<td><p>Название</p></td><td><p>Цена</p></td></tr>';
$n = 1;
while($info = mysql_fetch_assoc($new)) {
$s .= "<tr $colorrow >
<td><p>".$n."</p></td>
<td><p>".$info['name']."</td>
<td><p>".$info['price']."</p></td>
</tr>";
$n++;
}
$s .= "</table>";
file_put_contents('filename.doc', $s);
}
| А чтобы именно в формате Word сохранять документы, то надо иго и формировать в этом формате.
PS. И зачем у вас первая, пустая таблица? | |
|
|
|
|
|
|
|
для: confirm
(22.08.2012 в 13:57)
| | Вставил этот код, вот что записалось в файл:
<table cellpadding="0" cellspacing="0" border="0" >
<tr></tr></table><br><table><tr><td><p>№</p></td>
<td><p>Название</p></td><td><p>Цена</p></td></tr></table>
|
данные строк почему то не записались | |
|
|
|
|
|
|
|
для: home-studia
(22.08.2012 в 14:28)
| | Вместо записи в файл напишите echo $s. Выводит? | |
|
|
|
|
|
|
|
для: confirm
(22.08.2012 в 14:33)
| | Путем танцев с бубном вот что нашел. Заменил:
на
и о чудо оно заработало, странно то что на сервере разрешено использование короткой записи, а конкретно в этом случаи не работало.
Чудо свершилось и строки записались в файл, но в графе с номерами строк везде стоит 1 :-( | |
|
|
|
|
|
|
|
для: home-studia
(22.08.2012 в 14:51)
| | Только не "короткие записи", а "короткий тег".
Разбирайтесь со вторим "чудом", должно все быть. | |
|
|
|
|
|
|
|
для: confirm
(22.08.2012 в 12:39)
| | Забыл поставить приведение к типу, нужно так:
<?
$page = isset($_POST['page']) && (int)$_POST['page'] ? (int)$_POST['page'] : 1;
|
| |
|
|
|
|
|
|
|
для: home-studia
(22.08.2012 в 11:55)
| | Это слишком похоже на неудачную шутку. То есть, я хочу сказать, что если вам надо вместо $n поставить цифру, которая будет увеличиваться в цикле, то это можно сделать и самостоятельно. Также несложно сделать, чтобы $n продолжала нумерацию на текущей странице.
А вот когда люди настолько не хотят включать мышление, возникает желание спросить: а сколько вы мне заплатите, чтобы я сделал это за вас? | |
|
|
|
|
|
|
|
для: DJ Paltus
(22.08.2012 в 12:11)
| | для вас это просто, у меня вызывает трудности, серфинг мне не помог, потому спросил, извините если вам не понравился вопрос. | |
|
|
|