
Пример 1:
$result = mysql_query ("SELECT * FROM news WHERE news.text='$search' UNION SELECT * FROM video WHERE video.text='$search'",$db);
Пример 2:
$result = mysql_query("SELECT * FROM news WHERE MATCH(text) AGAINST('$search') UNION SELECT * FROM video WHERE MATCH(text) AGAINST('$search')",$db);
Пример 3:
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view,comments FROM news WHERE MATCH(text) AGAINST('$search') UNION ALL (SELECT id,title,description,date,author,mini_img,view,comments FROM video WHERE MATCH(text) AGAINST('$search'))",$db);WHERE MATCH(text) AGAINST('$search')
Пример 4:
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view,comments FROM news WHERE MATCH(text) AGAINST('$search') UNION ALL SELECT id,title,description,date,author,mini_img,view,comments FROM video WHERE MATCH(text) AGAINST('$search')",$db);
Пример 5:
$result = mysql_query("SELECT id,title,description,date,author,mini_img,view,comments FROM news WHERE MATCH(text) AGAINST('$search') UNION SELECT id,title,description,date,author,mini_img,view,comments FROM video WHERE MATCH(text) AGAINST('$search')",$db);
Пример 6:
<?php $result = mysql_query ("SELECT * FROM `news` WHERE MATCH(`text`) AGAINST('$search') UNION SELECT * FROM `video` WHERE MATCH(`text`) AGAINST('$search')");
Простите за кучу моего мусора, но помощь нереально как нужна, перерыл кучу форумов статьей и всего всего, ничего не нашел, а что нашел пытался сделать под своё все равно ничего не помогает, помогите пожалуйста

Код ошибки:
You have an error in your SQL syntax near 'UNION SELECT * FROM video WHERE video.text='werw'' at line 1
Вот полный код при 1 примере
Спустя 20 минут, 40 секунд (21.07.2010 - 13:07) sergeiss написал(а):
У тебя в строке поиска текста нету, случайно, кавычек? Или другого безобразия?
Покажи лучше нам не в таком виде запрос, как ты сделал, а так (то, что выведет ЭХО, то и покажи):
Покажи лучше нам не в таком виде запрос, как ты сделал, а так (то, что выведет ЭХО, то и покажи):
$sql="тут твой запрос";
echo $sql;
Спустя 5 минут, 10 секунд (21.07.2010 - 13:13) Onehp написал(а):
<?php $result = mysql_query ("SELECT * FROM news, video WHERE text LIKE $search");
//("SELECT text FROM news WHERE text LIKE '$search'
//UNION
//SELECT text FROM coments WHERE text LIKE '$search'");
//("SELECT * FROM `news` WHERE MATCH(`text`) AGAINST('$search')");
//("SELECT * FROM news WHERE MATCH(text) AGAINST('$search')") UNION ("SELECT * FROM video WHERE MATCH(text) AGAINST('$search')");
//("SELECT * FROM news WHERE news.text='$search' UNION SELECT * FROM video WHERE video.text='$search'",$db);
/*("SELECT *
FROM news
WHERE MATCH(text) AGAINST('$search')
UNION
SELECT *
FROM video
WHERE MATCH(text) AGAINST('$search')
");*/
//("SELECT id,title,description,date,author,mini_img,view,comments FROM news WHERE MATCH(text) AGAINST('$search') UNION ALL (SELECT id,title,description,date,author,mini_img,view,comments FROM video WHERE MATCH(text) AGAINST('$search'))",$db);WHERE MATCH(text) AGAINST('$search')
//("SELECT id,title,description,date,author,mini_img,view,comments FROM news WHERE MATCH(text) AGAINST('$search') UNION ALL SELECT id,title,description,date,author,mini_img,view,comments FROM video WHERE MATCH(text) AGAINST('$search')",$db);
//("SELECT id,title,description,date,author,mini_img,view,comments FROM news WHERE MATCH(text) AGAINST('$search') UNION SELECT id,title,description,date,author,mini_img,view,comments FROM video WHERE MATCH(text) AGAINST('$search')",$db);
if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору adminmail@mail.ru <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array ($result);
do
{
printf ("<table align='center' class='view_text_title'>
<tr>
<td class='view_text_title1'>
<p class='view_name'><a href='view_news.php?id=%s' class='view_name'><img class='mini' align='left' src='%s'>%s</a></p>
<p class='view_adds'>Автор: %s %s · Комментариев: %s · Просмотров: %s</p></td>
</tr>
<tr>
<td>%s</td>
</tr>
</table><br>",$myrow['id'],$myrow['mini_img'],$myrow['title'],$myrow['author'],$myrow['date'],$myrow['comments'],$myrow['view'],$myrow['description']);
}
while ($myrow = mysql_fetch_array ($result));
}
else
{
echo "<p>Ничего не нашлось</p>";
exit();
}
?>
sergeiss
Извини, я вас немного не понял) выложил кусочек моего кода..
Спустя 24 минуты, 19 секунд (21.07.2010 - 13:37) sergeiss написал(а):
Перед вот этим кодом
размести вот такой код
и покажи, что выдаст браузер
PS. А использование цикла do-while при выборке данных говорит о том, что тебе надо забыть всё, что ты знал, и идти вот сюда http://phpforum.ru/index.php?showtopic=21916, причем срочно!!!
$result = mysql_query ("SELECT * FROM news WHERE news.text='$search' UNION SELECT * FROM video WHERE video.text='$search'",$db);
размести вот такой код
$sql = "SELECT * FROM news WHERE news.text='$search' UNION SELECT * FROM video WHERE video.text='$search'";
echo $sql;
и покажи, что выдаст браузер
PS. А использование цикла do-while при выборке данных говорит о том, что тебе надо забыть всё, что ты знал, и идти вот сюда http://phpforum.ru/index.php?showtopic=21916, причем срочно!!!
Спустя 4 минуты, 44 секунды (21.07.2010 - 13:42) Onehp написал(а):
SELECT * FROM news WHERE news.text='Eminem' UNION SELECT * FROM video WHERE video.text='Eminem'
Запрос на выборку данных из базы не прошел. Напишите об этом администратору adminmail@mail.ru
Код ошибки:
You have an error in your SQL syntax near 'UNION SELECT * FROM video WHERE video.text='Eminem'' at line 1
Вот что показывает браузер
Спустя 11 минут, 16 секунд (21.07.2010 - 13:53) sergeiss написал(а):
А без юниона запросы проходят? Типа такого
или такого?
SELECT * FROM news WHERE news.text='Eminem'
или такого?
SELECT * FROM video WHERE video.text='Eminem'
Спустя 21 минута, 47 секунд (21.07.2010 - 14:15) Onehp написал(а):
sergeiss, Так я не делал, делал так:
Сейчас попробую как вы пишите
("SELECT id,title,description,date,author,mini_img,view,comments FROM news WHERE MATCH(text) AGAINST('$search')");
Сейчас попробую как вы пишите
Спустя 2 минуты, 2 секунды (21.07.2010 - 14:17) Onehp написал(а):
Только вместо Eminem, стоит $search
Спустя 2 минуты, 42 секунды (21.07.2010 - 14:19) Onehp написал(а):
$result = mysql_query ("SELECT * FROM news WHERE news.text='$search'");
Ничего найти не может выводит сообщение что ничего не нашлось..
Спустя 4 минуты, 13 секунд (21.07.2010 - 14:24) sergeiss написал(а):
Получается, что у тебя одиночный запрос проходит, а с юнионом не проходит?
Спустя 2 минуты, 18 секунд (21.07.2010 - 14:26) Onehp написал(а):
sergeiss, Ога

Спустя 6 минут, 27 секунд (21.07.2010 - 14:32) sergeiss написал(а):
Версия БД какая, под какой операционкой находится?
Спустя 2 минуты, 17 секунд (21.07.2010 - 14:35) Onehp написал(а):
2.6.1 Windows
Еще есть новая версия 3.?.? тоже Windows
Еще есть новая версия 3.?.? тоже Windows
Спустя 2 минуты, 48 секунд (21.07.2010 - 14:37) sergeiss написал(а):
Не понял... 2.6.1 - это версия MySQL???
Спустя 6 минут, 34 секунды (21.07.2010 - 14:44) Onehp написал(а):
Добро пожаловать в phpMyAdmin 2.5.6
MySQL 3.23.53-max на localhost как root@localhost
Больше ничего не нашел..
MySQL 3.23.53-max на localhost как root@localhost
Больше ничего не нашел..
Спустя 3 минуты, 18 секунд (21.07.2010 - 14:47) sergeiss написал(а):
http://ru.wikipedia.org/wiki/MySQL - версия 3.23 вышла в начале 2001 года. С тех пор уже появилось много версий... Последняя из которых 5-я с какой-то цифрой.
Возьми нормальную, современную версию БД и работай с ней!!!!!!!!!!!!!!!
Возьми нормальную, современную версию БД и работай с ней!!!!!!!!!!!!!!!
Спустя 1 минута, 10 секунд (21.07.2010 - 14:48) linker написал(а):
Пробуй так
$result = mysql_query ("SELECT * FROM news WHERE news.text like '%$search%'");Либо читай мануал mysql про fulltext search
Спустя 6 минут, 29 секунд (21.07.2010 - 14:55) Onehp написал(а):
Спасибо

Спустя 11 минут, 12 секунд (21.07.2010 - 15:06) sergeiss написал(а):
linker - не отрицая правильности твоего поста замечу, что у ТС древнейшая версия БД. И я не удивлюсь, если там просто не работает ЮНИОН

Спустя 8 минут, 18 секунд (21.07.2010 - 15:14) linker написал(а):
sergeiss, да вполне возможно, видимо не углядел поста, где указывалась версия MySQL
Спустя 18 минут, 44 секунды (21.07.2010 - 15:33) sergeiss написал(а):
linker - развивай наблюдательность
Обсуждение насчет версии БД было как раз перед твоим первым ответом в этой теме и даже в нескольких сообщениях.

Спустя 3 часа, 17 минут, 46 секунд (21.07.2010 - 18:51) Onehp написал(а):
sergeiss, Вы же перенаправили меня на эту статью, стараюсь переделать все под неё, но ничего не выходит, точнее выходит но..
Получается такого рода картина:

Не выводится данные из БД И вместо русских букв каракули, как показано на рисунке, что делать подскажите пожалуйста
<? include ("bloki/bd.php");
$result = mysql_query ("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'");
if (!$result)
{
echo "<p>Запросна выборку данных из базы не прошел. Напишите об этом администратору onahapapokemon@mail.ru. <br> <strong>Код ошибки:</strong></p>";
exit (mysql_error());
}
if (mysql_num_rows ($result) > 0)
{
$myrow = mysql_fetch_array ($result);
}
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><? echo $myrow['title']; ?></title>
<link href="style.css" rel="stylesheet" type="text/css">
<meta name="description" content="<? echo $myrow['meta_d']; ?>">
<meta name="keywords" content="<? echo $myrow['meta_k']; ?>">
</head>
<body>
<table width="780" border="0" align="center" cellpadding="0" cellspacing="0" class="main_border">
<? include ("bloki/header.php"); ?>
<tr>
<td><table width="900" border="0" cellspacing="0" cellpadding="0">
<tr>
<? include ("bloki/left.php"); ?>
<td valign="top">
<? include ("bloki/search_user.php"); ?>
<p class="view_last">Последние новости:</p>
<?
$sql = ("SELECT id,title,description,author,date,mini_img,comments,view FROM `news` ORDER BY date DESC, id DESC LIMIT 5");
$result3 = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);
if (!$result3)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору adminmail@mail.ru <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
$table = "<table border=1 width=90% align=center>\n";
while ($row = mysql_fetch_assoc($result3));
{
$table .= "<tr>\n";
$table .= "<td>".$row['id']."</td>\n";
$table .= "<td>".$row['title']."</td>\n";
$table .= "<td>".$row['description']."</td>\n";
$table .= "<td>".$row['author']."</td>\n";
$table .= "<td>".$row['date']."</td>\n";
$table .= "<td>".$row['mini_img']."</td>\n";
$table .= "<td>".$row['comments']."</td>\n";
$table .= "<td>".$row['view']."</td>\n";
$table .= "</tr>\n";
}
$table .= "</table>\n";
echo $table;
?>
<p align="right"><a class="view_all" href="news.php">Все новости</a></p>
</td>
</tr>
</table></td>
</tr>
<? include ("bloki/footer.php"); ?>
</table>
</body>
</html>
Получается такого рода картина:

Не выводится данные из БД И вместо русских букв каракули, как показано на рисунке, что делать подскажите пожалуйста

Спустя 10 минут, 23 секунды (21.07.2010 - 19:01) Basili4 написал(а):
У тебя кодировка базы скорее всего utf-8 а на стрницу ты пытаешся вывести windows-1251
Спустя 1 час, 59 минут, 38 секунд (21.07.2010 - 21:01) sergeiss написал(а):
Твои красные знаки вопроса говорят о том, что там пустая таблица? Ничего удивительного
Потому что обрати внимание на эту строку, на "типа начало цикла" 
Вроде бы всё верно... Но я тебя уверяю, что в "статье по ссылке" в конце аналогичной строки НЕТУ ТОЧКИ С ЗАПЯТОЙ! Поставив там точку с запятой, ты закрыл цикл. Точнее, он состоит из пустого места....
Плюс к этому, в строках, где ты формируешь таблицу, не нужно писать \n!!! Это тут не требуется.
И еще перед началом цикла не повредит сделать контрольный вывод количества выбранных строк, хотя бы на время разработки скрипта.


while ($row = mysql_fetch_assoc($result3));
Вроде бы всё верно... Но я тебя уверяю, что в "статье по ссылке" в конце аналогичной строки НЕТУ ТОЧКИ С ЗАПЯТОЙ! Поставив там точку с запятой, ты закрыл цикл. Точнее, он состоит из пустого места....
Плюс к этому, в строках, где ты формируешь таблицу, не нужно писать \n!!! Это тут не требуется.
И еще перед началом цикла не повредит сделать контрольный вывод количества выбранных строк, хотя бы на время разработки скрипта.
echo mysql_num_rows( $result3 ).'<br>';
Спустя 13 часов, 52 минуты, 50 секунд (22.07.2010 - 10:54) Onehp написал(а):
Basili4, А как это исправить?)

Вот что получается, как можно красиво вывести новости? И сделать русские слова и буквы, еще раз прошу прощения

Вот что получается, как можно красиво вывести новости? И сделать русские слова и буквы, еще раз прошу прощения
