Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2010, 23:10   #1
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию Ошибки в запросе

Доброго времени суток! Только начал изучат PHP+Mysql!!. По курсачу надо сделать БД в милиции.
есть бд, в ней 3 таблицы(people, cars, administrativ) Надо сделать поиск по заданному в форму слову, id одной таблицы заменяется на familia другой. Вообщем собрал из разных кусков, получилось вот:

<html>
...Форма
<?php
$id = $_POST['familia'];
if ($id == ''){
die;
}else{
// данные для связи с БД
$user = ' ';
$host = 'localhost';
$pass = ' ';
$db = 'cars';
$link = mysql_connect($host,$user,$pass);
$bd = mysql_select_db($db);

$sql = ("SELECT people.familia, people.name, people.otch, people.data_rogd, administrativ.data_nar, administrativ.stat, administrativ.№_protokola
FROM people INNER JOIN administrativ ON people.id_men = administrativ.id_men
WHERE people.familia Like '%familia%'");
$res = mysql_query($sql, $link);
$row = mysql_fetch_array($res);
echo "<tr>";
echo "<table border='1'>";
echo "<td>Фамилия</td><td>Имя</td><td>Отчество</td><td>Дата рожд</td><td>Дата нар</td><td>Статья</td><td>Протокол</td></tr>";
echo "<tr>";
echo "<td>".$row['familia']."</td>";
echo "<td>".$row['name']."</td>";
echo "<td>".$row['otch']."</td>";
echo "<td>".$row['data_rogd']."</td>";
echo "<td>".$row['data_nar']."</td>";
echo "<td>".$row['stat']."</td>";
echo "<td>".$row['№_protokola']."</td>";
echo "</tr>";
}

?>
</body>
</html>



само собой выдает ошибку:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\aa.ru\www\index.php on line 27

Подскажите, пож., как исправить и что сделать чтобы было правильно???
ара вне форума Ответить с цитированием
Старый 04.12.2010, 23:18   #2
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
По умолчанию

Ошибка в запросе:
$sql = ("SELECT people.familia, people.name, people.otch, people.data_rogd, administrativ.data_nar, administrativ.stat, administrativ.№_protokola
FROM people INNER JOIN administrativ ON people.id_men = administrativ.id_men
WHERE people.familia Like '%familia%'");

Измени запрос на:
$sql = ("SELECT people.*, administrativ.* FROM `people` INNER JOIN administrativ ON people.id_men = administrativ.id_men WHERE people.familia LIKE '%familia%'") or die(mysql_error());

И посмотри какую ошибку выдаст!

B напиши конкретней, что надо сделать!
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851

Последний раз редактировалось kpachbiu; 04.12.2010 в 23:22.
kpachbiu вне форума Ответить с цитированием
Старый 04.12.2010, 23:28   #3
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

Ни чего не выдает! Пустая страница. А надо:
-в форму вводим фамилию
-нажимаем на кнопку
- получаем сформированную таблицу
ара вне форума Ответить с цитированием
Старый 04.12.2010, 23:37   #4
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

Где может быть еще ошибка?
ара вне форума Ответить с цитированием
Старый 05.12.2010, 01:08   #5
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
Радость

PHP код:
<html>
<head></head>
<body>
<form method="POST">
Введите фамилию:<input type="text" name="surname" size="25"><br>
<input type='submit' name='send' value='Посмотреть'>
</form>
<?php
if (isset($_POST['send']) && $_POST['surname'] != '') {
    
        
// данные для связи с БД
        
$link=mysql_connect("localhost","","");
        
mysql_select_db("cars",$link) or die ("Ошибка соединения с БД!");

$row mysql_fetch_array(mysql_query("SELECT people.*, administrativ.* FROM `people` INNER JOIN administrativ ON people.id_men = administrativ.id_men WHERE people.familia LIKE '%familia%'")) or die (mysql_error()); 
 

echo 
"<table border='1'><tr>
<td>Фамилия</td><td>Имя</td><td>Отчество</td><td>Дата рождения</td><td>Дата нарушения</td><td>Статья</td><td>Протокол</td></tr>
<td>"
.$row['familia']."</td>
<td>"
.$row['name']."</td>
<td>"
.$row['otch']."</td>
<td>"
.$row['data_rogd']."</td>
<td>"
.$row['data_nar']."</td>
<td>"
.$row['stat']."</td>
<td>"
.$row['№_protokola']."</td></tr></table>";
}
?>
</body>
</html>
Есть еще ошибки?
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Старый 05.12.2010, 06:51   #6
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

Опять белая пустая страница!
А сам запрос в части :
....WHERE people.familia LIKE '%familia%'.....
ОН Правильный? В смысле нужно использовать people.familia или что-то другое?
ара вне форума Ответить с цитированием
Старый 05.12.2010, 10:59   #7
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
Радость

Какая структура бд?
Что нужно выбрать из базы?
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Старый 05.12.2010, 11:10   #8
ара
Форумчанин
 
Регистрация: 11.04.2007
Сообщений: 106
По умолчанию

БД состоит из 3-х таблиц: people, cars, administrativ они все типа InnoDB. Связь есть.

people:
id_men (in) PK
familia (varch)
name(var)
otch(var)
data_rog(text)
mesto_git(longtext)

cars:
id_cars(int)PK
id_men(int)FK
marka(var)
VIN(var)
data_post(text)
gnz(var)
data_sn(text)

administrativ:
id(int)PK
id_men(int)FK
data_nar(text)
stat(var)
№_protokola(var)



Вводим в форму фамилию и она должна выдать: Фамилия(familia), ИмяОтчество(name, otch), Дата рождения(data_rog), Дата нарушения(data_nar), статья(stat), Протокол( №_protokola).

Последний раз редактировалось ара; 05.12.2010 в 11:24.
ара вне форума Ответить с цитированием
Старый 05.12.2010, 12:52   #9
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

переименуйте №_protocol в protocol
и сделайте запрос
Код:
SELECT p.familia, p.name, p.otch, p.data_rog, a.data_nar, a.stat, a.protocol from people as p left join administrativ as a on. p.id=a.id_men
WHERE .familia LIKE '%$familia%
где $familia- переменная с фамилией
кстати в результатах и запросе вам вообще не нужна вторая таблица cars
ADSoft на форуме Ответить с цитированием
Старый 05.12.2010, 13:02   #10
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
Радость

PHP код:
<html>
<head></head>
<body>
<form method="POST">
Введите фамилию:<input type="text" name="surname" size="25"><br>
<input type='submit' name='send' value='Посмотреть'>
</form><br><br>
<table border='1'><tr>
<td>Фамилия</td><td>Имя</td><td>Отчество</td><td>Дата рождения</td><td>Дата нарушения</td><td>Статья</td><td>Протокол</td></tr>
<?php
if (isset($_POST['send']) && $_POST['surname'] != '') {
    
        
// данные для связи с БД
        
$link=mysql_connect("localhost","","");
        
mysql_select_db("cars",$link) or die ("Ошибка соединения с БД!");

$query mysql_query("SELECT people.*, administrativ.* FROM `people` WHERE people.familia LIKE '%familia%' AND people.id_men=administrativ.id_men")) or die (mysql_error()); 
 
while(
$row mysql_fetch_array($query)){
echo 
"<table border='1'><tr>
<td>Фамилия</td><td>Имя</td><td>Отчество</td><td>Дата рождения</td><td>Дата нарушения</td><td>Статья</td><td>Протокол</td></tr>
<tr><td>"
.$row['people.familia']."</td>
<td>"
.$row['people.name']."</td>
<td>"
.$row['people.otch']."</td>
<td>"
.$row['people.data_rog']."</td>
<td>"
.$row['administrativ.data_nar']."</td>
<td>"
.$row['administrativ.stat']."</td>
<td>"
.$row['administrativ.№_protokola']."</td></tr>";
}
}
?>
</table>
</body>
</html>
Я бы посоветовал изменить название поля №_protokola на просто protokol
Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найдите ошибки в запросе morindos Помощь студентам 2 23.06.2010 22:38
Like в запросе АлёнаP Microsoft Office Access 14 13.04.2009 21:35
Даты в запросе Kinoshka Microsoft Office Access 4 10.04.2009 23:16