hook Опубликовано 3 марта, 2014 Жалоба Поделиться Опубликовано 3 марта, 2014 Всем hi! Только начал изучать php и mysql. Итак, есть некоторая БД. Надо организовать поиск в определенном поле. То, что надо искать задается не из формы а из другого скрипта php. Как это сделать? Ссылка на комментарий
ros.pro Опубликовано 3 марта, 2014 Жалоба Поделиться Опубликовано 3 марта, 2014 а как то, что задается в другом скрипте попадает в тот, который будет искать? Ссылка на комментарий
hook Опубликовано 3 марта, 2014 Автор Жалоба Поделиться Опубликовано 3 марта, 2014 а как то, что задается в другом скрипте попадает в тот, который будет искать?Это передает ему приложение с десктопа . Простым get запросом. Ссылка на комментарий
piecemaker Опубликовано 3 марта, 2014 Жалоба Поделиться Опубликовано 3 марта, 2014 простой get запрос сам по себе в базу ничего не кладет, работает PHP скрипт как раз таки. Ссылка на комментарий
hook Опубликовано 3 марта, 2014 Автор Жалоба Поделиться Опубликовано 3 марта, 2014 простой get запрос сам по себе в базу ничего не кладет, работает PHP скрипт как раз таки.Это и понятно. Я уже реализовал скрипт который добавить инфу в базу. Сейчас дело за поиском в определенной таблице БД. Как мне передать например строку "ААА0011" из скрипта "incic.php" в скрипт "search.php"?Добавлено спустя 23 минуты 12 секунд:А еще конкретней:Как передать значение переменной из одного скрипта в другой через GET?Добавлено спустя 20 минут 3 секунды:Сессии не надо! Я обращаюсь к скрипту приложением, а не браузером. Ссылка на комментарий
hook Опубликовано 3 марта, 2014 Автор Жалоба Поделиться Опубликовано 3 марта, 2014 А если я буду юзать curl? Она по умолчанию включена в PHP? Мне не потребуеться дополнительной настройки?Добавлено спустя 3 минуты 17 секунд:Или хоть блин, временный файл создавай Ссылка на комментарий
hook Опубликовано 3 марта, 2014 Автор Жалоба Поделиться Опубликовано 3 марта, 2014 Ок. Разобрался с передачей параметра. И теперь собственно по сабжу. Значиться подумал что было бы правило сначала поискать через PhpMyAmdin. Ну так вот, задал в определенном поле нужное мне значение и получил:Выдает только столбец с искомым значениемSELECT `idboss`FROM `bossinfo`WHERE `idboss` LIKE '8BThqpo8yvRB02N'LIMIT 0 , 30или выдаст все поле с найденным столбцомSELECT *FROM `bossinfo`WHERE `idboss` LIKE '8BThqpo8yvRB02N'ORDER BY `bossinfo`.`ipa` ASCLIMIT 0 , 30Как мне такой запрос вставить в PHP? Ссылка на комментарий
piecemaker Опубликовано 3 марта, 2014 Жалоба Поделиться Опубликовано 3 марта, 2014 смотри mysql_query$r=mysql_query("SELECT * FROM bossinfo WHERE idboss LIKE 'dsdsfdsdfsdfs'");$res=mysql_fetch_array($r);... Ссылка на комментарий
hook Опубликовано 3 марта, 2014 Автор Жалоба Поделиться Опубликовано 3 марта, 2014 Уфф.. закодил блин *89... во как :<?php include('connect.php'); $f = fopen("tmp", "r"); // Читать строку их текстового файла и записать содержимое клиенту $fstr = fgets($f); fclose($f); // Формируем запрос// Это лучший способ выполнить SQL-запрос// Еще примеры можно найти в документации mysql_real_escape_string()$query = sprintf("SELECT * FROM `bossinfo` WHERE `idboss` LIKE '8BThqpo8yvRB02N' ORDER BY `bossinfo`.`ipa` ASC LIMIT 0 , 30");// Выполняем запрос$result = mysql_query($query);// Проверяем результат// Это показывает реальный запрос, посланный к MySQL, а также ошибку. Удобно при отладке.if (!$result) { $message = 'Неверный запрос: ' . mysql_error() . "\n"; $message .= 'Запрос целиком: ' . $query; die($message);}// Используем результат// Попытка напечатать $result не выведет информацию, которая в нем хранится// Необходимо использовать какую-либо mysql-функцию, работающую с результатом запроса// См. также mysql_result(), mysql_fetch_array(), mysql_fetch_row() и т.п.while ($row = mysql_fetch_assoc($result)) { echo $row['idboss']; echo $row['data'];}// Освобождаем ресурсы, ассоциированные с результатом// Это делается автоматически в конце скриптаmysql_free_result($result);?>Добавлено спустя 2 минуты 54 секунды:Упустил один момент! Как мне в этом запросе:$query = sprintf("SELECT * FROM `bossinfo` WHERE `idboss` LIKE '8BThqpo8yvRB02N' ORDER BY `bossinfo`.`ipa` ASC LIMIT 0 , 30"); Вместо 8BThqpo8yvRB02N вставить переменную $fstr ??? Как ни пытаюсь все равно на ее ругается!Добавлено спустя 2 минуты 26 секунд:Если делаю так, то скрипт ничего не выводит! // Формируем запрос$query = sprintf("SELECT * FROM `bossinfo` WHERE `idboss` LIKE '$fstr' ORDER BY `bossinfo`.`ipa` ASC LIMIT 0 , 30"); Ссылка на комментарий
Godes Опубликовано 3 марта, 2014 Жалоба Поделиться Опубликовано 3 марта, 2014 Не проще готовый шаблон использовать ? Ссылка на комментарий
ros.pro Опубликовано 3 марта, 2014 Жалоба Поделиться Опубликовано 3 марта, 2014 Если делаю так, то скрипт ничего не выводит!{$fstr}или... LIKE '".$fstr."' ORDER...Добавлено спустя 1 минуту 30 секунд:Не проще готовый шаблон использовать ?шаблон чего? Ссылка на комментарий
СМОК Опубликовано 4 марта, 2014 Жалоба Поделиться Опубликовано 4 марта, 2014 достаточно '$fstr' Ссылка на комментарий
piecemaker Опубликовано 4 марта, 2014 Жалоба Поделиться Опубликовано 4 марта, 2014 http://www.php.net/manual/ru/function.sprintf.phpлибо используешь sprintf, тогда будет$query=sprintf("SELECT * FROM `bossinfo` WHERE `idboss` LIKE '%s' ORDER BY `bossinfo`.`ipa` ASC LIMIT 0 , 30",$fstr);либо просто$query="SELECT * FROM `bossinfo` WHERE `idboss` LIKE '".$fstr."' ORDER BY `bossinfo`.`ipa` ASC LIMIT 0 , 30" Ссылка на комментарий
hook Опубликовано 4 марта, 2014 Автор Жалоба Поделиться Опубликовано 4 марта, 2014 достаточно '$fstr'Не достаточно! Я ж говорю что при таком использовании скрипт ничего не возвращает! Проверил тип переменой, соответствует string. Я так понимаю что надо эту переменную заключить в кавычки... но что-то пока никак. Кстати, а за что в запросе отвечает LIKE ???Добавлено спустя 2 минуты 14 секунд:Может сам запрос не верно составлен? Ссылка на комментарий
СМОК Опубликовано 4 марта, 2014 Жалоба Поделиться Опубликовано 4 марта, 2014 Вроде как само за себя говорит LIKE подобный, похожийФункция производит сравнение с шаблоном, используя операции сравнения простых регулярных выражений в SQL.Да и в твоем запросе лучше делать оператором сравнения =$query = sprintf("SELECT * FROM `bossinfo` WHERE `idboss` LIKE = '$fstr' ORDER BY `bossinfo`.`ipa` ASC LIMIT 0 , 30"); Ссылка на комментарий
piecemaker Опубликовано 4 марта, 2014 Жалоба Поделиться Опубликовано 4 марта, 2014 в переменную $fstr то что пишется? если строка, то там могут быть знаки конца строки. добавь trim($fstr) и LIKE замени на равно как выше написано. Ссылка на комментарий
D_Master Опубликовано 4 марта, 2014 Жалоба Поделиться Опубликовано 4 марта, 2014 LIKE нужно использовать с wildcart "%" (соответствует любому количеству символов).Примеры (значения поля `idboss`):Набор данных №1: '1test', 'this is test', 'not a test'Набор данных №2: 'test string', 'test info', 'test article'- при использовании '%test' будут найдены записи из набора 1, но не будут найдены записи из набора 2- при использовании 'test%' будут найдены записи из набора 2, но не будут найдены записи из набора 1- при использовании '%test%' будут найдены записи из 1 и 2 наборов- без использования "%" будут найдены только те записи, поле `idboss` в которых равно искомой строке ($fstr)<?phpmysql_connect('localhost', 'user', 'password');mysql_select_db('db_name');$fstr = 'test';$query = 'SELECT * FROM bossinfo WHERE idboss LIKE "%' . mysql_real_escape_string($fstr) . '%" ORDER BY ipa ASC LIMIT 30';$res = mysql_query($query);$results_count = mysql_num_rows($res);if ($results_count > 0){ echo ''; $row = null; for ($i = $results_count; $i > 0; --$i) { $row = mysql_fetch_assoc($res); print_r($row); }}else echo 'No results'; Ссылка на комментарий
hook Опубликовано 5 марта, 2014 Автор Жалоба Поделиться Опубликовано 5 марта, 2014 Охренеть! Мужики! Мы справились с этим!!! Запомню навсегда)) Итак, ответ предложенный D_Master сработал четко! Все гуд. Но я взял примеры от СМОК'a и piecemaker'a вкупе дали нужный результат! запрос мой стал таким:$query = sprintf("SELECT * FROM `botinfo` WHERE `idbot` LIKE trim('$fstr') ORDER BY `botinfo`.`ip` ASC LIMIT 0 , 30");данные я считывал из файла в конце строки (привык к питону ) были не те символы что надо и скрипт "думал" что нет совпадений))Спасибо вам Огромное!репу вам уже добавил)) спс!!! Ссылка на комментарий
piecemaker Опубликовано 6 марта, 2014 Жалоба Поделиться Опубликовано 6 марта, 2014 хорошо конечно , но совать функции в тело запроса не есть гуд, хотя это уже дело персональное. Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти