Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
 Аватар для igor1306
0 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 37

Как сделать правильно запрос в базе даних

23.07.2010, 11:29. Показов 2782. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста, как сделать правильно запрос из бази даних чтобы выбирались поля похожие по тэгам (meta_k). Тоесть у меня видео сайт и при переходе на страницу видео, пользователю должны показаться видео похожие по тэгам. Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.07.2010, 11:29
Ответы с готовыми решениями:

Как правильно сделать запрос поиска в базе данных?
Здравствуйте. Подскажите пожалуйста, как решить задачу: Есть таблица БД: tbl_post с объявлениями. Есть поле в этой таблице: ...

Как правильно составить запрос к базе?
Есть таблица produkts. У этой таблицы есть связи "многие ко многим" с 3 другими таблицами "color", "weight",...

Как правильно составить запрос к базе данных?
Здравствуйте. Нужна помощь в составлении запроса к базе данных. Есть некоторая база данных в ней находятся таблицы. Есть одна...

22
 Аватар для Nazz
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
23.07.2010, 12:21
всё очень просто:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
session_start();
include ("конфигурационный_файл.php");
$meta_k=SESSION['meta_k'];//получаем запрос по какому искать
$query = "SELECT * FROM таблица WHERE `meta_k`='$meta_k'";
$result=mysql_query($query); 
for ($i=0;$i<mysql_num_rows($result);$i++)
{
$r=mysql_fetch_array($result);
$video=$r['video'];//достаём данніе с таблицы
echo $video;
mysql_query($query) or die(mysql_error());
}
?>
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
23.07.2010, 12:24
Не большая ошибочка:
Цитата Сообщение от Nazz Посмотреть сообщение
$meta_k=SESSION['meta_k'];//получаем запрос по какому искать
нужно так:
PHP
1
2
3
4
5
<?php
...
$meta_k=$_SESSION['meta_k'];//получаем запрос по какому искать
...
?>
1
 Аватар для Nazz
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
23.07.2010, 12:26
ссори, опечатался((
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
23.07.2010, 12:30
А зачем Вы еще раз делаете запрос в for(){}? И вообще, я считаю, что лучше использовать while
Мой вариант:
PHP
1
2
3
4
5
6
7
8
9
<?php
session_start();
include ("конфигурационный_файл.php");
$meta_k=$_SESSION['meta_k'];//получаем запрос по какому искать
$sql  = "SELECT * FROM таблица WHERE `meta_k`='$meta_k'";
$query = mysql_query($sql); 
while ( $resalt = mysql_fetch_assoc( $query ) )
echo $resalt['video'];
?>
Примерно так.
0
 Аватар для Nazz
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
23.07.2010, 12:31
опечаточка))
PHP
1
2
3
4
5
6
7
8
9
<?php
session_start();
include ("конфигурационный_файл.php");
$meta_k=$_SESSION['meta_k'];//получаем запрос по какому искать
$sql  = "SELECT * FROM таблица WHERE `meta_k`='$meta_k'";
$query = mysql_query($sql); 
while ( $resalt = mysql_fetch_array( $query ) )
echo $r['video'];
?>
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
23.07.2010, 12:34
Я исправил сам

Добавлено через 57 секунд
В Вашем исправлении моего так же есть опечаточка

Цитата Сообщение от Nazz Посмотреть сообщение
while ( $resalt = mysql_fetch_array( $query ) )
echo $r['video'];
0
 Аватар для igor1306
0 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 37
23.07.2010, 13:02  [ТС]
Спасибо! Но у меня чегото вылетает ошибка : Warning: session_start(): Cannot send session cookie - headers already sent by (output started at z:\home\localhost\www\blog\view_post.php :34) in z:\home\localhost\www\blog\view_post.php on line 56

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at z:\home\localhost\www\blog\view_post.php :34) in z:\home\localhost\www\blog\view_post.php on line 56

Notice: Undefined index: meta_k in z:\home\localhost\www\blog\view_post.php on line 58
[Денвер: показать возможную причину ошибки]




Посмотрите пожалуйста, может я допустил какую-то ошибку, буду очень благодарен:

PHP
1
2
3
4
5
6
7
8
9
10
<?php 
session_start();
include ("blocks/baza.php");
$meta_k=$_SESSION['meta_k'];//получаем запрос по какому искать
$sql  = "SELECT * FROM data WHERE `meta_k`='$meta_k'";
$query = mysql_query($sql); 
while ( $resalt = mysql_fetch_array( $query ) )
echo $r['video'];
 
?>
0
 Аватар для Pafos
97 / 97 / 17
Регистрация: 18.10.2009
Сообщений: 453
23.07.2010, 13:40
Цитата Сообщение от igor1306 Посмотреть сообщение
Warning: session_start()
session_start() - поставь на самую первую строку

Добавлено через 6 минут
Цитата Сообщение от igor1306 Посмотреть сообщение
Notice: Undefined index
...открой php.ini и найди такую стро4ку:
php_flag error_reporting 0
долЖен стоять "0"
0
 Аватар для Nazz
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
23.07.2010, 14:12
Цитата Сообщение от igor1306 Посмотреть сообщение
Warning: session_start():
первый вопрос: как вы должны получать значение meta_k. - в даном скрипте.?
(сессии ето для примера я навёл)
0
 Аватар для igor1306
0 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 37
26.07.2010, 14:48  [ТС]
У меня meta_k берётся из базы данных. Я хочу чтобы у меня похожее видео отображалось так как на этом сайте http://smotri.com/video/view/?id=v1446802575f там где похожее видео, приблизительно так! Помогите!
0
 Аватар для Nazz
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
26.07.2010, 15:38
делайте так:
PHP
1
2
3
4
5
6
7
8
<?php 
include ("blocks/baza.php");
$meta_k=film;//плоучаем значение(тег по каком искать) метод может быть : $_POST/$_GET/$_SESSION/$_COCKIES
$sql  = "SELECT * FROM data WHERE `meta_k`='$meta_k'"; //ищим в базе данные
$query = mysql_query($sql); //запрос в базу
while ( $resalt = mysql_fetch_array( $query ) )//проаерчем на наличие результата и выводим данные
echo $r['video'];//выводим данные. для етого можно использовать таблицы, отступы, для оформления того как выводить...
 ?>
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
26.07.2010, 19:44
Nazz,
Цитата Сообщение от Nazz Посмотреть сообщение
SELECT * FROM data WHERE `meta_k`='$meta_k'
этот запрос пройдет если в meta_k только одно слово. Если много, то нужен примерно такой запрос:
SQL
1
SELECT * FROM `data` WHERE `meta_k` LIKE '%$meta_k%'
Этот запрос должен вывести все записи, в которых в поле mrta_k присутствует хотя бы это слово или часть этого слова.
0
 Аватар для igor1306
0 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 37
26.07.2010, 20:11  [ТС]
Чего-то всеравно выбивает ошибку! Глянте пожалуйста весь код может быть я допустил ошибку:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<?php
include ("blocks/baza.php"); 
if (isset ($_GET['id'])) {$id = $_GET['id'];}  
 
if (!isset($id)) {$id=1;}
 
/*Проверяем, является ли переменная числом*/
if (!preg_match("|^[\d]+$|", $id)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
 
$result = mysql_query ("SELECT * FROM data WHERE id='$id'", $db);
if (!$result)
{
echo ("<p>Запрос на выборку данных из базы не выполнен! Напишите, пожалуйста, об этом администратору сайта, по адресу: sush-igor@yandex.ru. <br><strong>Код ошибки:</strong></br></p>");
exit(mysql_error());
}
if (mysql_num_rows ($result) > 0)
{
$myrow = mysql_fetch_array ($result);
/*Количество просмотров*/
$new_view = $myrow ["view"] + 1;
$update = mysql_query ("UPDATE data SET view = '$new_view' WHERE id='$id'",$db); 
/* Конец количества просмотров */
}
else 
{
echo ("<p>Информация по запросу не божет быть извлечена, в таблице нет записей</p>");
exit ();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><?php echo $myrow["title"];?></title>
<link href="style.css" rel="stylesheet" type="text/css">
<meta name="description" content="<?php echo $myrow["meta_d"];?>">
<meta name="keywords" content="<?php echo $myrow["meta_k"];?>">
 
</head>
 
<body>
<table width="1024" align="center" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
  <?php include ("blocks/shapka.php"); ?>
  <tr>
    <td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <?php include ("blocks/left.php"); ?>
        <td align="center" valign="top">       
<?php 
printf ("<p class='post_title2'>%s</p><p class='post_add'>Автор: %s</p><p class='post_add'>Дата: %s</p><p class='post_add'>Количество просмотров: %s</p>%s",$myrow ["title"],$myrow ["author"],$myrow ["date"],$myrow ["view"],$myrow ["text"]);
 
 
?>
 
<?php 
/*Выборка похожего видео по meta_k*/
$meta_k = $_GET['meta_k'];
$sql  = "SELECT * FROM data WHERE `meta_k` LIKE '%$meta_k%'"; 
$query = mysql_query($sql); 
while ( $resalt = mysql_fetch_array( $query ) )
echo $r['video'];
 
 
 
?>
 
 
<form action="vote_res.php" method="post" name="vv" target="_blank">
<p class="rating">Оцените видео: 1<input name="score" type="radio" value="1"> 2 <input name="score" type="radio" value="2"> 3 <input name="score" type="radio" value="3"> 4 <input name="score" type="radio" value="4"> 5 <input name="score" type="radio" value="5">&nbsp;&nbsp;&nbsp;<input name="submit" type="submit" value="Оценить"><input name="id" type="hidden" value="<?php echo "$id";?>"></p>
 
 
</form>
 
<?php
 
 
echo "<p class='post_comment'>Комментарии</p>";
 
$result3 = mysql_query ("SELECT * FROM comments WHERE post='$id'",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);
 
do
{
printf ("<div class='post_div'><p class='post_comment_add'>Комментарий добавил(а): <strong>%s</strong> <br> Дата: %s </p><p class='post_comment_text'>%s</p></div>",$myrow3 ["author"], $myrow3 ["date"], $myrow3 ["text"]);  
}
 
while ($myrow3 = mysql_fetch_array($result3));
}
 
$result4 = mysql_query ("SELECT img FROM comments_setting",$db);
$myrow4 = mysql_fetch_array($result4);  
?>
 
<p class="post_comment">Добавить комментарий</p>
<form action="comment.php" method="post" name="form_com">
<p class="post_comment_text"><label>Ваше имя: </label><input name="author" type="text" size="40" maxlength="40"></p>
<p class="post_comment_text"><label>Ваш комментарий: </label><br><textarea name="text" cols="43" rows="4"></textarea></p>
 
<p class="post_comment_text">Введите суму чисел с картинки </p>
<p style="text-align:left"><img style='margin-top:15px;' src="<?php echo $myrow4["img"];?>" width="80" height="40">
  <input style='margin-bottom:17px;' name="pr" type="text" size="5" maxlength="5"></p> 
  <input name="id" type="hidden" value="<?php echo $id;?>">
<p class="post_comment_text"><input name="sub_com" type="submit" value="Комментировать"></p>
</form>
</td>
        
      </tr>
    </table></td>
  </tr>
 <?php include ("blocks/nuz.php"); ?> 
</table>
 
</body>
</html>
0
Благотворец
 Аватар для arvitaly
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
26.07.2010, 21:25
код ошибки
0
 Аватар для igor1306
0 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 37
26.07.2010, 22:26  [ТС]
Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63

Notice: Undefined variable: r in z:\home\localhost\www\blog\view_post.php on line 63
0
Благотворец
 Аватар для arvitaly
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
26.07.2010, 22:35
PHP
1
2
while ( $resalt = mysql_fetch_array( $query ) )
echo $r['video'];
в цикле присваиваешь значение одной переменной, а выводишь другую несуществующую вместо $r пиши $resalt
0
 Аватар для igor1306
0 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 37
26.07.2010, 23:41  [ТС]
Исправил! А сейчас высветливается ошибка:

Notice: Undefined index: meta_k in z:\home\localhost\www\blog\view_post.php on line 59
0
Благотворец
 Аватар для arvitaly
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
26.07.2010, 23:44
значит в массиве $_GET нет такого индекса значит ты не передаешь этот параметр в браузере
0
 Аватар для igor1306
0 / 0 / 0
Регистрация: 20.07.2010
Сообщений: 37
26.07.2010, 23:51  [ТС]
И что мне делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.07.2010, 23:51
Помогаю со студенческими работами здесь

Как сделать запрос к базе Firebird?
Имеется база данных (*.gbd), которая подключена к С# подключаюсь к БД следующим образом: FbConnection fb...

Как сделать запрос к базе данных?
есть таблицы: 1. операции с товарами(код,договор,дата,товар,количество,единица,тип операции) 2. операции -(код,тип операции)...

Как сделать правильный ООП-запрос к базе?
Всем коллегам привет! Я работаю с ООП-файлом &quot;MysqliDb.php&quot; из &quot;www.github.com&quot;. Я думаю многие с ним работают. Удобная штука -...

Можно ли сделать как бы двойной SQL запрос к базе?
Мне нужно сначала выполнить выборку всех записей из БД и отсортировать их по дате, а уже потом с отсортированными записями сделать distinct...

Как правильно сделать вывод 404 ошибки, если id в базе не существует
Здравствуйте. Никак не могу побороть свое незнание php.. Подскажите. Вот есть подобныестраницы: site.ru/part.php?id=34 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru