Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

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

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2021, 18:29   #1
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 117
По умолчанию Если number_format ожидает .....

Здравствуйте, с такой ошибкой еще не сталкивался - Warning: number_format() expects parameter 1 to be double, string given in....

ссылается на эту строку
Код:
case 1: $b=number_format($a,$y,"."," "); break;

Весь код
Код:
function _font($a, $r=0, $f=0, $y=0)
{
if($a)	
	{
	switch ($r)
		{
		case 0: $b=number_format($a,$y,",",""); break;
		case 1: $b=number_format($a,$y,"."," "); break;
		case 2: $b=number_format($a,$y,",","."); break;
		case 3: $b=number_format($a,$y,".",","); break;
		case 4: $b=number_format($a,$y,".",""); break;
		}

	switch ($f)
		{
		case 0: $c=$b; break;
		case 1: $c="<font color=#FF0000>".$b."</font>"; break;
		case 2: $c="<font color=#660033>".$b."</font>"; break;
		case 3: $c="<font color=#009966>".$b."</font>"; break;
		case 4: $c="<font color=#0066CC>".$b."</font>"; break;
		}
	}
else $c='';
return $c;
}
Кто знает подскажите в чем может быть причина ?
ROM710 вне форума Ответить с цитированием
Старый 13.06.2021, 13:54   #2
Максим Матвийчина
 
Регистрация: 20.05.2021
Сообщений: 9
По умолчанию

Обратите внимание, что "Warning" - это не ошибка, а предупреждение.

А причина данного предупреждения в том, что при вызове функции "number_format", тип первого параметра (в данном случае переменной $a) - не число, а строка.


Решение может быть следующим:

Замените в коде строку

Код:
if($a)
на

Код:
if (is_numeric($a))

Удачи!



...--| Разработка сайтов и мобильных приложений |--...
Максим Матвийчина вне форума Ответить с цитированием
Старый 13.06.2021, 16:41   #3
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 117
По умолчанию

Спасибо Максим Матвийчина, ошибка ушла, но слово не выводит ?
Будим смотреть, что то не так, а может другие варианты есть ?
ROM710 вне форума Ответить с цитированием
Старый 13.06.2021, 18:14   #4
Максим Матвийчина
 
Регистрация: 20.05.2021
Сообщений: 9
По умолчанию

Цитата:
Сообщение от ROM710 Посмотреть сообщение
Спасибо Максим Матвийчина, ошибка ушла, но слово не выводит ?
Будим смотреть, что то не так, а может другие варианты есть ?
Поищите в Вашем коде ключевое слово "_font".
Найдёте место, где вызывается эта функция.
Разберитесь, что не так с первым параметром.
В нем должно быть числовое значение. А что у Вас?



...--| Разработка сайтов и мобильных приложений |--...

Последний раз редактировалось Максим Матвийчина; 13.06.2021 в 18:17.
Максим Матвийчина вне форума Ответить с цитированием
Старый 15.06.2021, 10:14   #5
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 117
По умолчанию

Сейчас у меня записывает и выводит только цифры, а мне нужны буквы. Код остался в первоначальном состоянии. Поменял значение "_font" на
Код:
function _font($sea, $r=0, $f=0, $a=0)
Все так же, цифры да, буквы нет ???
ROM710 вне форума Ответить с цитированием
Старый 15.06.2021, 10:49   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 3,895
По умолчанию

лучше по человечески опишите - что вы хотите от данной функции, что обозначают каждый из 4 параметров. передаваемых в нее? И что сейчас не так
ADSoft вне форума Ответить с цитированием
Старый 15.06.2021, 12:11   #7
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 117
По умолчанию

Здравствуйте, попробую. Рядом с полем цена добавил поле - с выбором валют (input type="radio")
Делал все как цену, что бы в конечном результате валюта выводилась рядом с ценой.
В результате получилось - пока в каталоге не прописываю значение хоть цифровое, хоть текстовое
Код:
$arr_field[352]['spec']='st'
записывает в Бд слова, как пропишу, все пишет только цифры. Вот пытаюсь понять где поменять значение ?
ROM710 вне форума Ответить с цитированием
Старый 15.06.2021, 12:19   #8
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 3,895
По умолчанию

нихрена понятнее не стало...
в самой бд нормально записывается?
ADSoft вне форума Ответить с цитированием
Старый 15.06.2021, 15:36   #9
ROM710
Форумчанин
 
Регистрация: 24.02.2014
Сообщений: 117
По умолчанию

Когда на всех страницах все прописано, записываются только цифры, а в БД прописано все правильно. Я проверял частями, когда прописал только в форме подачи объявлений, записывается в БД слова, когда подключаю страницы для вывода формы на экран, все меняется и БД пишет только цифры.
ROM710 вне форума Ответить с цитированием
Старый 15.06.2021, 17:00   #10
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 3,895
По умолчанию

просто какой-то поток сознания.
к каждому слову в вашем пояснении можно задать кучу вопросов
"на всех страницах", на каких всех?
"все прописано" - что прописано?, что "все"?
итд итп

1. посмотрите в саму БД, как там записаны данные? Вангую что там тип хранения данных - число, а вы пытаетесь записать туда строку
2. Если в БД все нормально - при непосредственном извлечении данных в данных присутствует ваша строка из БД?
3. Если из БД получаете все в норме, но после прохождения данных через вашу функцию какую-то - получаете не то что ожидали, имеет смысл детально разобраться - что же вы за функцию написали
ADSoft вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с проблемой в Паскале - ожидает идентификатор! Jenee Помощь студентам 1 11.04.2017 15:00
Параметризованный запрос ожидает параметр RaTeN Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 05.04.2013 22:09
Excel ожидает завершения OLE операции другим приложением. mohamed Microsoft Office Excel 8 13.04.2011 01:48
Как работает функция number_format? Nikirinka PHP 4 08.01.2011 16:50

Реклама для незарегистрированных, регистрация на форуме