Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не работает запрос
 
 автор: romerort   (03.05.2010 в 13:57)   письмо автору
 
 

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

  Ответить  
 
 автор: root   (03.05.2010 в 14:11)   письмо автору
 
   для: romerort   (03.05.2010 в 13:57)
 

<?
...
foreach(
$Line as $col_value);

уберите точку с запятой

  Ответить  
 
 автор: romerort   (03.05.2010 в 16:44)   письмо автору
 
   для: root   (03.05.2010 в 14:11)
 

спасибо, убрал, запрос выполняется. Но никак не работает запрос findname.php. В БД поменял названия по которым ищу на латынь (например Dubno) и не работает - "Ничего ненайдено"
Через phpmyadmin такой запрос работает:

SELECT *
FROM Punkti
WHERE NazvaPunktu = 'Dubno'

  Ответить  
 
 автор: Gendalf   (03.05.2010 в 17:02)   письмо автору
 
   для: 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 == ) echo "Ничего не найдено"; else{
 
$data mysql_fetch_assoc($result);
 
var_dump($data);
}
mysql_close $link ); 
?> 
</body> 
</html>

  Ответить  
 
 автор: romerort   (03.05.2010 в 17:14)   письмо автору
 
   для: Gendalf   (03.05.2010 в 17:02)
 

к сожалению тоже самое

  Ответить  
 
 автор: Gendalf   (03.05.2010 в 17:35)   письмо автору
 
   для: romerort   (03.05.2010 в 17:14)
 

а что выдает на этот раз?

  Ответить  
 
 автор: romerort   (03.05.2010 в 18:20)   письмо автору
 
   для: Gendalf   (03.05.2010 в 17:35)
 

Ничего не найдено

  Ответить  
 
 автор: Gendalf   (03.05.2010 в 18:26)   письмо автору
 
   для: romerort   (03.05.2010 в 18:20)
 

Нашел причину )
Вы в форме указали метод POST, а сами ищите переменную в GET.
И вобще во всех скриптах пишите первой строкой


<?php
error_reporting
(E_ALL);


Чтобы видеть все ошибки, а не гадать что да как.

  Ответить  
 
 автор: romerort   (03.05.2010 в 18:34)   письмо автору
 
   для: Gendalf   (03.05.2010 в 18:26)
 

Gendalf большое спасибо! Работает.
Осталось разобратся с кодировками, чтобы работало и с кирилицей...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования