Выглядит всё так:
html страница, на ней текстовое поле и кнопка. Когда нажимаю кнопку, идёт поиск по базе и всё что нашло - выведет ниже. Если не делали поиск - то на странице просто выведено всё что есть в БД.
php скрипт вывода из БД готов, поиск тоже, как это всё втулить... чёрт его %)
Как это всё организовать?
Спустя 3 часа, 12 минут (16.10.2010 - 01:57) aH6y написал(а):
сам пытался собрать?
Спустя 12 часов, 1 минута, 38 секунд (16.10.2010 - 13:59) Отторжение написал(а):
всмысле?
Спустя 2 минуты, 56 секунд (16.10.2010 - 14:02) sergeiss написал(а):
В том смысле, что тебе задали правильный встречный вопрос. У меня такой же был, когда тему прочитал
Если ты сам сделал много чего, то ты, наверное, должен был как-то подумать на тему того, что это всё собрать в кучу надо будет. Вот тебя и спросили: "а сам пытался собрать?"
Если ты сам сделал много чего, то ты, наверное, должен был как-то подумать на тему того, что это всё собрать в кучу надо будет. Вот тебя и спросили: "а сам пытался собрать?"
Спустя 22 минуты, 13 секунд (16.10.2010 - 14:24) Отторжение написал(а):
Ну пытался заинклудить на html странице скрипт, работать должно если поправить .htaccess, НО, надо ведь как-то сделать сделать поиск по тому что ввели в форме, а как обновить фрейм с пхп незнаю.
Спустя 5 часов, 41 минута, 1 секунда (16.10.2010 - 20:05) ИНСИ написал(а):
Отторжение наверное, тебе стоит немного изменить сам поиск:
1. Сделать php страницу.
2. Сделать вывод из БД по дефолту, то есть в адрессной строке сделать переменные пустые, получается запрос у тебя без условий.
2. Сделать форму поиска на странице, метод GET
3. И при поиске, чтобы данные отдавались этой же странице, но меняли запрос, то есть заполняли инфой адресную строку.
1. Сделать php страницу.
2. Сделать вывод из БД по дефолту, то есть в адрессной строке сделать переменные пустые, получается запрос у тебя без условий.
2. Сделать форму поиска на странице, метод GET
3. И при поиске, чтобы данные отдавались этой же странице, но меняли запрос, то есть заполняли инфой адресную строку.
Спустя 2 часа, 16 минут, 7 секунд (16.10.2010 - 22:21) Отторжение написал(а):
Вообщем, получился вот такой код:
Вот теперь не могу заброс раскурочить, надо сделать:
Но таким образом не срабатывает =/
Т.е. по идее надо делать через if, если ввели что-то то искать по $name, если не ввели - то не искать через where. Но вот sql не хочет принимать текст из переменной %)
Как это сделать?
<?
$dblocation = "127.0.0.1";
$dbname = "blacklist";
$dbuser = "root";
$dbpsw = "*******";
$dbconnect = @mysql_connect($dblocation,$dbuser,$dbpsw);
$name = "";
$getname = $_GET['name'];
if($getname)
$name=$getname;
if (!$dbconnect)
{
echo "Error ". mysql_error() ."";
exit();
}
else
{
if(!@mysql_select_db($dbname,$dbconnect))
{
echo "Error ". mysql_error() ."";
exit();
}
else
{
echo "<html>";
echo "<TABLE>";
echo "<head>";
echo "<title>Чёрный список клана HamsterWatch</title>";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />";
echo "<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\" />";
echo "</head>";
echo "<body>";
echo "<H1 align=\"center\">HamsterWatch</H1>";
echo "<form action=\"blacklist.php\" method=\"get\">";
echo "<input type=\"text\" name=\"name\"><input type=\"submit\" value=\"Найти\">";
echo "<TR><TD>Ник</TD><TD>Лог</TD><TD>Дополнительно</TD><TD>Выход</TD></TR>";
$query = mysql_query("select * from badlist");
while($row = mysql_fetch_array($query))
{
echo "<TR><TD>". $row['nickname'] ."</TD><TD>". $row['log'] ."</TD><TD>". $row['etc'] ."</TD><TD>". $row['exit'] ."</TD></TR>";
}
echo "</TABLE>";
echo "</form>";
echo "</body>";
echo "</html>";
}
}
mysql_close($dbconnect);
exit();
?>
Вот теперь не могу заброс раскурочить, надо сделать:
SELECT * FROM blacklist WHERE nickname=$name
Но таким образом не срабатывает =/
Т.е. по идее надо делать через if, если ввели что-то то искать по $name, если не ввели - то не искать через where. Но вот sql не хочет принимать текст из переменной %)
Как это сделать?
Спустя 11 часов, 37 минут, 48 секунд (17.10.2010 - 09:59) linker написал(а):
mysql_query("SELECT * FROM blacklist WHERE nickname = '" . mysql_real_escape_string($name) . "'");
Спустя 2 часа, 19 минут, 42 секунды (17.10.2010 - 12:19) ИНСИ написал(а):
Отторжение Вот попробуй этот кусок:
$dblocation = "127.0.0.1";
$dbname = "blacklist";
$dbuser = "root";
$dbpsw = "*******";
$dbconnect = @mysql_connect($dblocation,$dbuser,$dbpsw);
if($_GET['name']) $where = "`nickname` = ".mysql_real_escape_string(stripslashes($_GET['name']))."";
else $where = '';
if (!$dbconnect) {
echo "Error ". mysql_error() ."";
exit();
}
else {
if(!@mysql_select_db($dbname,$dbconnect)) {
echo "Error ". mysql_error() ."";
exit();
}
else {
echo "<html>";
echo "<TABLE>";
echo "<head>";
echo "<title>Чёрный список клана HamsterWatch</title>";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />";
echo "<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\" />";
echo "</head>";
echo "<body>";
echo "<H1 align=\"center\">HamsterWatch</H1>";
echo "<form action=\"blacklist.php\" method=\"get\">";
echo "<input type=\"text\" name=\"name\"><input type=\"submit\" value=\"Найти\">";
echo "<TR><TD>Ник</TD><TD>Лог</TD><TD>Дополнительно</TD><TD>Выход</TD></TR>";
$query = mysql_query("SELECT * FROM `badlist` {$where}");
while($row = mysql_fetch_array($query))
{
echo "<TR><TD>". $row['nickname'] ."</TD><TD>". $row['log'] ."</TD><TD>". $row['etc'] ."</TD><TD>". $row['exit'] ."</TD></TR>";
}
echo "</TABLE>";
echo "</form>";
echo "</body>";
echo "</html>";
}
}
mysql_close($dbconnect);
exit();
Спустя 1 час, 54 минуты, 3 секунды (17.10.2010 - 14:13) Отторжение написал(а):
Спасибо)
Спустя 15 минут, 40 секунд (17.10.2010 - 14:29) arvitaly написал(а):
Прекратите экранировать кавычки
Спустя 45 минут, 58 секунд (17.10.2010 - 15:15) ИНСИ написал(а):
Цитата |
Прекратите экранировать кавычки |
почему?
Спустя 1 минута, 11 секунд (17.10.2010 - 15:16) arvitaly написал(а):
Цитата |
почему? |
Потому что это абсолютно бессмысленное увеличение кода и такое же уменьшение читабельнсти
Спустя 27 минут, 42 секунды (17.10.2010 - 15:43) ИНСИ написал(а):
arvitaly я с тобой полностью согласен, просто если говорить о НЕКОРРЕКТНОСТИ кода, то весь код ужасен. Поэтому если делать замечания, то делай все
Спустя 14 минут, 54 секунды (17.10.2010 - 15:58) arvitaly написал(а):
1. Зачем заносить в переменные значение и тут же следующей строкой их использовать первый и последний раз.
2. @mysql_connect - хуже не придумаешь
3. $_GET['name'] - ее может и не быть
4. mysql_real_escape_string(stripslashes( - магические кавычки в каком положении??
5.nickname` = " - nickname='имя', а у вас nickname=имя. Это к тому, что может ничего не найтись. А терь к безопасности nickname =Федя select * from users
$_GET['name' - просто нужно проверить на соответствие шаблону
6. if (!$dbconnect) { - для чего мы делали $where= если тут же кончается работа скрипта
7. Опять миллион вложенных условий
8. html -код вообще в php Загонять незачем и уж точно не экранировать кавычки
9. $query = mysql_query - а здесь где проверка на ошибку
10. mysql_fetch_array - ни к чему assoc нужно
11. mysql_close - для чего вы пишите, знаете?
12. exit; это не конец скрипта?
Это не полный список, просто все остальные смысле нет писать)
2. @mysql_connect - хуже не придумаешь
3. $_GET['name'] - ее может и не быть
4. mysql_real_escape_string(stripslashes( - магические кавычки в каком положении??
5.nickname` = " - nickname='имя', а у вас nickname=имя. Это к тому, что может ничего не найтись. А терь к безопасности nickname =Федя select * from users
$_GET['name' - просто нужно проверить на соответствие шаблону
6. if (!$dbconnect) { - для чего мы делали $where= если тут же кончается работа скрипта
7. Опять миллион вложенных условий
8. html -код вообще в php Загонять незачем и уж точно не экранировать кавычки
9. $query = mysql_query - а здесь где проверка на ошибку
10. mysql_fetch_array - ни к чему assoc нужно
11. mysql_close - для чего вы пишите, знаете?
12. exit; это не конец скрипта?
Это не полный список, просто все остальные смысле нет писать)
Спустя 11 минут, 51 секунда (17.10.2010 - 16:10) ИНСИ написал(а):
arvitaly молодец!! Не плохие замечания ...
Спустя 42 минуты, 45 секунд (17.10.2010 - 16:53) Отторжение написал(а):
arvitaly да у меня просто тут книжонка, вот о ней какбэ и ориентируюсь. А теперь по пунктам:
1. если не @mysql_connect, то что?
2. ну если этой переменной нет, то и выборку по имени не производит.
4. подскажите шаблон для запроса.
10. Верно подмечено, исправил
11. Закрываю соединение с msql сервером, но вот почитал - это не обязательно.
12. конец
1. если не @mysql_connect, то что?
2. ну если этой переменной нет, то и выборку по имени не производит.
4. подскажите шаблон для запроса.
10. Верно подмечено, исправил
11. Закрываю соединение с msql сервером, но вот почитал - это не обязательно.
12. конец
Спустя 1 минута, 33 секунды (17.10.2010 - 16:54) arvitaly написал(а):
Я щас ухожу завтра еси тока отвечу
Спустя 55 минут, 59 секунд (17.10.2010 - 17:50) Отторжение написал(а):
Ну ответь когда сможешь.
Спустя 50 минут, 25 секунд (17.10.2010 - 18:41) ИНСИ написал(а):
arvitaly сейчас нормально прочитал, твои замечания и мне кажется, ты не во всем прав:
Цитата |
@mysql_connect - хуже не придумаешь |
что именно? То, что человек подавляет ошибку? или то, что не: mysqli_query?
Цитата |
mysql_real_escape_string(stripslashes( - магические кавычки в каком положении?? |
ну, допустим такой пример: Piter's
Цитата |
А терь к безопасности nickname =Федя select * from users |
там ведь стоит: mysql_real_escape_string(stripslashes(
Цитата |
if (!$dbconnect) { - для чего мы делали $where= если тут же кончается работа скрипта |
согласен, надо было убрать чуть ниже.
Цитата |
html -код вообще в php Загонять незачем и уж точно не экранировать кавычки |
на 100% согласен!
Цитата |
mysql_fetch_array - ни к чему assoc нужно |
не согласен! Это уже на любителя. Есть много трений, что лучше и быстрее. Это не является ошибкой мне кажется.
Цитата |
mysql_close - для чего вы пишите, знаете? exit; это не конец скрипта? |
верно
Спустя 2 часа, 46 минут, 46 секунд (17.10.2010 - 21:28) arvitaly написал(а):
Цитата |
что именно? То, что человек подавляет ошибку? или то, что не: mysqli_query? |
да, именно то что подавляет ошибку и следующий код будет выполняться внезависимости от того есть у нас база или нет - абсурд
Цитата |
ну, допустим такой пример: Piter's |
Причем тут пример - речь о настройках пхп
Цитата |
там ведь стоит: mysql_real_escape_string(stripslashes( |
И? Лечите спид - аспирином?
Цитата |
не согласен! Это уже на любителя. Есть много трений, что лучше и быстрее. Это не является ошибкой мне кажется. |
Каких трений??? Где???? Что такое ошибка?
Спустя 38 минут, 47 секунд (17.10.2010 - 22:06) ИНСИ написал(а):
Цитата |
да, именно то что подавляет ошибку и следующий код будет выполняться внезависимости от того есть у нас база или нет - абсурд |
согласен.
Цитата |
И? Лечите спид - аспирином? |
думаешь запрос твой nickname =Федя select * from users пройдет через функцию: mysql_real_escape_string?
Цитата |
Каких трений??? Где???? Что такое ошибка? |
походи по форуму. Кажется тут не раз обсуждали эти функции....
я не стараюсь сказать что я лучше тебя знаю php. Уверен что мне далеко еще до профи, просто я сказал что по моему ты был неправ в определенных моментах. Поэтому, я не хочу спорить и не воспринимай этот биффинг как соревнование. ок?
Спустя 5 минут, 19 секунд (17.10.2010 - 22:12) arvitaly написал(а):
Цитата |
mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and \x1a. |
7 раз за сегодня. Где тут связь с моим примером?
Цитата |
походи по форуму. Кажется тут не раз обсуждали эти функции.... |
нет уж спасибо
Цитата |
Поэтому, я не хочу спорить и не воспринимай этот биффинг как соревнование. ок? |
да, конечно, какое соревнование - обсуждаем и обсуждаем чего нам делить
Спустя 18 часов, 31 минута, 13 секунд (18.10.2010 - 16:43) Отторжение написал(а):
Вообщем, я тут почитал, подправил кое что, НО, по прежнему не ищет по никнейму. Запрос верный, а вот чего выделуется - чёрт его знает. Кодировка может не соответствовать?
<?
$dblocation = "127.0.0.1";
$dbname = "blacklist";
$dbuser = "root";
$dbpsw = "s6evjfgy";
$dbconnect = mysql_connect($dblocation,$dbuser,$dbpsw) or die(mysql_error());
mysql_select_db($dbname,$dbconnect) or die(mysql_error());
if($_GET['name'])
$filter = "WHERE 'nickname' = '".mysql_real_escape_string($_GET['name'])."'";
else
$filter = '';
echo "<html>";
echo "<head>";
echo "<title>Чёрный список клана HamsterWatch</title>";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />";
echo "<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\" />";
echo "</head>";
echo "<body>";
echo "<H1 align=\"center\">HamsterWatch</H1>";
echo "<form action=\"blacklist.php\" method=\"get\">";
echo "Поиск по: $filter";
echo "<TABLE align=\"center\">";
echo "<TR><TD><input type=\"text\" name=\"name\"><input type=\"submit\" value=\"Найти\"></TD></TR>";
echo "<TR><TD>Ник</TD><TD>Лог</TD><TD>Дополнительно</TD><TD>Выход</TD></TR>";
$query = mysql_query("SELECT * FROM badlist $filter");
while($row = mysql_fetch_assoc($query))
{
echo "<TR><TD>". $row['nickname'] ." <img src=\"img\\". $row['profession'] .".gif\"></TD><TD>". $row['log'] ."</TD><TD>". $row['etc'] ."</TD><TD>". $row['exit'] ."</TD></TR>";
}
echo "</TABLE>";
echo "</form>";
echo "</body>";
echo "</html>";
mysql_close($dbconnect);
exit();
?>
Спустя 3 минуты, 42 секунды (18.10.2010 - 16:47) arvitaly написал(а):
зачем весь код нужен если не работает только сам запрос, оставьте только его и проверьте
Спустя 18 минут, 55 секунд (18.10.2010 - 17:06) Отторжение написал(а):
$query = mysql_query("SELECT * FROM 'badlist' WHERE 'nickname' = 'ааааа'");
Пытался делать так - не сработало. Хотя в БД есть запись, где nickname = aaaaa и при чём не одна %)
Спустя 51 минута, 20 секунд (18.10.2010 - 17:57) arvitaly написал(а):
а ну так set names кодировка еще надо делать запрос
Спустя 25 минут, 37 секунд (18.10.2010 - 18:22) Отторжение написал(а):
лучше utf8?
и этот запрос 1 раз всего сделать, верно?
P.S. сделал mysql_query("SET names utf8"); но не пашет =/
и этот запрос 1 раз всего сделать, верно?
P.S. сделал mysql_query("SET names utf8"); но не пашет =/
Спустя 3 минуты, 48 секунд (18.10.2010 - 18:26) arvitaly написал(а):
что значит лучше, какая у вас кодировка в базе?
Спустя 14 минут, 11 секунд (18.10.2010 - 18:40) Отторжение написал(а):
utf8_unicode_ci
Спустя 30 минут, 48 секунд (18.10.2010 - 19:11) ИНСИ написал(а):
Отторжение ты запрос переделал неверно, вот это вставь:
$query = mysql_query("SELECT * FROM `badlist` WHERE `nickname` = 'ааааа'");
Спустя 14 минут, 57 секунд (18.10.2010 - 19:26) Отторжение написал(а):
Не работает. Я по разному пробывал %)
Спустя 16 минут, 24 секунды (18.10.2010 - 19:43) ИНСИ написал(а):
Отторжение попробуй вот так:
Свернутый текст
<?
$dblocation = "127.0.0.1";
$dbname = "blacklist";
$dbuser = "root";
$dbpsw = "s6evjfgy";
$dbconnect = mysql_connect($dblocation,$dbuser,$dbpsw) or die(mysql_error());
mysql_select_db($dbname,$dbconnect) or die(mysql_error());
if(isset($_GET['name'])) {
$query = "
SELECT *
FROM `badlist`
WHERE `nickname` = '".mysql_real_escape_string($_GET['name'])."'
";
} else {
$query = "
SELECT *
FROM `badlist`
";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Чёрный список клана HamsterWatch</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<H1 align="center">HamsterWatch</H1>
<form action="" method="get">
<TABLE align="center">
<TR><TD><input type="text" name="name"><input type="submit" value="Найти"></TD></TR>
<TR><TD>Ник</TD><TD>Лог</TD><TD>Дополнительно</TD><TD>Выход</TD></TR>
<? while($row = mysql_fetch_assoc($query)) { ?>
<TR><TD><?=$row['nickname']?> <img src="img\<?=$row['profession']?>.gif"></TD><TD>
<?=$row['log']?></TD><TD>
<?=$row['etc']?></TD><TD>
<?=$row['exit']?></TD></TR>
<? } ?>
</TABLE>
</form>
</body>
</html>
Спустя 8 минут, 44 секунды (18.10.2010 - 19:51) Отторжение написал(а):
welbox2, вообще не пашет)
Спустя 5 минут (18.10.2010 - 19:56) ИНСИ написал(а):
Отторжение прости, я просто классом пользуюсь, а тут надо прописывать. в общем, вот этот код вставь куда надо:
if(isset($_GET['name'])) {
$query = mysql_query"
SELECT *
FROM `badlist`
WHERE `nickname` = '".mysql_real_escape_string($_GET['name'])."'
";
} else {
$query = mysql_query"
SELECT *
FROM `badlist`
";
}
Спустя 4 минуты, 54 секунды (18.10.2010 - 20:01) ИНСИ написал(а):
блин, снова туплю, просто сегодня день был ужасный просто, вот последний шрих:
if(isset($_GET['name'])) {
$query = mysql_query("
SELECT *
FROM `badlist`
WHERE `nickname` = '".mysql_real_escape_string($_GET['name'])."'
");
} else {
$query = mysql_query("
SELECT *
FROM `badlist`
");
}
Спустя 6 минут, 47 секунд (18.10.2010 - 20:08) Отторжение написал(а):
Код то идентичный, смысл?
Спустя 42 секунды (18.10.2010 - 20:09) ИНСИ написал(а):
Отторжение посмотри внимательно, в последнем есть круглые скобки. Получилось?
Спустя 16 минут, 54 секунды (18.10.2010 - 20:26) Отторжение написал(а):
Заработало. Запросы идентичные, почему у меня не работает?
В запросе кавычки ' ' вообще не воспринимаются =/
В запросе кавычки ' ' вообще не воспринимаются =/
Спустя 6 минут, 8 секунд (18.10.2010 - 20:32) ИНСИ написал(а):
Отторжение запросы разные. Ты в запросах названия таблиц и полей указал в одинарных ковычках, а их надо в апострофах указывать
Спустя 47 секунд (18.10.2010 - 20:33) ИНСИ написал(а):
Отторжение хоть спасибо сказал бы что ли.....
Спустя 22 минуты, 15 секунд (18.10.2010 - 20:55) Отторжение написал(а):
Ох я кострюля) думал что надо в одинарных кавычках делать, думал на форуме специально так сделано для читабельности. Спасибо большое)