
27.08.2008, 18:17
|
|
Познающий
Регистрация: 03.07.2008
Сообщений: 65
С нами:
9397381
Репутация:
4
|
|
Народ помогите кто может. Тут возникла такая необходимость в скрипте. Суть скрипта такая. Имеется таблица в базе, скажем table.В ней 4 строки, id,url,header,content.
Нужен скрипт который будет искать в строке content текст полученый постом из формы и выводить в таблицу все совпавшие страницы!!!
|
|
|

27.08.2008, 19:59
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
С нами:
9497186
Репутация:
1304
|
|
~NeiTRoN~
PHP код:
<?php
mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("mydb");
$result = mysql_query("SELECT id,url,header,content FROM table WHERE content LIKE '%".$_POST['stroka']."%'");
echo "<table>\r\n";
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf ("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\r\n", $row["id"], $row["url"], $row["header"],$row["content"] );
}
echo "</table>\r\n";
mysql_free_result($result);
?>
|
|
|

27.08.2008, 20:15
|
|
Познающий
Регистрация: 03.07.2008
Сообщений: 65
С нами:
9397381
Репутация:
4
|
|
Сообщение от Gifts
~NeiTRoN~
PHP код:
<?php
mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("mydb");
$result = mysql_query("SELECT id,url,header,content FROM table WHERE content LIKE '%".$_POST['stroka']."%'");
echo "<table>\r\n";
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf ("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\r\n", $row["id"], $row["url"], $row["header"],$row["content"] );
}
echo "</table>\r\n";
mysql_free_result($result);
?>
Спасибо, только есть одна проблема.
В базе такие записи
id url header content
1 asd asd asd
2 qwe qwe qwe
3 zxc zxc zxc
4 qaz qaz ôûâôûâ(фывфыв без кодировки)
Когда я делаю запрос "ф" он мне все верно выводит одну строку 4 qaz qaz фывфыв, но когда я ввожу английскую"a" он выводит 1 asd asd asd и 4 qaz qaz фывфыв!!!!Как от этого избавится???
|
|
|

27.08.2008, 21:21
|
|
Участник форума
Регистрация: 29.11.2005
Сообщений: 122
С нами:
10761096
Репутация:
27
|
|
Бред не могу понять почему в одном скрипте этот кусок не работает, а в другом почти аналогичный работает?
Работает
PHP код:
$messages=sqlq("SELECT * FROM chat ORDER BY id DESC LIMIT 10");
while (list($id,$nick,$message,$times) = mysql_fetch_row($messages))
{
$message=str_replace($before, $after, $message, $const);
if ($const>3)
{
$message=str_replace($after, $before, $message, $const);
}
if ($nick==$nickname) $nick="<b>$nick</b>";
echo "<div class=block1>$times | $nick | $message </div>";
}
не работает! чего while(list()) не пашед как надо? че я пропустил?
PHP код:
$spisokz = sqlq("SELECT name FROM `items` WHERE type='h'");
while (list($name) = mysql_fetch_row($spisokz));
{
echo $name;
};
Последний раз редактировалось Grema; 27.08.2008 в 21:28..
|
|
|

28.08.2008, 06:46
|
|
Познающий
Регистрация: 03.07.2008
Сообщений: 65
С нами:
9397381
Репутация:
4
|
|
Сообщение от Gifts
~NeiTRoN~
PHP код:
<?php
mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("mydb");
$result = mysql_query("SELECT id,url,header,content FROM table WHERE content LIKE '%".$_POST['stroka']."%'");
echo "<table>\r\n";
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf ("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\r\n", $row["id"], $row["url"], $row["header"],$row["content"] );
}
echo "</table>\r\n";
mysql_free_result($result);
?>
Народ а как сделать так чтобы $row[content] выводился не весь, а допустим только до 200 символа, или еще лучше только кусок с запрашиваемым словом?
|
|
|

28.08.2008, 06:50
|
|
Познавший АНТИЧАТ
Регистрация: 01.04.2007
Сообщений: 1,268
С нами:
10058786
Репутация:
4589
|
|
Сообщение от ~NeiTRoN~
Народ а как сделать так чтобы $row[content] выводился не весь, а допустим только до 200 символа, или еще лучше только кусок с запрашиваемым словом?
substr или через регексп
|
|
|

28.08.2008, 07:34
|
|
Познающий
Регистрация: 03.07.2008
Сообщений: 65
С нами:
9397381
Репутация:
4
|
|
Сообщение от BlackSun
substr или через регексп
А чем будет эфективней?
|
|
|

28.08.2008, 07:37
|
|
Познавший АНТИЧАТ
Регистрация: 01.04.2007
Сообщений: 1,268
С нами:
10058786
Репутация:
4589
|
|
Сообщение от ~NeiTRoN~
А чем будет эфективней?
Просто отрезать строку - substr, вырезать какую то часть хер знает по какому принципу - регексп.
|
|
|

28.08.2008, 07:48
|
|
Reservists Of Antichat - Level 6
Регистрация: 20.08.2008
Сообщений: 328
С нами:
9328706
Репутация:
1503
|
|
Сообщение от ~NeiTRoN~
А чем будет эфективней?
Плюс ко всему регуляркой лучше чильно не баловаться, с точки зрения оптимизации! Регулярные выражения более ресурсоемкие!
|
|
|

27.08.2008, 23:21
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
С нами:
9497186
Репутация:
1304
|
|
Grema Точку с запятой убери в конце строчки с While
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|