Показать полную графическую версию : Несколько вопросов по PHP
Для начала, как данные, забитые в форму, отдать PHP файлы (записать в указанную переменную в php-файле, для определённости, в $data) »
<form action='script.php' method='get'>
<input type='text' name='data' />
<input type='submit' value='Отправить' />
</form>
Жмёте кнопку "отправить" и скрипт script.php получает переменную $_GET['data'], содержащую то, что написано в текстовом поле.
И я всё-равно не понимаю как организовать поиск по БД, если в формочку вводится строка с несколькими параметрам, по которым должен выполняться поиск, причём в совершенно неопределённом порядке. »
Вопрос немного размытый.
Вот, например, ввели мы эту $_GET['data']. Нужно выполнить поиск по таблице table_name по полю name:
$result = mysql_query("SELECT * FROM `table_name` WHERE `name` LIKE '%" . $_GET['data'] . "%'");
1 Рисуешь формочку
2 В параметре action ставишь нужный php-файл. action="getforma.php"
3 Это пока весь getforma.php
echo '<br />var_dump ($_POST) = '.var_dump ($_POST);
echo '<br />var_dump ($_GET) = '.var_dump($_GET);
4 Как искать по базе -
http://www.mysql.ru/docs/man/String_comparison_functions.html
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
http://habrahabr.ru/blogs/mysql/25646/
Coutty, :laugh:
Вот, например, ввели мы эту $_GET['data']. Нужно выполнить поиск по таблице table_name по полю name:
А если надо искать по нескольким полям таблицы сразу?
Причём пользователь вводит данные в форму разныого характера, а поиск определяет по каким полям надо искать и выдаёт наиболее соответствующие результаты.
Аналогично поиску человеков на facebook/vkontakte фразой вида "Петя Васечкин Тула", выдаёт всех людишек с именем "Петя" (или его производными), фамилией "Васечкин", которые указали город "Тула".
Есть база, в ней много полей, одни из них - name - Петя, family - Васечкин, city - Тула.
Надеюсь с формой разобрался. Тогда у нас есть переменные $pname, $pfamily, $pcity. Не путать с полями в базе.
Делаем запрос -
$query = "SELECT * from `user` WHERE `city`='".$pcity."' AND `family`= '".$pfamily."' AND `name` LIKE '%".$pname."%'";
$result = mysql_query($query);
Далее в ман по php.
Получается, у нас три переменных.
Я понял как забирвать из формы одну переменную, а как три забрать?
Что значит слово LIKE '% в запросе?
LIKE - это вместо "равно". Используется для поиска похожих сочетаний.
% - подстановочный знак "любое количество символов".
_ - "один символ".
Я понял как забирвать из формы одну переменную, а как три забрать? »
Делать три поля ввода с разными именами.
И забирать: $_GET['name'], $_GET['family'], $_GET['city']. Или же $_POST['name'] я только не уверен, что можно делать имя для поля - name, если передаёте POST'ом.
А чтоб в одно поле всё что угодно писать и получать результаты поиска по всей БД - это особое мастерство ;) Как вы, наверное, помните, в том же "контакте" поиск чего угодно появился не так уж и давно. Полагаю, дело там в дополнительном столбце, который содержит в себе особый индекс. Фраза, получаемая из поля ввода разбивается по пробелам и используется поиск с фразами, где слова меняются местами. Хотя это должна быть слишком высокая нагрузка на СУБД)
А кто сказал, что там 3 переменные? Переменная одна, а вот как сделан поиск - коммерческая тайна. Можно конечно докумекать и сделать аналогично, но это будет именно аналогично, а не точно так же.
лагаю, дело там в дополнительном столбце, который содержит в себе особый индекс. Фраза, получаемая из поля ввода разбивается по пробелам и используется поиск с фразами, где слова меняются местами. Хотя это должна быть слишком высокая нагрузка на СУБД)
Я собственно так и думал... Хотя не уверен что на тех же vpleer.ru и vkontakte.ru именно так, но данный способ выглядит убедительно.
Объясните как слова по пробелам разбивать пожалуйста.
И чем отличается метод GET от метода POST?
ManHack, ручками сделай форму, обработчик формы и сравни.
Теперь такой вопрос: как в PHP получить системное время? А если только дату? или только час с минутами?
Как получить размер файла? (с целью записать его в MySQL таблицу) и конкретный параметр из stats(filename).
А если это аудиофайл, как, скажем, обратиться к полям исполнитель или альбом?
Как можно организовать ID, записываемый в таблицу, чтобы при добавлении нового файла ему присваивался именно следующий ID?
Теперь такой вопрос: как в PHP получить системное время? А если только дату? или только час с минутами? »
date().
Как получить размер файла? »
filesize()
D_Master
15-02-2009, 10:43
как в PHP получить системное время? А если только дату? или только час с минутами?»
<?
//Получить время (в формате 15:38:31)
$getTime = date("H:i:s");
echo $getTime;
//Получить только дату (в формате 15-02-2009)
$getDateOnly = date("d-m-Y");
echo "<br>";
echo $getDateOnly;
//Получить только час с минутами
$getHourAndMinutes = date("H:i");
echo "<br>";
echo $getHourAndMinutes;
?>
Как получить размер файла? »
<?
$file="test.mp3";
//filesize() - возврат размера файла в байтах
$getFileSize = filesize($file);
echo $getFileSize;
?>
как в PHP получить системное время? »
http://www.php.net/manual/ru/function.time.php
А если только дату? или только час с минутами? »
http://www.php.net/manual/ru/function.date.php
Как получить размер файла? »
http://www.php.net/manual/ru/function.stat.php
А если это аудиофайл, как, скажем, обратиться к полям исполнитель или альбом? »
http://www.php.net/manual/ru/ref.id3.php
Как можно организовать ID, записываемый в таблицу, чтобы при добавлении нового файла ему присваивался именно следующий ID? »
Для этого при создании таблицы в базе ставишь в столбце галочку autoincrement.
А при добавлении записи в базу ничего не прописываешь для этой ячейки
"INSERT INTO `".$conf["db_base"]."`.`image` VALUES (NULL, '".$user_id."', '".$user_hash."', '".$filestat['ctime']."', '0') "
Команда
require ('scripten.php');
даёт возможность использовать переменные из scripten.php ? А она передаёт их значения, полученные в результате работы scripten.php? И что ещё она умеет делать?
Функция просто берёт весь код из scripten.php и вставляет в то место, где вызывается, как будто этот код там и был.
Как найти получить максимальное достигнутое значение из поля ID таблицы?
D_Master
22-02-2009, 18:53
ManHack, mkdir();
http://ru.php.net/manual/ru/function.mkdir.php
mkdir? D_Master, температуришь? :) Или там изначально другой вопрос был?
Как найти получить максимальное достигнутое значение из поля ID таблицы? »
Хороший вопрос. А теперь с учётом русской грамматики, пожалуйста, и поподробнее.
Там был другой вопрос, который я задал, а потом нажал большую розовую кнопочку GOOGLE.
И на те, вопрос отпал (
Задача
В таблице N записей (т.е. N строк). Как узнать число N?
$num = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM table"));
$num = $num[0]; // вот это и будет число строк
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.