SQL к PHP буду рад помощи.

StiG

Новичок
Здравствуйте, я только, только начал изучать скул и столкнулся с проблемой, помогите, будьте добры.
В общем к php в MySQL Navicat сделал запрос, но что то я не правильно сделал...
DROP TABLE IF EXISTS `news`;
CREATE TABLE IF NOT EXISTS `news` (
`id_news` int(10) NOT NULL,
`title` bigint(10) NOT NULL,
`date` int(10) NOT NULL,
`content` int(10) NOT NULL,
PRIMARY KEY (`object_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
<?php

$connect = mysql_connect("$dbhost", "$dbuser", "$dbpassword");
mysql_select_db("$dbnews");
mysql_query("SET NAMES 'utf8'");
$query = "SELECT `id_news`,`title`,`date`,`content` FROM `news`";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
$id_news = $row['id_news'];
$title = $row['title'];
$date = $row['date'];
$content = $row['content'];
}


if ( !isset( $_GET["action"] ) ) $_GET["action"] = "showlist";
switch ( $_GET["action"] ) {
// Вывод всех новостей
case "showlist":
echo '<div class="top">';
require "top10.php";
echo '</div>';
show_list(); break;

// Форма для добавления новостей
case "addnews":
if (isset($_SESSION['id']) AND $_SESSION['access_level'] >= "$access_level") {
get_add_item_form(); break;
}
else {echo "Ошибка";}

// Добавить новость
case "add":
if (isset($_SESSION['id']) AND $_SESSION['access_level'] >= "$access_level") {
add_item(); break;
}
else return;

// Вывод отдельной новости
case "get_news":
get_news(); break;

// Форма для редактирования новости
case "editform":
if (isset($_SESSION['id']) AND $_SESSION['access_level'] >= "$access_level") {
get_edit_item_form();
}
else {echo "Ошибка";}
break;

// Обновить новость
case "update":
if (isset($_SESSION['id']) AND $_SESSION['access_level'] >= "$access_level") {
update_item(); break;
}
else {echo "Ошибка";}

// Удалить новость
case "delete":
if (isset($_SESSION['id']) AND $_SESSION['access_level'] >= "$access_level") {
delete_item(); break;
}
else return;

// По умолчанию - вывод всех новостей
default:
show_list();
}


// Функция выводит список всех записей в таблице БД
function show_list() {
global $news_amt;
global $access_level;

if (isset($_GET['page'])) {
$page = intval($_GET['page']);
}
else {
$page = 1;
}

$select = "SELECT COUNT(*) AS `counter` FROM `news`";
$query = mysql_query($select);
$row = mysql_fetch_assoc($query);
$elements = $row['counter'];
$pages = ceil($elements/$news_amt);

if ($page < 1) {
$page = 1;
}
elseif ($page > $pages) {
$page = $pages;
}
$start = ($page-1)*$news_amt;
if ($start < 0) $start = 0;

$select = "SELECT * FROM news ORDER BY id_news DESC LIMIT {$start}, {$news_amt}";
$query = mysql_query($select) or die(mysql_error());

while ($item = mysql_fetch_assoc($query)) {
$id_news = $item['id_news'];

echo '<div class="news">';
echo '<div class="news-title"><a href="'.$_SERVER['PHP_SELF'].'?action=get_news&id_news='.$item['id_news'].'">'.$item['title'].'</a></div>';
echo '<div class="news-date">'.$item['date'].'</div>';
echo '<div class="news-text">'.$item['content'].'</div>';
if (isset($_SESSION['id']) AND $_SESSION['access_level'] >="$access_level") {
echo '<a href="'.$_SERVER['PHP_SELF'].'?action=editform&id_news='.$item['id_news'].'"><div class="button-edit border shadow">Редактировать</div></a>';
}
echo '<div class="clear"></div>';
echo '</div>';
}

echo '<div class="pages">';
echo '<div class="paginator" id="paginator3"></div>';
echo '<script type="text/javascript"> pag3 = new Paginator(\'paginator3\', '.$pages.', 5, '.$page.', ""); </script>';
echo '</div>';
//return
}

// Вывод новости по отдельности
function get_news() {
global $access_level;
$id_news = intval($_GET['id_news']);
$query = "SELECT * FROM `news` WHERE `id_news` = ".$id_news;
$result = mysql_query($query);
while ($item = mysql_fetch_assoc($result)) {
$title = $item['title'];
$date = $item['date'];
$content = $item['content'];

echo '<div class="news">';
echo '<div class="news-title">'.$title.'</div>';
echo '<div class="news-date">'.$date.'</div>';
echo '<div class="news-text">'.$content.'</div>';
if (isset($_SESSION['id']) AND $_SESSION['access_level'] >= "$access_level") {
echo '<a href="'.$_SERVER['PHP_SELF'].'?action=editform&id_news='.$item['id_news'].'"><div class="button-edit border shadow">Редактировать</div></a>';
}
echo '<div class="clear"></div>';
echo '</div>';
}
}

// Функция формирует форму для добавления записи в таблице БД
function get_add_item_form() {
$date=date("d M Y, H:i");

echo '<div class="news">';
echo '<div class="news-title">Добавить новость</div>';
echo '<div>
<form name="addnews" action="'.$_SERVER['PHP_SELF'].'?action=add" method="POST">';
echo '<div class="mb10"><b>Заголовок:</b> <input type="text" class="field" name="title"></div>';
echo '<div class="mb10"><b>Дата:</b> '.$date.'</div>';
echo '<div><textarea type="text" id="input" name="content"></textarea></div>';
echo '<div align="center"><input type="submit" class="button-submit dark-shadow" name="button" value="Добавить"/> <button type="button" class="button-submit dark-shadow" onClick="history.back();">Отменить</button></div>';
echo '</form>';
echo '</div>';
if(!empty($add_error)) echo '<center><div class="error">'.$add_error.'</div>';
if(!empty($add_success)) echo '<div class="accept">'.$add_success.'</center></div>';
echo '</div>';
echo '<div class="clear"></div>';
//return
}

// Функция добавляет новую запись в таблицу БД
function add_item() {
$date=date("d M Y, H:i");
$title = mysql_escape_string( $_POST['title'] );
$content = mysql_escape_string( $_POST['content'] );
$query = "INSERT INTO news (title, date, content) VALUES ('".$title."', '".$date."', '".$content."');";
mysql_query ( $query );
//header( 'Location: '.$_SERVER['PHP_SELF'] );
echo "<script language='JavaScript'>window.location.href = 'index.php'; </script>";
die();
//return
}

// Функция формирует форму для редактирования записи в таблице БД
function get_edit_item_form() {
$date=date("d M Y, H:i");
$query = 'SELECT id_news, title, content FROM news WHERE id_news='.$_GET['id_news'];
$result = mysql_query( $query );
$item = mysql_fetch_array( $result );

echo '<div class="news">';
echo '<div class="news-title">Редактировать новость</div>';
echo '<div>
<form name="editform" action="'.$_SERVER['PHP_SELF'].'?action=update&id_news='.$_GET['id_news'].'" method="POST">';
echo '<div class="mb10"><b>Заголовок:</b> <input type="text" class="field" name="title" value="'.$item['title'].'"></div>';
echo '<div class="mb10"><b>Дата:</b> '.$date.'</div>';
echo '<div><textarea type="text" id="input" name="content">'.$item['content'].'</textarea></div>';
echo '<div align="center">
<input type="submit" class="button-submit dark-shadow" name="button" value="Сохранить"/>
<button type="button" class="button-submit dark-shadow" onClick="history.back();">Отменить</button>
<button type="button" class="button-submit dark-shadow" ONCLICK="stat()">Удалить</button>
<script>function stat(){location.href="'.$_SERVER['PHP_SELF'].'?action=delete&id_news='.$item['id_news'].'";}</script>
</div>';
echo '</form>';
echo '</div>';
if(!empty($add_error)) echo '<center><div class="error">'.$add_error.'</div>';
if(!empty($add_success)) echo '<div class="accept">'.$add_success.'</center></div>';
echo '</div>';
echo '<div class="clear"></div>';
//return
}

// Функция обновляет запись в таблице БД
function update_item() {
$title = mysql_escape_string( $_POST['title'] );
$content = mysql_escape_string( $_POST['content'] );
$query = "UPDATE news SET title='".$title."', content='".$content."'
WHERE id_news=".$_GET['id_news'];
mysql_query ( $query );
//header( 'Location: '.$_SERVER['PHP_SELF'] );
echo "<script language='JavaScript'>window.location.href = 'index.php'; </script>";
die();
//return
}

// Функция удаляет запись в таблице БД
function delete_item() {
$query = "DELETE FROM news WHERE id_news=".$_GET['id_news'];
mysql_query ( $query );
//header( 'Location: '.$_SERVER['PHP_SELF'] );
echo "<script language='JavaScript'>window.location.href = 'index.php'; </script>";
die();
//return
}
 

StiG

Новичок
PRIMARY KEY (`id_news`) изменил так и запрос прошел в базу скула, а вот на сайте все равно не показывает ((
Table 'al_server_gs.news' doesn't exist
 

StiG

Новичок
И о чём нам это говорит?
Это я базу не правильно сделал, т.е в конфиге не правильно прописал, но уже изменил.
Я sql не правильно составил, `content` int(10) NOT NULL, это точно чувствую неправильно т.к в базе должны писаться новостти, а там только цифры, в общем я не знаю как правильно создать sql.
 

StiG

Новичок
CREATE TABLE IF NOT EXISTS `news` (
`news_id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`title` varchar(128) NOT NULL,
`category_id` int(4) NOT NULL,
`short_story` text NOT NULL,
`full_story` text,
`date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`description` varchar(255) DEFAULT NULL,
`keywords` varchar(255) DEFAULT NULL,
PRIMARY KEY (`news_id`),
KEY `category_id` (`category_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1010 ;
 

StiG

Новичок
DROP TABLE IF EXISTS `news`;
CREATE TABLE `news` (
`id_news` int(11) NOT NULL AUTO_INCREMENT,
`title` text,
`date` text,
`content` text,
PRIMARY KEY (`id_news`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;
INSERT INTO `news` VALUES
 
Сверху