|
|
|
| имеется табличка subsection в базе данных
в которой такие даные как:
[code
subsection_id int unsigned not null auto_inrement primary key
subcection_name char(80) not null,
section_id in unsignet null default[/code]
как сделать поиск по subsection_name???
<?php
/* Соединение, выбор БД */
$link = mysql_connect("localhost", "root", "qwerty")
or die("Не соединилось!!!");
print "Соединение успешно";
mysql_select_db("books") or die("Не найдена БД");
/* Выполнение SQL запроса */
$query = "SELECT subsection_name FROM subsection";
$result = mysql_query($query) or die("Запрос ошибочный");
/* Печать результатов в HTML */
print "<table>\n";
/* Освобождение памяти, занятой результатом запроса */
mysql_free_result($result);
/* Закрытие соединения */
mysql_close($link);
?>
|
| |
|
|
|
|
|
|
|
для: jelenad
(22.04.2009 в 19:32)
| | а входные параметры поиска где? | |
|
|
|
|
|
|
|
для: Trianon
(22.04.2009 в 19:41)
| | входные параметры???? которые мы вводим для поиска?? | |
|
|
|
|
|
|
|
для: jelenad
(22.04.2009 в 19:45)
| | ну да.
Надо же знать, что искать. | |
|
|
|
|
|
|
|
для: Trianon
(22.04.2009 в 20:09)
| |
$subsection_name=$_POST['subsection_name']
if (empty($_POST['subsection_name']))
die ("Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод");
|
правильно?? | |
|
|
|
|
|
|
|
для: jelenad
(22.04.2009 в 20:22)
| |
$sn = "'" . mysql_escape_string($subsection_name) . "'";
$query = "SELECT * FROM subsection WHERE `subsection_name` = $sn";
|
| |
|
|
|
|
|
|
|
для: Trianon
(22.04.2009 в 20:28)
| | пишет только : Соединение успешно и всё но не неходит :( | |
|
|
|
|
|
|
|
для: jelenad
(22.04.2009 в 20:31)
| | результат запроса нужно вывести.
Судя по некоторым Вашим темам, Вы это делать умеете. | |
|
|
|
|
|
|
|
для: Trianon
(22.04.2009 в 20:33)
| |
<?php
$sn = "'" . mysql_escape_string($subsection_name) . "'";
$query = "SELECT * FROM subsection WHERE `subsection_name` = $sn";
/* Соединение, выбор БД */
$link = mysql_connect("localhost", "root", "qwerty")
or die("Не соединилось!!!");
print "Соединение успешно";
mysql_select_db("books") or die("Не найдена БД");
/* Выполнение SQL запроса */
$query = "SELECT subsection_name FROM subsection";
$result = mysql_query($query) or die("Запрос ошибочный");
$res = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($res))
{
echo " <tr> ";
echo " <td>".$row['subsection_name']."</td>";
echo "</tr>";
}
/* Освобождение памяти, занятой результатом запроса */
mysql_free_result($result);
/* Закрытие соединения */
mysql_close($link);
?>
|
так да ??? | |
|
|
|
|
|
|
|
для: jelenad
(22.04.2009 в 20:39)
| | и опять отсутствуют теги <table> | |
|
|
|
|
|
|
|
для: Trianon
(22.04.2009 в 20:55)
| |
<table border="0">
<?php
$sn = "'" . mysql_escape_string($subsection_name) . "'";
$query = "SELECT * FROM subsection WHERE `subsection_name` = $sn";
/* Соединение, выбор БД */
$link = mysql_connect("localhost", "root", "qwerty")
or die("Не соединилось!!!");
print "Соединение успешно";
mysql_select_db("books") or die("Не найдена БД");
/* Выполнение SQL запроса */
$query = "SELECT subsection_name FROM subsection";
$result = mysql_query($query) or die("Запрос ошибочный");
$res = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($res))
{
echo " <tr> ";
echo " <td>".$row['subsection_name']."</td>";
echo "</tr>";
}
/* Освобождение памяти, занятой результатом запроса */
mysql_free_result($result);
/* Закрытие соединения */
mysql_close($link);
?>
</table>
|
он выводит что у меня есть в табличке а не производит поиск.....даже если я введу запись которой нет то он все равно выводит одну и туже запись
Соединение успешно
dss | |
|
|
|
|
|
|
|
для: jelenad
(22.04.2009 в 21:02)
| | интересно, какой из двух написанных в коде SQL-запросов Вы считаете правильным? | |
|
|
|
|
|
|
|
для: Trianon
(22.04.2009 в 21:10)
| |
<table border="0">
<?php
$link = mysql_connect("localhost", "root", "qwerty")
or die("Не соединилось!!!");
print "Соединение успешно";
mysql_select_db("books") or die("Не найдена БД");
$sn = "'" . mysql_escape_string($subsection_name) . "'";
$query = "SELECT * FROM subsection WHERE `subsection_name` = $sn";
$result = mysql_query($query) or die("Запрос ошибочный");
while($row = mysql_fetch_array($result))
{
echo " <tr> ";
echo " <td>".$row['subsection_name']."</td>";
echo "</tr>";
}
?>
</table>
|
что здесь не правильно???? :( | |
|
|
|
|
|
|
|
для: jelenad
(22.04.2009 в 23:21)
| | >что здесь не правильно???? :(
Здесь отсутствует Ваш фрагмент (22.04.2009 в 20:22)
и поэтому оказывается неопределенной переменная $subsection_name | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 09:02)
| | ошибка: 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
<html>
<head>
<title>Поиск подраздела</title>
</head>
<body>
<table border="0">
<?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>";
}
?>
</table>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: jelenad
(23.04.2009 в 12:18)
| |
<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>
|
| |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 14:05)
| | выдает туже ошибку в синтаксе
ошибка: 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 | |
|
|
|
|
|
|
|
для: jelenad
(23.04.2009 в 14:08)
| | Еще разок возьмите код. Я исправил кое-что. | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 14:17)
| | вроде работает
но если мы вводим например название которого нет в колонке то тогда он не выдаёт ответ: такой записи нету.... как ето сделать??? | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 14:17)
| | у меня проблемка если я хочу добавить в колонку что то на русском языке то он мне выдаёт ошибку
Connected successfully
Ошибка при выполнении запроса
INSERT INTO subsection (subsection_name) VALUES ('спр')
Incorrect string value: '\xF1\xEF\xF0' for column 'subsection_name' at row 1
и если я задаю на поиск в колонке и ввожу русские слова для поиска он тоже ругается
Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '=' | |
|
|
|
|
|
|
|
для: jelenad
(23.04.2009 в 14:51)
| | нужно задавать кодировку клиента при работе с БД
mysql_query('SET NAMES 'cp1251');
после выбора БД mysql_select_db(...) | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 15:08)
| | mysql_query("SET CHARACTER SET 'cp1251'", $link); я так добавила у меня он выполняет запрос н добавлениезаписи в колонку но при просмотре содержимого в базе данных вместо этого слова там: ёрьшЭ хотя я вводила слово "самит"
html>
<?php
$link = mysql_connect("localhost", "root", "qwerty")
or die("Could not connect: " . mysql_error());
print ("Connected successfully <br>");
?>
<head>
<title>Программа добавления нового подраздела(файл insert_subsection.php)</title>
</head>
<body>
<?php
if (empty($_POST['subsection_name']))
die ("Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод");
$subsection_name = $_POST['subsection_name'];
$subsection_name = trim ( $subsection_name );
$subsecton_name = addslashes ( $subsection_name );
$db = "books";
if ( !$link ) die ("Невозможно подключение к MySQL");
mysql_select_db ( $db ) or die ("Невозможно открыть $db");
mysql_query("SET CHARACTER SET 'cp1251'", $link);
$query = "INSERT INTO subsection (subsection_name) VALUES ('".$subsection_name."')";
$result = mysql_query ( $query );
if ($result) echo "Подраздел добавлен в базу данных.";
else echo "Ошибка при выполнении запроса <br>$query<br>". mysql_error();
?>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: jelenad
(23.04.2009 в 14:51)
| |
$res = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($res) == 0)
echo 'нет такой записи';
else
{
echo '<table border="0">';
while($row = mysql_fetch_array($res))
{
echo " <tr> ";
echo " <td>".$row['subsection_name']."</td>";
echo "</tr>";
}
echo "</table>";
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 15:11)
| | если спрашиваю на поиск англ буквами той записи которой нет в колонке работает а вот если пищу русскими то он все рано ругается :( Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
<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());
mysql_query("SET CHARACTER SET 'cp1251'", $link);
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());
if(mysql_num_rows($res) == 0)
echo 'нет такой записи';
else
{
echo '<table border="0">';
while($row = mysql_fetch_array($res))
{
echo " <tr> ";
echo " <td>".$row['subsection_name']."</td>";
echo "</tr>";
}
echo "</table>";
}
?>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: jelenad
(23.04.2009 в 15:47)
| | mysql_query("SET CHARACTER SET 'cp1251'", $link);
Откуда взялась переменная $link? | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 17:03)
| | хорошо теперь всё нормально когда я удалила $link
но проблема в mysql осталась когда я в mysql задаю select subsecion_name from subsection; то он показывает всё равно не корректно введенные слова ??? вроде бы всё правильно с в mysql нет
html>
<?php
$link = mysql_connect("localhost", "root", "qwerty")
or die("Could not connect: " . mysql_error());
print ("Connected successfully <br>");
?>
<head>
<title>Программа добавления нового подраздела(файл insert_subsection.php)</title>
</head>
<body>
<?php
if (empty($_POST['subsection_name']))
die ("Не все данные введены.<br>
Пожалуйста, вернитесь назад и закончите ввод");
$subsection_name = $_POST['subsection_name'];
$subsection_name = trim ( $subsection_name );
$subsecton_name = addslashes ( $subsection_name );
$db = "books";
if ( !$link ) die ("Невозможно подключение к MySQL");
mysql_select_db ( $db ) or die ("Невозможно открыть $db");
mysql_query("SET CHARACTER SET 'cp1251'");
$query = "INSERT INTO subsection (subsection_name) VALUES ('".$subsection_name."')";
$result = mysql_query ( $query );
if ($result) echo "Подраздел добавлен в базу данных.";
else echo "Ошибка при выполнении запроса <br>$query<br>". mysql_error();
?>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: jelenad
(23.04.2009 в 17:39)
| | Вероятно, слова заносились тогда, когда SET NAMES 'cp1251' еще не был выполнен. | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 18:25)
| | да нет и после таже проблема | |
|
|
|
|
|
|
|
для: jelenad
(23.04.2009 в 18:36)
| | какая кодировка у БД?
Какая кодировка у таблицы? | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 18:38)
| | а как это узнать?? | |
|
|
|
|
|
|
|
для: jelenad
(23.04.2009 в 19:01)
| |
SHOW CREATE DATABASE ИмяБД;
|
SHOW CREATE TABLE ИмяТаблицы;
|
| |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 19:13)
| |
SHOW CREATE DATABASE ИмяБД;
default character set cp1251
|
SHOW CREATE TABLE ИмяТаблицы;
default character set cp1251
|
| |
|
|
|
|
|
|
|
для: jelenad
(23.04.2009 в 20:07)
| | >когда я в mysql задаю select subsecion_name from subsection;
Что значит "задаю в mysql" ? | |
|
|
|
|
|
|
|
для: Trianon
(23.04.2009 в 20:39)
| | я имела ввиду когда я хочу просмотреть какие записи есть в определенной таблице | |
|
|
|
|
|
|
|
для: jelenad
(23.04.2009 в 21:39)
| | и что Вы при этом делаете? | |
|
|
|
|
|
|
|
для: Trianon
(22.04.2009 в 20:33)
| | чего то у меня не получается :( | |
|
|
|