Вопрос № 49441: дополнение к вопросу 49330.
Пробывал вставить строку запроса
SELECT name FROM data WHERE name LIKE '%$search%'
выдает ошибку:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:wampwwwsearc...Вопрос № 49461: Здраствуйте Уважаемые Эксперты! Есть такая проблема как можно организовать поиск в базе данных (Access) например телефонного справочника по фамилии, и вывести его на страничку.спасибо огромное , если можно примерчик, с/у Ера...Вопрос № 49472: Уважаемые эксперты! Может вопрос из другой категории, но все
же...Вот фрагмент PHP-кода:
SELECT u.*, g.*, o.logged, o.idle FROM '.$db->prefix.'users AS u IN
Чё за u.*? И для чего в запросе точки?...Вопрос № 49529: Здравствуйте уважаемые эксперты. У меня следующий вопрос. Скачал с сайта http://de.php.net/downloads.php пакет PHP 5.1.4 zip package. Разархивировал его (d:php) и скачал также инструкцию (manual). При чтении этой инструкции я выяснил что не хватает ...Вопрос № 49544: И снова здрасте, уважаемые эксперты. Такой вопрос: есть папка на хосте под названием avatars, при
установке какого-либо популярного форума рекомендуется изменить для нее ограничения на 0777, дабы можно было грузить в нее аватары. Но это дает возможно...Вопрос № 49551: Нужно сделать экспорт данных в Excel-таблицу.
1. Есть какой-нибудь готовый компонент для этого?
2. Или как можно добавить данные в существующий файл (знаю номера колонок и строк для добавления; могу сделать шаблон)....Вопрос № 49553: Уважаемые эксперты, еще один вопрос. Что за файлы такие *tpl, каково их назначение и принцип использования? Заранее благодарю....Вопрос № 49557: Добрый день эксперты!
У меня такой вопрос: имею строку запроса для поиска в базе:
$sql="SELECT name FROM data WHERE name LIKE '%".$search."%'";
ввожу строку для поиска (на форме) - 'ГИВ', а мне выдает значен...
Вопрос № 49.441
дополнение к вопросу 49330.
Пробывал вставить строку запроса
SELECT name FROM data WHERE name LIKE '%$search%'
выдает ошибку:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:wampwwwsearch.php on line 41
отрывок программы приведен в приложении.
Я не спец в РНР, но думаю %% там лишние, поскольку отлаживал запросы в PHPmyAdmin.
Отвечает: PVS
Здравствуйте, Нода Сергей!
Для начала напишите mysql_query($conn, $sql) вместо mysql_query($sql, $conn)
% значит "любой набор символов", тоесть если вы пишете %$search%, то ищете строку, которая содержит $search, а без % - точное совпадение с $search
Ответ отправил: PVS (статус: 10-ый класс)
Ответ отправлен: 18.07.2006, 09:54 Оценка за ответ: 5 Комментарий оценки: Спасиба что объяснил, я раньше работал на Access, то там не так запросы строились
Отвечает: Madproger
Здравствуйте, Нода Сергей!
2PVS
Насчет функции mysql_query() - порядок у него абсолютно правильный
2Нода Сергей
Почему у тебя в функции $sql - тогда как запрос $qry?
Напиши так
$result=mysql_query($qry, $conn);
И если запрос правильный - то все будет ОК
Во вторых в след раз приводи получившийся запрос
например так
$qry="SELECT name FROM data WHERE name LIKE '%". $search."%'";
echo $qry."<br />";
$result=mysql_query($sql, $conn) or die(mysql_error());
И здесь выкладывай получившийся запрос и ошибку mysql
--------- И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 8-ой класс)
Ответ отправлен: 18.07.2006, 10:12 Оценка за ответ: 5 Комментарий оценки: Спасибо. Получилось. извени, не заметил что поменялась переменная, т.к. скопировал запрос с прошлого вопроса.
Отвечает: Alexey Vilchinsky
Здравствуйте, Нода Сергей!
вот так напиши:
$qry="SELECT name FROM data WHERE name LIKE '%$search%'";
в твоем скрипте ошибка:
$qry="SELECT name FROM data WHERE name LIKE '%". $search."%'"; - нельзя ставить одинарную кавычку между двойными. Надо ее экранировать, либо писать 2 раза.
--------- Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: Студент)
Ответ отправлен: 18.07.2006, 11:37 Оценка за ответ: 5 Комментарий оценки: Со скобками там все нормально. Но всеравно спасиба
Вопрос № 49.461
Здраствуйте Уважаемые Эксперты! Есть такая проблема как можно организовать поиск в базе данных (Access) например телефонного справочника по фамилии, и вывести его на страничку.спасибо огромное , если можно примерчик, с/у Ера
Отправлен: 18.07.2006, 12:13
Вопрос задал: ERA (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: PVS
Здравствуйте, ERA!
То, что Вы хотите сделать, возможно через функции ODBC. Также вполне возможно что существует какое-то расширение PHP, которое может доступатся напрямую к Access'y. Поищите в Internet'e - там иногда попадаются нужные вещи :-)
Ответ отправил: PVS (статус: 10-ый класс)
Ответ отправлен: 18.07.2006, 12:27
Вопрос № 49.472
Уважаемые эксперты! Может вопрос из другой категории, но все же...Вот фрагмент PHP-кода:
SELECT u.*, g.*, o.logged, o.idle FROM '.$db->prefix.'users AS u IN
Чё за u.*? И для чего в запросе точки?
Отвечает: Ерёмин Андрей
Здравствуйте, RebornDemon!
В случае, когда выборка делается не из одной конкретной таблицы, а из нескольких сразу, синтаксис SELECT немного другой. При выборке из одной таблицы: SELECT `поле` FROM `таблица`
При выборке из нескольких таблиц: SELECT Таблица1.поле1 , Таблица1.Поле2 , Таблица2.Поле3 FROM `Таблица1`,`Таблица2`,`Таблица3`
Поэтому в данном случае из таблиц u и g выбираются все поля без исключения, а также из таблицы o выбираются logged и idle.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Alexey Vilchinsky
Здравствуйте, RebornDemon!
u.* значит выбрать все поля таблицы, у которой алиас u.
users AS u - значит дать таблице users алиас u
--------- Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: Студент)
Ответ отправлен: 18.07.2006, 14:38
Отвечает: PVS
Здравствуйте, RebornDemon!
$db->prefix.'users AS u - назначает алиас u для таблицы $db->prefix.'users . Таким образом u.* значит "все поля таблицы с алиасом или именем u"
Ответ отправил: PVS (статус: 10-ый класс)
Ответ отправлен: 18.07.2006, 15:10
Отвечает: SergeyMAC
Здравствуйте, RebornDemon!
u.* и g.* используется как вам сказали выше для выбора из нескольких таблиц, а . это просто конкатенация (слияние строк), сделано чтобы включить значение $db->prefix в текст запроса.
Удачи...
--------- броня крепка, и танки наши быстры
Ответ отправил: SergeyMAC (статус: 6-ой класс)
Ответ отправлен: 18.07.2006, 15:10
Вопрос № 49.529
Здравствуйте уважаемые эксперты. У меня следующий вопрос. Скачал с сайта http://de.php.net/downloads.php пакет PHP 5.1.4 zip package. Разархивировал его (d:php) и скачал также инструкцию (manual). При чтении этой инструкции я выяснил что не хватает файла php5activescript.dll. Я потом выяснил что этот файл находится в пакете Collection of PECL modules for PHP 5.1.4 . Но зачем этот файл нужен, я так точно и не понял. Я так понял что его используют для интеграции в другие языки. Что потом создавая программы на
других языках для Win32 можно использовать скрипты php. Это как ассемблерные вставки в C/C++ или нет? Если я не прав, то может объясните мне зачем этот файл php5activescript.dll нужен и как его использовать.
Заранее благодарю.
Отправлен: 19.07.2006, 00:40
Вопрос задал: igorok (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Madproger
Здравствуйте, igorok!
ActiveScript is a windows only SAPI that enables you to use PHP script in any ActiveScript compliant host, like Windows Script Host, ASP/ASP.NET, Windows Script Components or Microsoft Scriptlet control
Для интеграции правильно.
Позволяет встраивать куски кода РНР например в ASP код
<%@language=PHPScript %>
<% $Response->Write("Hello"); %>
http://cvs.php.net/viewvc.cgi/pecl/activescript/README?revision=1.6
--------- И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 8-ой класс)
Ответ отправлен: 19.07.2006, 10:40 Оценка за ответ: 5 Комментарий оценки: Спасибо. Всё понятно.
Вопрос № 49.544
И снова здрасте, уважаемые эксперты. Такой вопрос: есть папка на хосте под названием avatars, при установке какого-либо популярного форума рекомендуется изменить для нее ограничения на 0777, дабы можно было грузить в нее аватары. Но это дает возможность заливать на хост вредоносные скрипты от юзера. Каким образом можно избежать загрузки в эту папку не того что надо? (только ли с помощью .htaccess?)
Отвечает: Ерёмин Андрей
Здравствуйте, RebornDemon!
Подождите, вы что-то путаете... Каким образом пользователь сможет загрузить файл к вам на сервер? Если вы имеете ввиду загрузку аватаров с компьютера пользователя, то, обычно делается проверка на тип файла - расширения изобрадений: *.jpg, *.gif, *.png. Каким же образом пользователь может загрузить туда посторонний файл? Если проверки нет, её нужно обязательно написать! А насчёт 0777 - я бы не стал ставить такие права. Форуму и аватарам, как вполне обычным скриптам, достаточно 0755. Удачи!
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Во-первых при заливке проверяйте расширение файла, например, так:
$filename=$_FILES['ImageFormName']['name'];
$ext=substr($newfilename,1+strrpos($newfilename,'.'));
if(!in_array(strtolower($ext),array('jpg','gif','png'))) exit;
Затем проверьте, можно ли определить размер картинки (если нет - это не картинка):
$tmpfilename=$_FILES['ImageFormName']['tmp_name'];
$data=GetImageSize($tmpfilename);
if(!is_array($data)) exit;
И лишь после этого выполняйте
move_uploaded_file($tmpfilename,'avatars/'.$filename);
На самом деле большинство форумов выполняют такую (или аналогичную) проверку. Чтобы узнать так ли это в Вашем случае - попробуйте сами загрузить произвольный файл в качестве аватара.
Ответ отправил: Physicist (статус: 7-ой класс)
Ответ отправлен: 19.07.2006, 09:50
Вопрос № 49.551
Нужно сделать экспорт данных в Excel-таблицу.
1. Есть какой-нибудь готовый компонент для этого?
2. Или как можно добавить данные в существующий файл (знаю номера колонок и строк для добавления; могу сделать шаблон).
Отправлен: 19.07.2006, 08:56
Вопрос задал: Php23 (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: PVS
Здравствуйте, Php23!
Если Вы работаете под Windows'ом, то через extension php_w32api Вам доступны функции API Windows. Таким образом Вы можете использовать OLE для работы с Excel.
Ответ отправил: PVS (статус: 10-ый класс)
Ответ отправлен: 19.07.2006, 09:54
Отвечает: Physicist
Здравствуйте, Php23!
1. Есть такой компонент: PEAR::Spreadsheet_Excel_Writer (http://pear.php.net/Spreadsheet_Excel_Writer)
Про работу с ним читайте на http://www.codenet.ru/webmast/php/Excel.php (или http://phpclub.ru/detail/article/Excel_Writer - не знаю, где оригинал)
2. Точно не помню, но по-моему PEAR::Spreadsheet_Excel_Writer позволяет только создавать Excel-файлы. Если это действительно так, то нужно или искать другой компонент, или придумывать что-то самому.
Мне пришло в голову только использование компонента Spreadsheet_Excel_Reader (http://sourceforge.net/projects/phpexcelreader) для чтения Excel файла, а затем PEAR::Spreadsheet_Excel_Writer для создания нового на его основе.
Ответ отправил: Physicist (статус: 7-ой класс)
Ответ отправлен: 19.07.2006, 10:29
Отвечает: Santana
Здравствуйте, Php23!
Я делаю файлы XML-формата. Нет необходимости пользоватся какими-то компонентами. файлы XML-формат текстовые и этим все сказано. Отчень удобно. Если дать ему расширение .xls, то по ссылке
<a href=XMLFileName.xls TARGET=_blank>Форматированный отчет</a>
он будет грузится прямо в ексель.
Ответ отправил: Santana (статус: 4-ый класс)
Ответ отправлен: 19.07.2006, 11:06
Вопрос № 49.553
Уважаемые эксперты, еще один вопрос. Что за файлы такие *tpl, каково их назначение и принцип использования? Заранее благодарю.
tpl - сокращение от template, это файлы шаблонов.
Вероятнее всего это шобоны Smarty (smarty.php.net) имеют собственные скрипты описания, что позволяет полностью переложить дизайн на smarty, в то время как код php остается тем же.
--------- Шахтер - чемпион!!!
Ответ отправил: Jeka911 (статус: 7-ой класс)
Ответ отправлен: 19.07.2006, 09:18
Отвечает: PVS
Здравствуйте, RebornDemon!
Скорее всего Вам попался какая-то разработка, содержащая шаблоны (TemPLate). Конкретное расширение не имеет зачения - оно зависит от того, что написано в PHP-скрипте, который будет их использовать. Расширение tpl никак специально не обрабатывается (по умолчанию, но все можно настроить).
Принцип использования следующий: Вы пишете страницу (html), раскрашиваете ее как Вам нравится, вообщем полный полет фантазии :-). Затем те части страницы, которые должны динамически изменятся Вы заменяете на набор символов, который позволит Вам однозначно идентифицировать, что это и есть место вставки, например [%MESSAGE_TEXT%]. Потом в скрипте Вы открываете файл шаблона, читаете его содержимое и если встречается "ключевая фраза" заменяете ее на реальное содержимое, взятое например из базы данных.
Ответ отправил: PVS (статус: 10-ый класс)
Ответ отправлен: 19.07.2006, 10:09
Отвечает: SergeyMAC
Здравствуйте, RebornDemon!
*tpl - это шаблоны для станиц, коротенько глянуть про них можно здесь:
http://infocity.kiev.ua/inet/content/inet204.phtml
http://www.hostmake.ru/articles/php_perl/673/
http://www.intuit.ru/department/pl/plphp/15/2.html
А если есть возможность прочитай в книжке Д.Котеров "php 5" , там работа с шаблонами хорошо описана.
Удачи...
--------- броня крепка, и танки наши быстры
Ответ отправил: SergeyMAC (статус: 6-ой класс)
Ответ отправлен: 19.07.2006, 17:34
Вопрос № 49.557
Добрый день эксперты!
У меня такой вопрос: имею строку запроса для поиска в базе:
$sql="SELECT name FROM data WHERE name LIKE '%".$search."%'";
ввожу строку для поиска (на форме) - 'ГИВ', а мне выдает значения в которых нет даного сочетания букв.
Возвращаемый список навожу в приложении.
Заранее спасибо.
Отвечает: PVS
Здравствуйте, Нода Сергей!
Похоже, что Вам просто выводится полный список. Вставте перед выполнением запроса
echo $sql;
и посмотрите действительно ли правильно сформирован запрос.
Ответ отправил: PVS (статус: 10-ый класс)
Ответ отправлен: 19.07.2006, 09:58 Оценка за ответ: 3 Комментарий оценки: строка запроса: SELECT name FROM data WHERE name LIKE '%ГИВ%' все нормально, но в базе не 30 записей, а более 500
Отвечает: Madproger
Здравствуйте, Нода Сергей!
Если запрос правильный - то скорее всего следующая проблема
У тебя таблицы с кодировкой по умолчанию latin-1 данные же в кодировке cp1251. Отсюда и такой вывод.
Частично помочь может
SELECT BINARY name FROM data WHERE name LIKE BINARY('%".$search."%')"
--------- И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 8-ой класс)
Ответ отправлен: 19.07.2006, 10:27