[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрос к БД sql
Хакон
Здравствуйте! Нужна помощь.
Я практически ноль в программировании рнр.
Создал сайт на локальном хосте (все работало как положено ). Перенес его на платный. И теперь при запросе к БД из таблиц выбирается только первая строка, а не те что с нужным id.



Спустя 10 минут, 22 секунды (20.12.2010 - 02:16) kovaldm написал(а):
А где код?

Спустя 5 минут, 4 секунды (20.12.2010 - 02:21) Guest написал(а):
<? include ("blocks/bd.php");
mysql_query("SET NAMES cp1251");
if (isset($_get['id'])) {$id = $_GET['id'];}
if (!isset($id)) {$id=1;}



$result = mysql_query("SELECT * FROM data WHERE id='$id'", $db);

if (!$result)
{
echo "<p>Запрос на выборку данных не прошел. Напишите об этом администратору на email. <br> Код ошибки: </strong></p>"
;
exit (mysql_error());
}

if (mysql_num_rows($result)> 0)

{
$myrow = mysql_fetch_array ($result);

$new_view = $myrow["view"]+1;
$updata=mysql_query("UPDATE data set view='$new_view' WHERE id='$id'", $db);

}

else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет данных. </p>";
exit ();
}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<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>
.
.
.
<tr>
<? include ("blocks/left-block.php"); ?>
<td width="3%" align="center" valign="top" valing="top"><img src="img/ornamentbI Sva/border-horz2 .gif" width="20" height="33%" /></br><img src="img/ornamentbI Sva/border-horz2 .gif" width="20" height="33%" />
</br><img src="img/ornamentbI Sva/border-horz2 .gif" width="20" height="33%" /></td>
<td width="82%" align="center" valign="top" valing='top'><? include ("navPHP.php"); ?>
<?


printf ("<p class='post_title2'>%s</p><p class='post_add'>Автор: %s</p><p class='post_add'>Дата: %s</p>%s<p class='post_view'>Просмотров: %s</p>",$myrow["title"],$myrow["author"],$myrow["date"],$myrow["text"],$myrow["view"]);


и да я смотрел уроки Попова. smile.gif

Спустя 2 минуты, 51 секунда (20.12.2010 - 02:24) kovaldm написал(а):
На сервере похоже глобальные переменные отключены, поэтому по-умолчанию $id=1.

Спустя 1 минута, 3 секунды (20.12.2010 - 02:25) Хакон написал(а):
предыдущий пост мой.
Обратился так как пока не хватает знаний, а сайт надо запустить...и честно не понимаю что я упустил...

Спустя 33 секунды (20.12.2010 - 02:26) Хакон написал(а):
А как это исправить?

Спустя 1 минута, 25 секунд (20.12.2010 - 02:27) kovaldm написал(а):
if (!empty($_GET['id']))
{
$id = $_GET['id'];
}
else
{
$id = 1;
}

Спустя 6 минут, 6 секунд (20.12.2010 - 02:33) Хакон написал(а):
у меня две выборки из двух таблиц.
Для одной выборки помогло - за что СПАСИБО!
а для второй вылетает надпись - "Неверный формат запроса! Проверьте URL!"

Спустя 3 минуты, 9 секунд (20.12.2010 - 02:36) inpost написал(а):
Там точно другой параметр ID передаётся? + У тебя, случайно, регистрации нету на сайте?
Покажи URL сайта, какая ссылка в адресной строке, её вид. И покажи код той, второй страницы

Спустя 1 минута, 36 секунд (20.12.2010 - 02:38) Хакон написал(а):
<? include ("blocks/bd.php");
mysql_query("SET NAMES cp1251");
if (!empty($_GET['id']))
{
$id = $_GET['id'];
}
else
{
$id=1;
}

/* Проверяем, является ли переменная числом */
if (!preg_match("|^[\d]+$|", $cat)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}



$result = mysql_query("SELECT * FROM categories WHERE id='$cat'", $db);

if (!$result)
{
echo "<p>Запрос на выборку данных не прошел. Напишите об этом администратору на email. <br> Код ошибки: </strong></p>"
;
exit (mysql_error());
}

if (mysql_num_rows($result)> 0)

{
$myrow = mysql_fetch_array ($result);



}

else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет данных. </p>";
exit ();
}
?>

Спустя 1 минута, 17 секунд (20.12.2010 - 02:39) Хакон написал(а):
нет пока нет регистрации, так на других форумах проигнорировали просьбу о помощи, думал и тут не помогут...теперь зарегистрируюсь....

Спустя 2 минуты (20.12.2010 - 02:41) Guest написал(а):
http://www.vinnlandfree.ru/index.php
при выборе категории - ошибка
при выборе последних новостей после вашей помощи стал отображать то что надо...
с кодировкой пока не разбирался...на локал хосте все норм было

Спустя 48 секунд (20.12.2010 - 02:42) inpost написал(а):
Вот эту строчку нафиг!
if (!preg_match("|^[\d]+$|", $cat)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}


А теперь в верхней строчке так:
if (!empty($_GET['id']))
{
$id = (int)$_GET['id'];
}
else
{
$id=1;
}


И будь добр, оформляй код php-кодами.

Спустя 2 минуты, 10 секунд (20.12.2010 - 02:44) inpost написал(а):
Вот эта строчка: $id = (int)$_GET['id']; - инициализация переменной! ты не можешь обращаться на прямую к $id, так как в адресной строке записывается именно $_GET['id'], поэтому её инициализируют (Попов говорил про это).
По этой же причине у тебя $cat пустая, ты её инициализируй!
Эту проверку можно оставить:
if (!preg_match("/^[\d]+$/", $cat)) {exit ("<p>Неверный формат запроса! Проверьте URL!");}

Спустя 15 секунд (20.12.2010 - 02:44) Хакон написал(а):
да я на ирбисе уже прочитал smile.gif

Спустя 3 минуты, 7 секунд (20.12.2010 - 02:47) inpost написал(а):
Есть ещё вопросы? Вот глянь, тоже очень полезно знать: http://inpost.dp.ua/lessons/lessons.php?id=1

Спустя 1 минута, 6 секунд (20.12.2010 - 02:49) Guest написал(а):
сделал как посоветовали не помогло....sad.gif

Спустя 1 минута, 22 секунды (20.12.2010 - 02:50) inpost написал(а):
Показывай код, как ты сделал страницу не работающую =)

Спустя 2 минуты, 10 секунд (20.12.2010 - 02:52) Guest написал(а):
не очень понял..."как ты сделал страницу не работающую"

Спустя 3 минуты, 24 секунды (20.12.2010 - 02:56) inpost написал(а):
"сделал как посоветовали не помогло.... ", показывай, как ты сделал, кидай сюда код! И на этот раз, будь добр, используй PHP теги [ php] КОД [ /php] - только без пробела

Спустя 5 минут, 59 секунд (20.12.2010 - 03:01) Guest написал(а):
<?php
include ("blocks/bd.php");
mysql_query("SET NAMES cp1251");
if (!empty($_GET['id']))
{
$id = (int)$_GET['id'];
}
else
{
$id=1;
}

if (!preg_match("/^[\d]+$/", $cat)) {exit ("<p>Неверный формат запроса! Проверьте URL!");}


$result = mysql_query("SELECT * FROM categories WHERE id='$cat'", $db);

if (!$result)
{
echo "<p>Запрос на выборку данных не прошел. Напишите об этом администратору на email. <br> Код ошибки: </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 XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=WINDOWS-1251" />
<title><?php echo "БЛОГ - Виннландского война"; ?></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="100%" border="0" align='center'>
<? include ("blocks/header.php"); ?>

<tr>
<td valign="top" background-image:url(img/bg.jpg)><table width="100%" border="0">
<tr>
<?php include ("blocks/left-block.php"); ?>
<td width="3%" align="center" valign="top" valing="top"><img src="img/ornamentbI Sva/border-horz2 .gif" width="20" height="836" /></br><img src="img/ornamentbI Sva/border-horz2 .gif" width="20" height="836" />
</td>
<td align="center" valign="top" valing='top'>
<td width="82%" align="center" valign="top" valing='top'><?php include ("navPHP.php"); ?>
<? echo $myrow ["text"] ;

$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 data WHERE cat='$cat'");
$temp = mysql_fetch_array($result00);
$posts = $temp[0];
// Находим общее число страниц
$total = (($posts - 1) / $num) + 1;
$total = intval($total);
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start




$result = mysql_query("SELECT id,title,description,author,mini_img,view FROM data WHERE cat='$cat' ORDER BY id LIMIT $start, $num", $db);

if (!$result)
{
echo "<p>Запрос на выборку данных не прошел. Напишите об этом администратору на email. <br> Код ошибки: </strong></p>"
;
exit (mysql_error());
}

if (mysql_num_rows($result)> 0)

{
$myrow = mysql_fetch_array ($result);

do
{
printf ("<table aling='center' aling='top' class='post' >
<tr>
<td class='post_title' aling='top'>
<p class='post_name' ><img style='margin-top:5px;' class='mini' aling='left' src='%s'><a href='view_post.php?id=%s'>%s</a></p>
<p class='post_adds'>Дата добавления: %s</p>
<p class='post_adds'>Автор заметки: %s</p></td>
</tr>

<tr>
<td>%s <p class='post_view' aling='top' > Просмотров: %s</p></td>
</tr>

</table><br><br>",$myrow["mini_img"], $myrow["id"], $myrow["title"], $myrow ["date"], $myrow ["author"], $myrow ["description"], $myrow ["view"]);
}
while ($myrow = mysql_fetch_array ($result));




// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href=view_cat.php?cat='.$cat.'&page=1>Первая</a> | <a href=view_cat.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 1) .'>Следующая</a> | <a href=view_cat.php?cat='.$cat.'&page=' .$total. '>Последняя</a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 5 > 0) $page5left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
if($page - 4 > 0) $page4left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
if($page - 3 > 0) $page3left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
if($page - 2 > 0) $page2left = ' <a href=view_cat.php?cat='.$cat.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href=view_cat.php?cat='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';

if($page + 5 <= $total) $page5right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
if($page + 4 <= $total) $page4right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
if($page + 3 <= $total) $page3right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
if($page + 2 <= $total) $page2right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href=view_cat.php?cat='.$cat.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';

// Вывод меню если страниц больше одной

if ($total > 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<div class=\"pstrnav\">";
echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo "</div>";
}

}




else
{
echo "<p>Информация по запросу не может быть извлечена в таблице нет данных. </p>";
exit ();
}

?></td>
</tr>
</table></td>
</tr>
<tr>
<? include ("blocks/bottom.php"); ?>
</tr>
</table>
</body>
</html>

Да код грязный так как некоторые блоки ставил извне

Спустя 5 минут, 19 секунд (20.12.2010 - 03:07) inpost написал(а):
Я же сказал, $cat необходимо инициализировать! Её не существует, а ты делаешь проверку и убеждаешься в этом. Прочитай сообщения, которые я ранее писал! Инициализация - это та процедура, которую мы делали с $id.

Спустя 8 минут, 42 секунды (20.12.2010 - 03:16) Хакон написал(а):
if (!empty($_GET['$cat']))
{
$cat = (int)$_GET['$cat'];
}
else
{
$cat=1;
в таком виде? если да то он почему то отображает одну заметку для все категорий

Спустя 17 минут, 25 секунд (20.12.2010 - 03:33) Хакон написал(а):
Простите тупанул
Надо было так -

if (!empty($_GET['cat']))
{
$cat = (int)$_GET['cat'];
}
else
{
$cat=1;

пока работает СПАСИБО! рад что не бросили....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.