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

Форум PHP

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

 

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

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

тема: счётчик
 
 автор: home-studia   (22.08.2012 в 11:55)   письмо автору
1.2 Кб
 
 

Доброго всем дня.
Помогите, пожалуйста, внести необходимые изменения в файл php, чтобы при формировании списка нумеровались строки (1,2,3,4 и т.д.). Сам PHP код при помощи которого формируется список прикрепил к вопросу (скрипт не большой, место где хотелось бы реализовать нумерацию выделил).

  Ответить  
 
 автор: confirm   (22.08.2012 в 12:08)   письмо автору
 
   для: home-studia   (22.08.2012 в 11:55)
 

<?
if($page = (int)$_POST['page'])) {
   
//.....
  
$i 1
   while(
$info mysql_fetch_assoc($new)) {
      
//...
      
$i++;
   }
}

  Ответить  
 
 автор: home-studia   (22.08.2012 в 12:22)   письмо автору
 
   для: confirm   (22.08.2012 в 12:08)
 

Уважаемый, confirm.
Если вас не затруднит, пожалуйста, вставьте этот код в прикрепленный мной файл, а то видимо я как-то не так это делаю и ничего не работает :-(

P.S. небольшой дополнительный вопрос. Я хочу сделать, чтобы эта сформированная таблица экспортировалась в .doc Серфинг в интернете дал результат, я нашел, что это можно сделать так:

<?php file_put_contents'word.doc'$result );?>


Где в $result необходимо добавить информацию, которая добавится в word.doc Так вот вопрос, как загнать в $result мою сформированную табличку?

  Ответить  
 
 автор: confirm   (22.08.2012 в 12:39)   письмо автору
 
   для: 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() в таком виде как у вас, это бяка.

  Ответить  
 
 автор: home-studia   (22.08.2012 в 13:20)   письмо автору
 
   для: 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 записать сформированную мной таблицу?

  Ответить  
 
 автор: confirm   (22.08.2012 в 13:22)   письмо автору
 
   для: home-studia   (22.08.2012 в 13:20)
 

Я вас еще раз спрашиваю - что значит .doc, вам нужен именно файл формата Word, или вы просто такое расширение файлу выбрали? Вы знаете, что такое MS Word?

  Ответить  
 
 автор: home-studia   (22.08.2012 в 13:39)   письмо автору
 
   для: confirm   (22.08.2012 в 13:22)
 

Извините, если плохо излагаю свои мысли. Мне нужно сохранить полученную таблицу с форматированием, т.е. при открытии, чтобы была табличка, отступы, цвет и т.д. Будет ли это настоящий документ Word или просто текстовый файл которому приписали расширение .doc не важно. Сейчас созданный файл по примеру выше открывается в ворде (выдав пару ошибок чтения) со всем форматированием и дальше уже можно редактировать его в ворде и при необходимости распечатать. Вот что мне нужно. Если непонятно выразил свою мысль, попробую перефразировать :-)

  Ответить  
 
 автор: confirm   (22.08.2012 в 13:57)   письмо автору
 
   для: 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. И зачем у вас первая, пустая таблица?

  Ответить  
 
 автор: home-studia   (22.08.2012 в 14:28)   письмо автору
 
   для: 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>

данные строк почему то не записались

  Ответить  
 
 автор: confirm   (22.08.2012 в 14:33)   письмо автору
 
   для: home-studia   (22.08.2012 в 14:28)
 

Вместо записи в файл напишите echo $s. Выводит?

  Ответить  
 
 автор: home-studia   (22.08.2012 в 14:51)   письмо автору
 
   для: confirm   (22.08.2012 в 14:33)
 

Путем танцев с бубном вот что нашел. Заменил:
<?

на
<?php

и о чудо оно заработало, странно то что на сервере разрешено использование короткой записи, а конкретно в этом случаи не работало.

Чудо свершилось и строки записались в файл, но в графе с номерами строк везде стоит 1 :-(

  Ответить  
 
 автор: confirm   (22.08.2012 в 14:55)   письмо автору
 
   для: home-studia   (22.08.2012 в 14:51)
 

Только не "короткие записи", а "короткий тег".
Разбирайтесь со вторим "чудом", должно все быть.

  Ответить  
 
 автор: confirm   (23.08.2012 в 08:54)   письмо автору
 
   для: confirm   (22.08.2012 в 12:39)
 

Забыл поставить приведение к типу, нужно так:
<? 
$page 
= isset($_POST['page']) && (int)$_POST['page'] ? (int)$_POST['page'] : 1;

  Ответить  
 
 автор: DJ Paltus   (22.08.2012 в 12:11)   письмо автору
 
   для: home-studia   (22.08.2012 в 11:55)
 

Это слишком похоже на неудачную шутку. То есть, я хочу сказать, что если вам надо вместо $n поставить цифру, которая будет увеличиваться в цикле, то это можно сделать и самостоятельно. Также несложно сделать, чтобы $n продолжала нумерацию на текущей странице.
А вот когда люди настолько не хотят включать мышление, возникает желание спросить: а сколько вы мне заплатите, чтобы я сделал это за вас?

  Ответить  
 
 автор: home-studia   (22.08.2012 в 12:24)   письмо автору
 
   для: DJ Paltus   (22.08.2012 в 12:11)
 

для вас это просто, у меня вызывает трудности, серфинг мне не помог, потому спросил, извините если вам не понравился вопрос.

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

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