Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по printf

 PHP.SU

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


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

> Описание: при большом объёме текста-ошибка
Egorov
Отправлено: 28 Января, 2016 - 09:38:11
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




Warning: printf() [function.printf]: Too few arguments in C:\***\articles.php on line ***

Такой вопрос...при выборке данных(включает в себя текст и теги) из бд. Выдаёт такую ошибку, при определённом размере данных. Я делаю так:

CODE (htmlphp):
скопировать код в буфер обмена
  1.   printf("
  2.     <div class='blocks'><a href='/somedelete.php?table=articles&id=$id' class='deletelink round'>Удалить</a>
  3.     <center><h3 class='headers'>Статья №$i</h3></center>
  4.         <form action='/update.php' method='POST'' ENCTYPE='multipart/form-data'>
  5.         <input type='text' name='title' value='$title' class='faqanswer area' required/><br>
  6.         <input type='hidden' name='id' value='$id'/>
  7.         <textarea name='text' class='faqarea area'>$text</textarea><br><br>
  8.         //...
  9.         //...
  10.         <input type='submit' name='submit' value='Сохранить' class='faqbutton button'>
  11.         </form>
  12.         </div>
  13.         ");


Если убрать текстареа, то всё в порядке..как я уже сказал в него грузятся теги и текст. Двойных кавычек и т.д в данных нету(думал мб проблема в кавычках, но нет).

Если переделать на printf + эхом выводить только текстареа, то всё в порядке. С чем это связано?

Изначально была проблема, что записи из бд выводились не все. На printf даже не подумал вначале. Т.е где меньший объём данных, то можно выводить, как я написал.

(Отредактировано автором: 28 Января, 2016 - 09:42:27)

 
 Top
Viper
Отправлено: 28 Января, 2016 - 10:45:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Вам четко написали что вы забыли про аргументы функции.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Egorov
Отправлено: 28 Января, 2016 - 14:27:54
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




Viper пишет:
Вам четко написали что вы забыли про аргументы функции.

ок, а почему я "забываю аргументы", если данных несколько больше чем в других случаях? но при этом я ничего не меняю в самом коде?
 
 Top
Viper
Отправлено: 28 Января, 2016 - 15:14:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Egorov причем тут больше/меньше данных? То что вы не видите ошибки, отнюдь не означает что её там нет. В вашем случае это будут "Notice: Undefined variable: ..."


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Egorov
Отправлено: 28 Января, 2016 - 15:32:29
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




Viper пишет:
Egorov причем тут больше/меньше данных? То что вы не видите ошибки, отнюдь не означает что её там нет. В вашем случае это будут "Notice: Undefined variable: ..."

Переменная не предопределена ..извиняюсь, но я совсем не понимаю, где она у меня не определена. Вот целый код...получается не определена $text..т.к если её убрать, то выводит нормально. Но я же её определяю в bindcolumn?

CODE (htmlphp):
скопировать код в буфер обмена
  1.   $res = DB::get()->prepare( "SELECT `id`,`title`,`text`,`img`,`date` FROM `articles` ORDER BY `id` DESC");
  2.   $res->execute();
  3.   $res->bindColumn('id',$id);
  4.   $res->bindColumn('title',$title);
  5.   $res->bindColumn('text', $text);
  6.   $res->bindColumn('img', $image);
  7.   $res->bindColumn('date',$date);
  8.   $i=1;
  9.  
  10.   $res->fetch();
  11.  
  12.     printf("
  13.     <div class='blocks'><a href='somedelete.php?table=articles&id=$id' class='deletelink round'>Удалить</a>
  14.     <center><h3 class='headers'>Статья №$i</h3></center>
  15.         <form action='updatearticles.php' method='post' 'ENCTYPE='multipart/form-data'>
  16.         <input type='text' name='title' value='$title' class='faqanswer area' required/><br>
  17.         <input type='hidden' name='id' value='$id'/>
  18.         <textarea name='text' class='faqarea area'>$text</textarea><br><br>
  19.         <span>Можете изменить изображение, а можете оставить.</span><br><br><span>   <a href='../art_images/$image' target='_blank'>Просмотреть</a></span><br><br>
  20.         <input type='file' class='file-upload' name='img'/>
  21.         <input type='submit' name='submit' value='Сохранить' class='faqbutton button'>
  22.         </form>
  23.         </div>
  24.         ");
  25. $i++;


while не скопировал, но не суть..

(Отредактировано автором: 28 Января, 2016 - 15:33:46)

 
 Top
Viper
Отправлено: 28 Января, 2016 - 23:03:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Egorov пишет:
но я совсем не понимаю, где она у меня не определена
http://php.net/manual/ru/function.printf.php ВНЕЗАПНО


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Panoptik
Отправлено: 29 Января, 2016 - 01:15:25
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




значит так. идем в мануал и читаем внимательно описание функций и операторов
print
echo
printf \ sprintf и тд
семейство функций printf предназначено для подстановки переменных с определенными типами в строки по плейсхолдеру

пример выведет фразу "Привет, друг"

вместо слова друг может быть любая переменная и ее содержимое будет подставлено на место волшебного %s
этих плейсхолдеров может быть несколько, и для каждого плейсхолдера обязательно должен указываться аргумент, если в шаблоне (первый аргумент) будет плейсхолдеров больше чем вы зададите во втором и следующих аргументах, то вы получите ошибку описанную вами в первом посте

пример
PHP:
скопировать код в буфер обмена
  1. printf('Привет, %s. Я вчера видел %s, в городе %s', 'друг', 'Васю', 'баре');


ваша проблема заключается в том что вы в строку шаблона подставляете переменные и понятия не имеете какой паттерн генерируется из-за вхождений переменных.
предположительно в переменной $text имеются спец последовательности %s %d %f, поэтому функция ищет для них аргументы, которые вы не передаете

вывод: в вашем случае на лицо непонимание зачем нужна эта функция и неправильное ее использование.

решение: используйте echo или print

дополнительно: учимся дебажить и читаем [url]phpfaq.ru/debug[/url] [url]phpfaq.ru/na_tanke[/url]


-----
Just do it
 
 Top
Egorov
Отправлено: 29 Января, 2016 - 12:09:50
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2016  


Помог: 0 раз(а)




Спасибо за ответы, я про placeholder'ы знал, но думал, что так тоже можно..а про принт просто и вовсе не знал) еще раз спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB