![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Здраствуйте, помогите пожалуйста в работоспособности запроса.
Делаю запрос по названию (текстовое, уникальное),название пункта, по котором делается запрос, полностью совпадает с названием в БД (поле в БД - NazvaPunktu (VARCHAR(50)), но выводится сообщение о том что нет такого пункта в БД - "Ничего не найдено".
Форма ввода данных:
<title>Поиск</title> <p><b>Введите название</b></p> <form action="findname.php" method="post"> <table align="left"> <tr> <td> <div align="left"> Назва пункту <input name="name1"><br> <br> <br><input type="submit" value="Выполнить"> </div> </td> </tr> </table> </form>
Скрипт (findname.php):
<html>
<head>
<title>Поиск</title>
</head>
<body>
<?php
$name1 = $_GET['name1'];
$link = mysql_connect ('localhost', 'MyLogin', 'MyPass');
@mysql_query("SET NAMES 'cp1251'",$link);
if ( !$link ) die ("Error MySQL");
$db = "georv";
mysql_select_db ( $db ) or die ("Error $db");
$query = "SELECT * FROM Punkti WHERE NazvaPunktu = '$name1'";
$result = mysql_query ( $query );
$n = mysql_num_rows ( $result );
if ( $n == 0 ) echo "Ничего не найдено";
mysql_close ( $link );
?>
</body>
</html>SHOW VARIABLES LIKE '%CHAR%'
character_set_client cp1251
character_set_connection cp1251
character_set_database cp1251
character_set_filesystem binary
character_set_results cp1251
character_set_server latin1
character_set_system utf8
SHOW VARIABLES LIKE '%COLL%'
collation_connection cp1251_general_ci
collation_database cp1251_general_ci
collation_server latin1_swedish_ci
Неактивен

Несколько мыслей:
1. если в БД нету такой строки, то будет написано «Ничего не найдено»;
2. это вопрос по PHP (а вопросы по PHP принято задавать на webew.ru);
3. правильно использовать addslashes($_POST[]) вместо $_GET[].
Неактивен
Спасибо за советы, вопрос с GET/POST уже решыл. Запрос работает. Проблема с кодировкой. Не работает с кирилицей...
Неактивен

SET NAMES cp1251, а не SET NAMES 'cp1251'.
Неактивен
всеровно не помагает, я так понимаю дело в ...
character_set_server latin1
collation_server latin1_swedish_ci
Неактивен

Нет, это влияет на кодировки таблиц по умолчанию (кстати, в какой кодировке
создана Ваша таблица?), точнее — баз.
Неактивен
cp1251_general_ci
Неактивен

Ну, тогда русские буквы должны сохраняться нормально.
Неактивен
SHOW VARIABLES LIKE '%CHAR%' i SHOW VARIABLES LIKE '%COLL%' я уже показывал выше
вот SHOW CREATE TABLE `Punkti`
$sql = "SELECT * FROM Punkti";
$result = mysql_query($sql);
echo "<table>\n";
while ($Line = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "\t<tr>\n";
foreach($Line as $col_value)
{
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
mysql_free_result($result);дает такой результат:
121 Archishun Punkt triangulatsii Nevstanovleniy 3 0 0 0 25 50 0 NULL Piramida Derev'yaniy Zruynovana 0
123 Dubno Punkt triangulatsii Nevstanovleniy 2 0 0 0 0 0 0 NULL Signal Metaleviy Ciluj 0
124 Mali Sadu Punkt triangulatsii Nevstanovleniy 3 0 0 0 0 0 0 NULL Piramida Derev'yaniy Zruynovana 0
125 Povcha Punkt triangulatsii Nevstanovleniy 3 0 0 0 0 0 0 NULL Piramida Derev'yaniy Zruynovana 0
126 Piratin Punkt triangulatsii Nevstanovleniy 2 0 0 0 25 51 0 NULL Signal Metaleviy Ciluj 0
12122 а��БаНаО б���АаНаГб�Лб����/td> аНаЕаВб��АаНаОаВаЛаЕаНаИаЙ 0 0 0 0
Отредактированно rt2517 (05.05.2010 20:08:42)
Неактивен

А Вы вставляете из какого клиента? Может, в базе данные битые?
Неактивен
добавлял кирилицу в БД с помощю phpmyadmin
Неактивен

Имеет смысл добавлять из работающего приложения (например, Вашего) ![]()
Неактивен
через html форму и php скрит?
Неактивен

Можно просто через сценарий PHP, без формы. Настроить phpMyAdmin — тяжелая
работа. Куда проще воспользоваться готовым нормальным клиентом или написать
свой небольшой сценарий.
Неактивен