|
|
|
| Здраствуйте, помогите пожалуйста в работоспособности запроса.
Делаю запрос по названию (текстовое, уникальное).Название пункта, по котором делается запрос, полностью совпадает с названием в БД (поле в БД - 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
Обычный SELECT
$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";
|
дает такой результат:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0 | |
|
|
|
|
|
|
|
для: romerort
(03.05.2010 в 13:57)
| |
<?
...
foreach($Line as $col_value);
|
уберите точку с запятой | |
|
|
|
|
|
|
|
для: root
(03.05.2010 в 14:11)
| | спасибо, убрал, запрос выполняется. Но никак не работает запрос findname.php. В БД поменял названия по которым ищу на латынь (например Dubno) и не работает - "Ничего ненайдено"
Через phpmyadmin такой запрос работает:
SELECT *
FROM Punkti
WHERE NazvaPunktu = 'Dubno'
|
| |
|
|
|
|
|
|
|
для: romerort
(03.05.2010 в 16:44)
| | так у вас нигде и не реализован вывод результата
<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 "Ничего не найдено"; else{
$data = mysql_fetch_assoc($result);
var_dump($data);
}
mysql_close ( $link );
?>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: Gendalf
(03.05.2010 в 17:02)
| | к сожалению тоже самое | |
|
|
|
|
|
|
|
для: romerort
(03.05.2010 в 17:14)
| | а что выдает на этот раз? | |
|
|
|
|
|
|
|
для: Gendalf
(03.05.2010 в 17:35)
| | Ничего не найдено | |
|
|
|
|
|
|
|
для: romerort
(03.05.2010 в 18:20)
| | Нашел причину )
Вы в форме указали метод POST, а сами ищите переменную в GET.
И вобще во всех скриптах пишите первой строкой
<?php
error_reporting(E_ALL);
|
Чтобы видеть все ошибки, а не гадать что да как. | |
|
|
|
|
|
|
|
для: Gendalf
(03.05.2010 в 18:26)
| | Gendalf большое спасибо! Работает.
Осталось разобратся с кодировками, чтобы работало и с кирилицей... | |
|
|
|