Това ми е структурата на базата данни
това ми е кода , идеята е следната самата новина да може да се добавя към множество категории.
Погледнете кода между ред 31 до 35 , по някаква причина заявката не сработва защото в таблицата postcat няма нищо записано. Идеята е в postcat да се записва postid и срещу него catid и ако имам 4избрани категории да речем - да се записват четири нови реда като postid си е еднакъв за четирите реда само catid се сменя , използвал съм функцията foreach но нещо в кода не сработва
Код:
-- Структура на таблица `cat`
--
CREATE TABLE IF NOT EXISTS `cat` (
`cat_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`desc` varchar(250) NOT NULL,
`active` tinyint(1) NOT NULL DEFAULT '1',
`date_added` int(11) NOT NULL,
PRIMARY KEY (`cat_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=23 ;
-- --------------------------------------------------------
--
-- Структура на таблица `postcat`
--
CREATE TABLE IF NOT EXISTS `postcat` (
`post_id` int(11) NOT NULL,
`cat_id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура на таблица `posts`
--
CREATE TABLE IF NOT EXISTS `posts` (
`post_id` int(11) NOT NULL AUTO_INCREMENT,
`added_by` int(11) NOT NULL,
`date_added` int(11) NOT NULL,
`title` varchar(100) NOT NULL,
`content` text NOT NULL,
`view_count` int(11) NOT NULL,
`edited_by` int(11) NOT NULL,
`edited_when` time NOT NULL,
PRIMARY KEY (`post_id`),
KEY `cat_id` (`cat_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=16 ;
Погледнете кода между ред 31 до 35 , по някаква причина заявката не сработва защото в таблицата postcat няма нищо записано. Идеята е в postcat да се записва postid и срещу него catid и ако имам 4избрани категории да речем - да се записват четири нови реда като postid си е еднакъв за четирите реда само catid се сменя , използвал съм функцията foreach но нещо в кода не сработва
PHP:
<?php
session_start();
include '../functions.php';
db_init();
$rs= run_q('SELECT * FROM cat WHERE active=1');
if($_SESSION['is_logged']===true)
{
if($_POST['new_post']==1)
{
$error_array=array();
$new_name=addslashes(trim($_POST['post_title']));
$new_content=addslashes(trim($_POST['post_content']));
if(strlen($new_name)<4)
{
$err_array['name']="Името е твърде кратко";
}
if(strlen($new_content)<4)
{
$err_array['content']="Съдържанието е твърде кратко";
}
if(strlen($new_content)>5000)
{
$err_array['content']="Съдържанието е твърде дълго";
}
if(count($err_array)==0)
{
run_q('INSERT INTO posts (added_by,date_added,title,content)
VALUES('.$_SESSION['user_info']['user_id'].','.time().',"'.htmlspecialchars($new_name).'","'.htmlspecialchars($new_content).'")');
$post = mysql_insert_id(); //get the id
$values = $_POST['selcats'];
foreach($values as $cat) {
run_q('INSERT INTO postcat (post_id,cat_id)VALUES($post,$cat)');
}
header('Location: index.php');
exit;
}
}
$row= mysql_fetch_assoc($rs);
my_header("Нова тема-".$row['name']);
echo '<form action="post.php" method="POST">';
do {
echo '<input type="checkbox" name="selcats" value="'.$row['cat_id'].'"> ' .$row['name'];
} while($row = mysql_fetch_assoc($rs));
echo '<br> Заглавие:<input type="text" name="post_title" />';
if($err_array['name'])
{
echo $err_array['name'];
}
echo '<br><textarea name="post_content" rows="10" cols="50"></textarea>';
if($err_array['content'])
{
echo $err_array['content'];
}
echo '<input type="hidden" name="new_post" value="1" />
<input type="submit" value="Добави" />
</form>';
footer();
}
else
{
header('Location: index.php');
exit;
}