Вопрос № 113330: Здравствуйте уважаемые эксперты. Суть проблеммы следующая я не могу передать через функцию mysql_query() в базу данных русский текст. Например при попытке сделать следующий запрос:
INSERT INTO news SET news_name='Статья1'
mysql_err...Вопрос № 113343: Как получить значение переменной, имя которой находится в другой переменной, например :
Есть переменная $a = '$arr[ttt]';
Как получить значение $arr[ttt]?
...Вопрос № 113447: Доброе время суток, возникла проблема: необходимо написать что-то вроде файлообменника, только предоставление файлов для скачки должно быть без прямого адреса к файлу. Реализовывал с помощью ЧПУ, но когда Опера открывает Transfer для скачки, путь к ...
Вопрос № 113.330
Здравствуйте уважаемые эксперты. Суть проблеммы следующая я не могу передать через функцию mysql_query() в базу данных русский текст. Например при попытке сделать следующий запрос:
INSERT INTO news SET news_name='Статья1'
mysql_error() выдает следующее:
Incorrect string value: 'xD1xF2xE0xF2xFCxFF...' for column 'name' at row 1
news_name имеет следующий тип:
news_name VARCHAR(255) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL
Заранее спасибо.
Отправлен: 10.12.2007, 23:35
Вопрос задал: XeS (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Hid
Здравствуйте, XeS!
на 100% не уверен, но попробуйте такой синтаксис:
$query_msg = "INSERT INTO news (news_name) values('Статья1')";
удачи!
Ответ отправил: Hid (статус: 2-ой класс)
Ответ отправлен: 11.12.2007, 08:03
Вопрос № 113.343
Как получить значение переменной, имя которой находится в другой переменной, например :
Есть переменная $a = '$arr[ttt]';
Как получить значение $arr[ttt]?
Отвечает: Емельянов Данил Юрьевич
Здравствуйте, Миленин Александр!
Вообще для подобной операции используется $$, т.е.
$b="test";
$a="b";
echo $$a;
//Будет выведено значение test
--------- Жить хорошо, а хорошо жить еще лучше!
Ответ отправил: Емельянов Данил Юрьевич (статус: 4-ый класс)
Ответ отправлен: 11.12.2007, 05:55 Оценка за ответ: 5 Комментарий оценки: Ваш пример из мануала я знаю и он прекрасно работает, но вот с массивами он не дружит(если $a="arr[ttt]"; , то echo $$a; вернёт пустое значение). Т.е. для моего случая не применим, но всё равно спасибо за ответ.
Отвечает: proger
Здравствуйте, Миленин Александр!
Чтобы использовать переменные переменные с массивами, вы должны разрешить про-блему неоднозначности. То есть, если вы записываете $$a[1], то разборщику необходимо знать, будете ли вы использовать $a[1] как переменную, или вы хотите использовать $$a как переменную, а затем как индекс [1] из этой переменной. Синтаксис для разрешения этой неоднозначности таков: ${$a[1]} для первого случая и ${$a}[1] - для второго.
Ответ отправил: proger (статус: 3-ий класс)
Ответ отправлен: 11.12.2007, 18:16 Оценка за ответ: 5 Комментарий оценки: Как я написал в предыдущем ответе, я это знаю и пробовал; этот вариант не подходит(в вопросе я привёл пример данного мне массива) по простой причине - у меня не известно колличество и порядок индексов массив, поэтому его нельзя задать явно, как у вас в ответе. Всё равно спасибо за ответ и участие.
Отвечает: HookEst
Здравствуйте, Миленин Александр!
Можно использовать eval:
$a = '$arr[ttt]';
echo eval("return $a;");
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 12.12.2007, 12:45 Оценка за ответ: 5 Комментарий оценки: Большое спасибо за помощь и пример, это как раз то, что я искал! Незнаю, почему у меня не получалось, когда я пробовал eval, но ваш пример работает и подходит идеально.
Вопрос № 113.447
Доброе время суток, возникла проблема: необходимо написать что-то вроде файлообменника, только предоставление файлов для скачки должно быть без прямого адреса к файлу. Реализовывал с помощью ЧПУ, но когда Опера открывает Transfer для скачки, путь к файлу прямой. Можно как то программно подставить файл для закачки и чтобы пользователь(который качает файл) не видел его физического размещения.