Задавайте вопросы, мы ответим
Вы не зашли.
Здраствуйте, помогите пожалуйста в работоспособности запроса.
Делаю запрос по названию (текстовое, уникальное),название пункта, по котором делается запрос, полностью совпадает с названием в БД (поле в БД - 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 — тяжелая
работа. Куда проще воспользоваться готовым нормальным клиентом или написать
свой небольшой сценарий.
Неактивен