Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: CMS по книге Максим Кузнецов. PHP5 практика разработки web-сайтов
 
 автор: shrek   (12.12.2006 в 01:42)   письмо автору
 
 

подскажите пожалуйста что в моём скрипте не правильно делал всё по книге, но всё равно выдаёт ошибку...

<?php
  
// Соединяемся с базой данных
  
require_once("../config.php");
?>
  <a href="addpartform.php">Добавить новый раздел</a>
  <p>Список страниц</p>
  <ul>
  <?php
   
// Выводим список разделов
  
$query "SELECT * FROM artpages";
  if(
$pgs mysql_query($query))
  {
   while(list(
$id_page,$part)=mysql_fetch_array($pgsMYSQL_NUM))
{
  echo 
"<li><a href=index.php?id_page=$id_page>$part</a></li>";
}
} else 
puterror("Ошибка при обращении к блоку статей".mysql_error()." - ".$query);
   
?>
</ul>
<a href="addartform.php?id_page=<? echo $_GET['id_page']; ?>">
  Добавить новую статью на выбранную страницу</a>


// Если параметр id_page не передан странице, устанавливаем его
// значение, равное 1
if(!isset($_GET['id_page'])) $_GET['id_page'] = 1;
// Формируем SQL-запрос на выборку статей в выбранном разделе
   $query = "SELECT * FROM articles
       WHERE id_page = ".$_GET['id_page']."
       ORDER BY name";
// Выполняем SQL-запрос
   $art = mysql_query($query);
// Останавливаем выполнение скрипта, если происходит ошибка при
// выполнении SQL-запроса
   if(!$art) puterror("Ошибка при обращении к блоку статей".mysql_error()." - ".$query);
// Если раздел содержит статьи, выводим их в таблице
   if (mysql_num_rows($art)>0)
{
?>
   <br>
<table>
<tr>
    <td>Название (страница)</td>
    <td>Описание (страница)</td>
    <td>Название (title)</td>
    <td>Описание (description)</td>
    <td>Ключевые слова (keywords)</td>
    <td colspan=3>Действие</td>
</tr>
<?
while($articles mysql_fetch_array($art))
{
 
// Ссылки на скрытие/отображение

if($articles['hide'] == 'hide'$strhide "<a href=showart.php?
                         id_article="
.$articles['id_article']."&
                         id_page="
.$_GET['id_page'].">
                         Отобразить</a>"
;
else 
$strhide "<a href=hideart.php?
                         id_article="
.$articles['id_article']."&
                         id_page="
.$_GET['id_page'].">Скрыть</a>";
echo 
"<tr>
        <td>
          <a href=art.php?id_article="
.$articles['id_article']."&
          id_page="
.$_GET['id_page'].">".$articles['name']."</a>
</td>
<td>"
.$articles['description']."</td>
<td>"
.$articles['html_title']."</td>
<td>"
.$articles['html_description']."</td>
<td>"
.$articles['html_keywords']."</td>
<td>
$strhide</td>
<td><a href=editartform.php?
  id_article="
.$articles['id_article']."&
  id_page="
.$_GET['id_page'].">Редактировать</a>
</td>
<td><a href=delart.php?
                id_article="
.$articles['id_article']."&
                id_page="
.$_GET['id_page'].">Удалить</a></td>
</tr>"
;
}
echo 
"</table>";
?>

   
 
 автор: cheops   (12.12.2006 в 12:31)   письмо автору
 
   для: shrek   (12.12.2006 в 01:42)
 

У вас отсуствует открывающий тэг <?php в середине скрипта
<?php 
  
// Соединяемся с базой данных 
  
require_once("../config.php"); 
?> 
  <a href="addpartform.php">Добавить новый раздел</a> 
  <p>Список страниц</p> 
  <ul> 
  <?php 
   
// Выводим список разделов 
  
$query "SELECT * FROM artpages"
  if(
$pgs mysql_query($query)) 
  { 
   while(list(
$id_page,$part)=mysql_fetch_array($pgsMYSQL_NUM)) 

  echo 
"<li><a href=index.php?id_page=$id_page>$part</a></li>"

} else 
puterror("Ошибка при обращении к блоку статей".mysql_error()." - ".$query); 
   
?> 
</ul> 
<a href="addartform.php?id_page=<? echo $_GET['id_page']; ?>"> 
  Добавить новую статью на выбранную страницу</a> 

<?php
// Если параметр id_page не передан странице, устанавливаем его 
// значение, равное 1 
if(!isset($_GET['id_page'])) $_GET['id_page'] = 1
// Формируем SQL-запрос на выборку статей в выбранном разделе 
   
$query "SELECT * FROM articles 
       WHERE id_page = "
.$_GET['id_page'].
       ORDER BY name"

// Выполняем SQL-запрос 
   
$art mysql_query($query); 
// Останавливаем выполнение скрипта, если происходит ошибка при 
// выполнении SQL-запроса 
   
if(!$artputerror("Ошибка при обращении к блоку статей".mysql_error()." - ".$query); 
// Если раздел содержит статьи, выводим их в таблице 
   
if (mysql_num_rows($art)>0

?> 
   <br> 
<table> 
<tr> 
    <td>Название (страница)</td> 
    <td>Описание (страница)</td> 
    <td>Название (title)</td> 
    <td>Описание (description)</td> 
    <td>Ключевые слова (keywords)</td> 
    <td colspan=3>Действие</td> 
</tr> 
<? 
while($articles mysql_fetch_array($art)) 

 
// Ссылки на скрытие/отображение 

if($articles['hide'] == 'hide'$strhide "<a href=showart.php? 
                         id_article="
.$articles['id_article']."& 
                         id_page="
.$_GET['id_page']."> 
                         Отобразить</a>"

else 
$strhide "<a href=hideart.php? 
                         id_article="
.$articles['id_article']."& 
                         id_page="
.$_GET['id_page'].">Скрыть</a>"
echo 
"<tr> 
        <td> 
          <a href=art.php?id_article="
.$articles['id_article']."& 
          id_page="
.$_GET['id_page'].">".$articles['name']."</a> 
</td> 
<td>"
.$articles['description']."</td> 
<td>"
.$articles['html_title']."</td> 
<td>"
.$articles['html_description']."</td> 
<td>"
.$articles['html_keywords']."</td> 
<td>
$strhide</td> 
<td><a href=editartform.php? 
  id_article="
.$articles['id_article']."& 
  id_page="
.$_GET['id_page'].">Редактировать</a> 
</td> 
<td><a href=delart.php? 
                id_article="
.$articles['id_article']."& 
                id_page="
.$_GET['id_page'].">Удалить</a></td> 
</tr>"


echo 
"</table>"
?>

   
 
 автор: shrek   (12.12.2006 в 16:34)   письмо автору
 
   для: cheops   (12.12.2006 в 12:31)
 

cheops большое спасибо! как то не заметил... вот меня интересует как писали эту книгу??? вот например:

<?
// Устанавливаем соединение с базой данных
require_once("../config.php");
// Устанавливаем значения переменных по умолчанию
if(!isset($action)) $action"addart.php";
if(!isset(
$button)) $button "Добавить";
if(!isset(
$title)) $title "Добавление новой статьи";
// Если значение $tmp не установлено/ помечаем вновь добавляемую статью
// как доступную для просмотра (не скрытую).
if(!isset($tmp)) $tmp "checked";
if(!isset(
$_GET['id_page']))
{
echo 
"Страница не выбрана";
exit();
}
?>
<title><?= $title ?></title>
<a href="javascript: history.back()">Назад</a>
<form action=<?php echo $action?> method=post>
<br>
Название : <input type="text" name="name" value="<?= $name ?>"><br><br>
Описание : <textarea name="description" cols="60" rows="2">
<?= $description?>
</textarea><br>
Название (title) :
<textarea name="html_title" cols="60" rows="2">
<?= $html_title ?>
</textarea><br>
Описание (description) :
<textarea name="html_description" cols="60" rows="2">
<?= $html_description ?>
</textarea><br>
Ключевые слова(keywords) :
<textarea name="html_keywords" cols="60" rows="2">
<?= $html_keywords ?>
</textarea>
Отображать : <input type="checkbox" name="hide" <?= $tmp ?>>
<input class="button" type="submit" value="<?= $button ?>">
<input type="hidden" name="id_page" value="<?= $_GET['id_page'?>">
<input type="hidden" name="id_article" value="<?= $id_article ?>">
</form>


всё как в книге написано а пишет какую то ошибку в полях для заполнения... интересно как можно по ней чему то научится если в начале книге столько ошибок! если я не прав поправьте меня! Вообще у кого нибудь есть Диск для этой книги?


<!--error--><br /><b>Notice</b>:  Undefined variable:  name in <b>z:\home\localhost\www\admin\articles\addartform.php</b> on line <b>21</b><br /><script language=JavaScript src='/errors__/phperror_js.php'></script>

   
 
 автор: cheops   (12.12.2006 в 16:42)   письмо автору
 
   для: shrek   (12.12.2006 в 16:34)
 

notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE  

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985

   
 
 автор: cheops   (12.12.2006 в 16:43)   письмо автору
 
   для: shrek   (12.12.2006 в 16:34)
 

При переборе может возникать множество ошибок, предполагается, что вы будет использовать и модифицировать код, представленный на компакт-диске книги.

   
 
 автор: shrek   (12.12.2006 в 18:30)   письмо автору
 
   для: cheops   (12.12.2006 в 16:43)
 

А в чём здесь тогда проблема??

<?php
// Устанавливаем соединение с базой данных
require_once("../config.php");
// Проверяем, заполнено ли поле name формы
if(empty($_POST['name'])) links($_POST['id_page'],
                                
"Введите название статьи.");
// Определяем, скрыта статья или нет
if($_POST['hide'] == "on"$showhide "show";
else 
$showhide "hide";
// Заменяем одинарные кавычки обратными
$name str_replace("'","'",$_POST['name']);
$description str_replace("'","'",$_POST['description']);
$html_title str_replace("'","'",$_POST['html_title']);
$html_description str_replace("'","'",$_POST['html_description']);
$html_keywords str_replace("'","'",$_POST['html_keywords']);
// Формируем и осуществляем SQL-запрос на добавление статьи
$query "INSERT INTO articles VALUES (
          NULL,
          '
$name',
          '
$description',
          '
$html_title',
          '
$html_description',
          '
$html_keywords',".
          
0,
          
'$showhide',".
          
$_POST['id_page'].")";
if(mysql_query(
$query))
{

  // Выясняем первичный ключ id_article, сгенерированный для статьи
  // механизмом AUTO_ICREMENT, чтобы добавить заголовок в таблицу
  // paragraphes
$id_article = mysql_insert_id();
  // Автоматически добавляем в статью заголовок,
  // совпадающий с названием статьи
$query = "INSERT INTO paragraphes
          VALUES 
(NULL,
                 
'title',
                 
'$name',
                 
'',
                 
'',
                 
'',
                 
1,
                 
0,
                 
'show',
                 
$id_article)";
          if(mysql_query(
$query))
          {
      echo "
<HTML><HEAD>
      <
META HTTP-EQUIV='Refresh'
      
CONTENT='0; URL=index.php?id_page=".$_POST['id_page']."'>
      </
HEAD></HTML>";
      } else puterror("
Ошибка при обращении к блоку статей".mysql_error()." ".$query);
      }
      else puterror("
Ошибка при обращении к блоку статей".mysql_error()." ".$query);
      // Функция вывода ошибки и ссылок возврата в окно браузера
      function links(
$id_page,$msg)
      {
        echo "
<p>".$msg."</p>";
        echo "
<p><a href=# onClick='history.back()'>
                 
Вернуться к правке параграфа</a></p>";
        echo "
<p><a href=index.php?id_page=$id_page>
                 
Администрирование статей</a></p>";
        exit();
        }
     ?>


Parse error: parse error, unexpected ',' in z:\home\localhost\www\admin\articles\addart.php on line 24

   
 
 автор: cheops   (12.12.2006 в 22:17)   письмо автору
 
   для: shrek   (12.12.2006 в 18:30)
 

В строке
 '$html_keywords',".

у вас лишняя последовательность ".

   
 
 автор: shrek   (13.12.2006 в 01:45)   письмо автору
 
   для: cheops   (12.12.2006 в 22:17)
 

А здесь проблема в самой базе данных??? А то я всё перепробовал...


<?php  
Error_Reporting
(E_ALL & ~E_NOTICE);  
?>
<?php
  
// Соединяемся с базой данных
  
require_once("../config.php");
  
// Формируем SQL-запрос
  
$query "UPDATE articles SET hide='hide'
  WHERE id_article="
.$_GET['id_article'];      
  
// Выполняем запрос
  
if(mysql_query($query))
  {
     
// В случае успеха возвращаемся к списку статей
     
echo "<HTML><HEAD>
           <META HTTP-EQUIV='Refresh'
              CONTENT='0; URL=index.php?id_page="
.$_GET['id_page']."'>
           </HEAD></HTML>"
;
   }
  else 
puterror("Ошибка при обращении к блоку статей".mysql_error()." - ".$query);
?>


Ошибка при обращении к блоку статейYou have an error in your SQL syntax near '' at line 2 - UPDATE articles SET hide='hide' WHERE id_article=


<?php  
Error_Reporting
(E_ALL & ~E_NOTICE);  
?>
<?php
// Соединяемся с базой данных
require_once("../config.php");
// Проверяем, нет ли изображений. Если есть — удаляем
$query "SELECT * FROM paragraphes
          WHERE id_article="
.$_GET['id_article']." AND
          'picture_small!='-' AND 'picture_small!=''"
;
$par mysql_query($query);
if(
$par)
{
  while(
$row =mysql_fetch_array($par))
  {
    if(
is_file("../".$row['picture_small']))
                
unlink("../".$row['picture_small']);
    if(
is_file("../".$row['picture_big']))
                
unlink("../".$row['picture_big']);
    }
  } else 
puterror("Ошибка запроса к блоку статей".mysql_error()." - ".$query);
  
// Выполняем запрос на уничтожение параграфов и метаданных статьи
  
$query_par "DELETE FROM paragraphes
                WHERE id_article="
.$_GET['id_article'];
  
$query_art "DELETE FROM articles
                WHERE id_article="
.$_GET['id_article'];
  if(
mysql_query($query_par) && mysql_query($query_art))
  {
  
// Осуществляем автоматический переход на главную страницу
  // администрирования статей
  
echo "<HTML><HEAD>
        <META HTTP-EQUIV='Refresh'
        CONTENT='0; URL=index.php?id_page="
.$_GET['id_page']."'>
        </HEAD></HTML>"
;
} else 
puterror("Ошибка при обращении к блоку статей".mysql_error()." - ".$query);
?>


Ошибка запроса к блоку статейYou have an error in your SQL syntax near 'AND 'picture_small!='-' AND 'picture_small!=''' at line 2 - SELECT * FROM paragraphes WHERE id_article= AND 'picture_small!='-' AND 'picture_small!=''

Заранее спасибо...!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования