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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2011, 11:05   #1
xew
Пользователь
 
Регистрация: 29.05.2010
Сообщений: 27
Восклицание 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 в 22:13.
xew вне форума Ответить с цитированием
Старый 08.10.2011, 11:53   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от 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
По умолчанию

еще не совсем понятно для чего ты используешь одновременно методы 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
По умолчанию

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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 00:53
mysql_fetch_array Rusl92 PHP 5 28.08.2010 22:45
Проблема с mysql_fetch_array vetal5 PHP 2 08.11.2008 16:18