найти и исправить ошибку в поиске по колонке??

Статус
В этой теме нельзя размещать новые ответы.

jelend

Новичок
найти и исправить ошибку в поиске по колонке??

имеется табличка subsection в базе данных
в которой такие даные как:


subsection_id int unsigned not null auto_inrement primary key
subcection_name char(80) not null,
section_id in unsignet null default


как сделать поиск по subsection_name???
PHP:
<?php 
// Соединяемся с базой данных 
$hostname = "localhost"; // название/путь сервера, с MySQL 
$username = "root"; // имя пользователя  
$password = "qwerty"; // пароль пользователя  $dbName = "books"; // название базы данных 
$table = "subsection"; // название таблицы 
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение"); mysql_select_db($dbName) or die (mysql_error());
$query = "SELECT * FROM $table  
WHERE `subsection_name` = $sn";
 $sn = "'" . mysql_escape_string($subsection_name) . "'"; 
 $res = mysql_query($query) or die(mysql_error()); 
while($row = mysql_fetch_array($res))
 {
 echo " <tr> ";
 echo " <td>".$row['subsection_name']."</td>"; 
echo "</tr>"; 
} 
 ?>
Выдаёт ошибку: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2
 

jelend

Новичок
тоесть ошибка сдесь: $query = "SELECT * FROM $table
WHERE `subsection_name` = $sn";
 

Dl

Новичок
Ошибка не в запросе, а в последовательности действий
 

jelend

Новичок
просто я как в пхп туак и в mysql совсем "зелёненькая" некогда раньше не занималась. поэтому и не онемаю почемк не работает.... :( а где тогда ошибка???
 

Фанат

oncle terrible
Команда форума
PHP:
$password = "qwerty"; // пароль пользователя  $dbName = "books"; // название базы данных
эта строчка выполняется так же, как здесь написано, или в скрипте их две?
 

jelend

Новичок
$password = "qwerty"; // пароль пользователя
$dbName = "books"; // название базы данных

ну сначало идет соединение с mysql
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
а потом идет соединение с базой данных
mysql_select_db($dbName) or die (mysql_error());
 

Фанат

oncle terrible
Команда форума
диагноз можно было еще раньше поставить, по вопросительным знакам =)

-~{}~ 23.04.09 14:08:

надо посмотреть, кстати, как симм оффтопик делает

о!

-~{}~ 23.04.09 14:12:

строчку, которая с $sn начинается, переставить выше.
 

Фанат

oncle terrible
Команда форума
можно было и самостоятельно подумать.
если на эти строчки не как на шаманские заклинания смотреть, а попытаться найти в них смысл
 

jelend

Новичок
<html>
<head>
<title>Поиск подраздела</title>
</head>
<body>
<?php
error_reporting(E_ALL);
// Соединяемся с базой данных
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя
$password = "qwerty"; // пароль пользователя
$dbName = "books"; // название базы данных
$table = "subsection"; // название таблицы
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
mysql_select_db($dbName) or die (mysql_error());

if (empty($_POST['subsection_name']))
die ("Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод");

$subsection_name=$_POST['subsection_name'];
$sn = "'" . mysql_escape_string($subsection_name) . "'";

$query = "SELECT * FROM $table
WHERE `subsection_name` = $sn";

$res = mysql_query($query) or die(mysql_error());

echo '<table border="0">';
while($row = mysql_fetch_array($res))
{
echo " <tr> ";
echo " <td>".$row['subsection_name']."</td>";
echo "</tr>";
}
echo "</table>";

?>

</body>
</html>
вот так
 

jelend

Новичок
да только теперь проблемка сесли я ввожу русские слова на поиск в колонке он ругается
Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
 

phprus

Moderator
Команда форума
jelend
А это проблемы с кодировками. Об их решении есть очень много тем в подфоруме "PHP & Mysql"
 

jelend

Новичок
я вставила после mysql_select_db($dbName) or die (mysql_error()); это
mysql_query("SET CHARACTER SET 'cp1251'", $link); но всё равно не работает
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху