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

Форум PHP

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

 

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

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

тема: Скрипт новостей.
 
 автор: t3ma   (04.06.2008 в 10:10)   письмо автору
 
 

Приведите пожалуйста самый простой пример етого скрипта.
Есть два текстовых поля (название новости и сам текст новости) и кнопка записать.
т.е. надо чтобы эти значения записывались в базу.

А потом выводить эти новости из базы, чтобы самая новая ность была вверху... помогите плз новичку.. изучаю php )

   
 
 автор: SilentChild   (04.06.2008 в 11:40)   письмо автору
 
   для: t3ma   (04.06.2008 в 10:10)
 

Обработчик добавления данных из формы в базу данных:


<?php
//получаем из формы введенный заголовок новостей: 
$newsheader $_POST['newsheader'];
//получаем из формы главную часть новостей:
$newsmainpart $_POST['newsmainpart'];
//дальше записываем эти данные в поля 'newsheader' и 'newsmainpart' таблицы 'news' базы данных:
// для этого соединяемся с базой:
$link_id mysql_connect("localhost или адрес_сервера_на_котором_база_лежит""имя_базы""password");
if(!
$link_id)
{
    echo 
"Ошибка соединения с базой данных. ERROR: " mysql_error();
    exit;
}
mysql_query("USE имя_базы"$link_id);
//теперь записываем данные:
$insertnews mysql_query("INSERT INTO news(newsheader, newsmainpart) VALUES(newsheader, newsmainpart)"$link_id);
if(!
$insertnews)
{
    
"Ошибка! Новость не добавлена. ERROR: " mysql_error(); 
}
else
{
    
"Данные успешно добавлены!";
}


Обработчик вывода новостей на экран:


<?php
$link_id 
mysql_connect("localhost или адрес_сервера_на_котором_база_лежит""имя_базы""password");
if(!
$link_id)
{
    echo 
"Ошибка соединения с базой данных. ERROR: " mysql_error();
    exit;
}
mysql_query("USE имя_базы"$link_id);
//теперь извлекаем данные из таблицы 'news':
$select mysql_query("SELECT newsheader, newsmainpart FROM news ORDER BY newsauto_increment DESC"$link_id);
//newsauto_increment - это еще одно поле в таблице 'news' типа AUTO_INCREMENT оно нужно для возможности сортировки новостей по порядку их добавления в базу.
if(!$select)
{
    
"Данные не извлечены из базы данных. ERROR: " mysql_error();   
}
else
{
   <
table border="1">          
    while(
$result mysql_fetch_array($select))
    {
        
?>
          <tr>
            <td><? echo $result[newsheader?></td>
          </tr>
          <tr>  
             <td><? echo $result[newsmainpart?></td>
          </tr>        
        <?
    
}
    </
table>
}

?>


Вот так вот!

   
 
 автор: t3ma   (04.06.2008 в 16:12)   письмо автору
 
   для: SilentChild   (04.06.2008 в 11:40)
 

Почему выдает ошибку разобраться не могу. Помогите плз!! Сделал так :

<?php

  
require("config.php");

  if (!empty(
$_POST["newsheader"]))
  {
    
$newsheader addslashes(strip_tags($_POST["newsheader"]));
    
$newsmainpart addslashes(strip_tags($_POST["newsmainpart"]));
    
    
$add_news = @mysql_query("INSERT INTO news VALUES (0, '$newsheader', '$newsmainpart')");

    if (
$add_news)
    {
        echo 
"новость успешно добавлена!";
    }
    else
    {
        
my_exit("К сожалению, произошла ошибка! ".mysql_error());
    }
  }

  else

  {
?>
<form method="post">
<input type="text" name="newsheader" maxlength="25">
<input type="text" name="newsmainpart" maxlength="25">
<br><input type="submit" value="Отправить"></form><br><br><hr>

<?php
  
}
?>


После нажатия на кнопку отправить вылезает вот такая вот ошибка:

Fatal error: Call to undefined function my_exit() in /public_html/news/index.php on line 18

   
 
 автор: mihdan   (04.06.2008 в 16:20)   письмо автору
 
   для: t3ma   (04.06.2008 в 16:12)
 

Где у вас определена my_exit()

   
 
 автор: t3ma   (04.06.2008 в 16:25)   письмо автору
 
   для: mihdan   (04.06.2008 в 16:20)
 

Всмысле где она определена ? в скрипте) скрипт находится постом выше

   
 
 автор: t3ma   (04.06.2008 в 16:32)   письмо автору
 
   для: t3ma   (04.06.2008 в 16:25)
 

с my_exit разобрался.. теперь пишет такую ошибку:

К сожалению, произошла ошибка! Column count doesn't match value count at row 1

   
 
 автор: SilentChild   (04.06.2008 в 16:52)   письмо автору
 
   для: t3ma   (04.06.2008 в 16:32)
 

Вот здесь нужно указать идентификатор соединения:

$add_news = @mysql_query("INSERT INTO news VALUES (0, '$newsheader', '$newsmainpart')", $link_id);


И ноль вы еще добавляете? это что там за поле у вас!

   
 
 автор: t3ma   (04.06.2008 в 17:11)   письмо автору
 
   для: SilentChild   (04.06.2008 в 16:52)
 

ребят а можите сказать что в этом коде:


 if (!empty($_POST["newsheader"]))
  {
    $newsheader = addslashes(strip_tags($_POST["newsheader"]));
    $newsmainpart = addslashes(strip_tags($_POST["newsmainpart"]));


делает строка:
 if (!empty($_POST["newsheader"]))
  {

   
 
 автор: mihdan   (04.06.2008 в 17:12)   письмо автору
 
   для: t3ma   (04.06.2008 в 17:11)
 

<?
if (!empty($_POST["newsheader"]))
  {}
?>

Если отправлен заголовок новости - обрабатываем


<?
$add_news 
mysql_query("INSERT INTO `news` VALUES (null, '$newsheader', '$newsmainpart')") or die(mysql_error);
?>

   
 
 автор: SilentChild   (05.06.2008 в 01:34)   письмо автору
 
   для: t3ma   (04.06.2008 в 17:11)
 


ребят а можите сказать что в этом коде:


 if (!empty($_POST["newsheader"])) 
  { 
    $newsheader = addslashes(strip_tags($_POST["newsheader"])); 
    $newsmainpart = addslashes(strip_tags($_POST["newsmainpart"]));  




Это значит что если в поле формы 'newsheader' ничего не ввели, то выполняется следующий в скобках скрипт!

   
 
 автор: KPETuH   (05.06.2008 в 05:13)   письмо автору
 
   для: SilentChild   (05.06.2008 в 01:34)
 

>Это значит что если в поле формы 'newsheader' ничего не ввели, то выполняется следующий в скобках скрипт!

Вернее наоборот, если поле 'newsheader' не пустое или не равно 0 тогда выполняются дальнейшие действия...

   
 
 автор: t3ma   (05.06.2008 в 08:13)   письмо автору
 
   для: KPETuH   (05.06.2008 в 05:13)
 

спасибо.. разобрался)

я вот таким вот образом вывожу новости из базы:


<?php

  
require("config.php");

  
$get_news = @mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 3");

   while (
$news = @mysql_fetch_array($get_news))
  {
    echo 
"ID: $news[id]<br>$news[putdate]<br>$news[body]
<br><hr>\r\n"
;
  }

?>


щас выводятся из базы последние три новости (самая нововая новость отображается вверху)
как мне сделать так: если в базе новостей больше трех, то отображаем ссылку: Все новости (12)
Если меньше трех то ссылку непоказываем.
помогите плз

   
 
 автор: mihdan   (05.06.2008 в 10:46)   письмо автору
 
   для: KPETuH   (05.06.2008 в 05:13)
 

KPETuH, спасибо - упустил "!" из виду

   
Rambler's Top100
вверх

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