Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 08.10.2011, 11:05   #1
xew
Пользователь
 
Регистрация: 29.05.2010
Сообщений: 27
Репутация: 10
Восклицание mysql_fetch_array() expects parameter 1 to be resource, boolean given in

Здраствуйте реализовал поиск с постраничной навигацией но когда поиск не найден выдает ошибку Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\Site\view_sea rch.php on line 77

вот код:

Код:

$db = mysql_connect ('localhost', 'root');
					mysql_select_db ('modulet', $db);

					if (isset($_POST['submit_s']))
					{
					$submit_s = $_POST['submit_s'];
					}

					if (isset($_GET['search']))
					{
					$search = $_GET['search'];
					}

					if (isset($submit_s))
					{
					if (empty($search))
					{
					exit ("<div id='p2'>Поисковой запрос не введен.</div>
					<form>
					<div id='spacebar'><input type='button' value='Попробовать еще раз' 
					onclick='history.back()'></div><br><br><br><br><br><br><br>
					</form>");
					}
					$search = trim($search);
					$search = stripslashes($search);
					$search = htmlspecialchars($search);
					}

								

					$result77 = mysql_query("SELECT str FROM options", $db);
					$myrow77 = mysql_fetch_array($result77);
					$num = $myrow77["str"];
					// Извлекаем из URL текущую страницу
					@$page = $_GET['page'];
					// Определяем общее число сообщений в базе данных
					$result00 = mysql_query("SELECT COUNT(*) FROM org WHERE title like '%$search%' or name like '%$search%' or number like '%$search%' or adres like '%$search%'");
					$temp = mysql_fetch_array($result00);
					$posts = $temp[0];
					// Находим общее число страниц
					$total2 = (($posts - 1) / $num) + 1;
					$total2 =  intval($total2);
					// Определяем начало сообщений для текущей страницы
					$page = intval($page);
					// Если значение $page меньше единицы или отрицательно
					// переходим на первую страницу
					// А если слишком большое, то переходим на последнюю
					if(empty($page) or $page < 0) $page = 1;
					  if($page > $total2) $page = $total2;
					// Вычисляем начиная с какого номера
					// следует выводить сообщения
					$start = $page * $num - $num;
					// Выбираем $num сообщений начиная с номера $start
		
						

					$result = mysql_query ("SELECT * FROM org WHERE title like '%$search%' or name like '%$search%' or number like '%$search%' or adres like '%$search%' ORDER BY id LIMIT $start, $num", $db);
					$myrow = mysql_fetch_array ($result);	
					if ($search == '') {		
					echo "<div id='p2'>Запрос не введен.</div>";
					echo "<form>
					<div id='spacebar'><input type='button' value='Попробовать еще раз' 
					onclick='history.back()'></div><br><br><br><br><br><br><br>
					</form>";
					}		
					else
					{
					if ($result == 0){
					echo "<div id='p2'>Информация по Вашему запросу не найдена.</div>";
					echo "<form>
					<div id='spacebar'><input type='button' value='Попробовать еще раз' 
					onclick='history.back()'></div><br><br><br><br><br><br><br>
					</form>";
					}
					do
					{
						echo "<div id='org_back'><p class='middle'><a href='view_org.php?id=".$myrow['id']."'>".$myrow['name']."</a></p></div>";
					}
					while ($myrow = mysql_fetch_array ($result));
					}
					


					
					
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = "<div id='left'></div><div id='center'><p class='middle'><a href=view_search.php?search=".$search."&page=". ($page - 1) .">«</a></p></div><div id='right'></div>";
// Проверяем нужны ли стрелки вперед
if ($page != $total2) $nextpage = "<div id='left'></div><div id='center'><p class='middle'><a href=view_search.php?search=".$search."&page=". ($page + 1) .">»</a></p></div><div id='right'></div>";


Красным выделена 77я строка на которую ссылается ошибка...

А через die(mysql_error()); выводит вот такую ошибку:
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 '-9, 9' at line 1

Помогите исправить )

Последний раз редактировалось Вадим Мошев; 12.01.2017 в 23:13.
xew вне форума   Ответить с цитированием
Старый 08.10.2011, 11:53   #2
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 2,975
Репутация: 908
По умолчанию

Цитата:
Сообщение от xew Посмотреть сообщение
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\Site\view_sea rch.php on line 77
...
А через die(mysql_error()); выводит вот такую ошибку:
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 '-9, 9' at line 1
Поставьте перед запросом:
PHP код:
echo "SELECT * FROM org WHERE title like '%$search%' or name like '%$search%' or number like '%$search%' or adres like '%$search%' ORDER BY id LIMIT $start$num"
И вы увидите в конце запроса LIMIT -9, 9 - что явно ошибка.
У вас неверно вычисляется $start.
Andkorol на форуме   Ответить с цитированием
Старый 08.10.2011, 12:23   #3
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
Репутация: 48
По умолчанию

еще не совсем понятно для чего ты используешь одновременно методы GET и POST... если форма отправляет запрос GET, то
PHP код:
if (isset($_POST['submit_s']))
{
$submit_s $_POST['submit_s'];
//переменная не установлена

//условие isset($submit_s) не соблюдается
if (isset($submit_s))
{
if (empty(
$search))
{
exit (
"<div id='p2'>Поисковой запрос не введен.</div>
<form>
<div id='spacebar'><input type='button' value='Попробовать еще раз'
onclick='history.back()'></div><br><br><br><br><br><br><br>
</form>"
);
}
$search trim($search);
$search stripslashes($search);
$search htmlspecialchars($search);

если форма отправляет запрос POST, то
PHP код:
@$page $_GET['page']; //переменная $page пустая
$page intval($page); //получаем числовое значение переменной, в данном случае это ноль
if(empty($page) or $page 0$page 1//условие не соблюдается
if($page $total2$page $total2//условие не соблюдается 
Mortimoro вне форума   Ответить с цитированием
Старый 08.10.2011, 12:23   #4
xew
Пользователь
 
Регистрация: 29.05.2010
Сообщений: 27
Репутация: 10
По умолчанию

Спасибо уже сам допер )) исправил ))
xew вне форума   Ответить с цитированием
Ответ



Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
array_key_exists и mysql_fetch_array Che Guevara PHP 8 23.08.2011 16:38
Warning: mysql_fetch_array() empireofgods Помощь студентам 1 22.05.2011 13:45
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in.... Andruha10 PHP 13 12.12.2010 01:53
mysql_fetch_array Rusl92 PHP 5 28.08.2010 22:45
Проблема с mysql_fetch_array vetal5 PHP 2 08.11.2008 17:18




01:49.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru