RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 533
от 05.12.2006, 02:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 389, Экспертов: 48
В номере:Вопросов: 3, Ответов: 5


Вопрос № 64738: Здравствуйте! В справочнике нашел две функции "addslashes" и "mysql_escape_string". КАк я понял их используют для корректной записи в базу данных строки. Но в чём разница, и какую использовать правильно? Или какую в каких случ...
Вопрос № 64750: Скажите пожалуйста, как сделать так чтобы при чтении txt файла на странице выводилось только первая строка из этого файла, а в другом месте вторая строка из этого файла и т.д. Заранее спасибо!...
Вопрос № 64853: Здравствуйте! Объясните мне pls как считывать из mysql данные. Проблема заключается в том, что я не пойму как сделать запрос конкретной информации. Например у меня есть таблица с полями: id,login,password,status,email Как мне узнать ...

Вопрос № 64.738
Здравствуйте!
В справочнике нашел две функции "addslashes" и "mysql_escape_string". КАк я понял их используют для корректной записи в базу данных строки. Но в чём разница, и какую использовать правильно? Или какую в каких случаях нужно писать?
Отправлен: 29.11.2006, 12:50
Вопрос задал: Артём Талипов (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: HookEst
Здравствуйте, Артём Талипов!
Мое мнение такое:
addslashes - экранирует спецсимволы PHP, а mysql_escape_string - MySQL, так как эти символы совпадают и для PHP и для MySQL, то практически действие их одинаково(за скорость работы не скажу), но теоретически думаю правильнее будет, для запросов MySQL, использовать mysql_escape_string(как я обычно и делаю), кто знает какие изменения будут в следующих версия MySQL, а для обработки строк в PHP- addslashes(родные функции обычно предпочтительнее, хоть и не всегда).
Так что сейчас это только дело вкуса.
Ответ отправил: HookEst (статус: 8-ой класс)
Ответ отправлен: 01.12.2006, 14:37


Вопрос № 64.750
Скажите пожалуйста, как сделать так чтобы при чтении txt файла на странице выводилось только первая строка из этого файла, а в другом месте вторая строка из этого файла и т.д.
Заранее спасибо!
Отправлен: 29.11.2006, 13:58
Вопрос задал: ElenaG (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Барков Илья Андреевич
Здравствуйте, ElenaG!
$data=file("file.txt");
создает массив из строк.
echo $data[0]; // - первая строка
echo $data[1]; // - вторая строка
и тд
Ответ отправил: Барков Илья Андреевич (статус: 4-ый класс)
Ответ отправлен: 29.11.2006, 14:07
Оценка за ответ: 5
Комментарий оценки:
БОЛЬШОЕ спасибо.


Вопрос № 64.853
Здравствуйте!

Объясните мне pls как считывать из mysql данные. Проблема заключается в том, что я не пойму как сделать запрос конкретной информации. Например у меня есть таблица с полями:
id,login,password,status,email
Как мне узнать статус пользователя имея его логин? Мной уже задавался похожий вопрос
http://rusfaq.ru?Step=info&Action=Question&ID=64707
Хожу где-то близко, даже изредка скрипт делал вид, что работает правильно.

Мне кажется, что mysql_result самая подходящая в моём случае функция. Но вот как адаптировать к моему случаю не пойму. Подозреваю, что вся проблема в самом запросе.

$result = mysql_query("SELECT '".addslashes($_SESSION['login'])."' FROM users.login");
возвращает в этом варианте пустую строчку. Совсем запутался чо в sql спрашивать.

$status = mysql_result($result, 4);
тут вроде бы 4 смещение от столбца status как раз 4 по счёту.

P.S. извиняюсь, за повторения, но спросить просто не укого. в справочниках и статьях просто не нашёл моего случая с разбором на пальцах.
Отправлен: 30.11.2006, 00:27
Вопрос задал: Артём Талипов (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Santana
Здравствуйте, Артём Талипов!
Наверное запрос должен звучать так
$result = mysql_query("SELECT status FROM users where login='".ddslashes($_SESSION['login'])"'");
Ответ отправил: Santana (статус: 7-ой класс)
Ответ отправлен: 30.11.2006, 00:39

Отвечает: PVS
Здравствуйте, Артём Талипов!
Считаете не так:
id - 0, login - 1, password - 2, status - 3,email - 4,
а второй параметр mysql_result - это номер строки. Таким образом Вам надо писать
$status = mysql_result($result, 0,3);
а лучше
$res_row=mysql_fetch_array($result);
$status=$res_row["status"];
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 30.11.2006, 10:07
Оценка за ответ: 5
Комментарий оценки:
Спасибо за объяснение и за код, тоже работает.

Отвечает: Бородин Александр Олегович
Здравствуйте, Артём Талипов!
Текст запроса составляется просто. Код в приложении.

Приложение:

---------
Ничто не сближает людей так, как совместное преступление. Или покупка телевизора.

Ответ отправил: Бородин Александр Олегович (статус: 2-ой класс)
Ответ отправлен: 01.12.2006, 22:24


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное