Как да направя това?

heminei

Registered
Как да направя като променям категорията на новина например, select-а да застава на това, което е било избрано преди да я променям.А не да седи на първото в списъка.

Код:
$zaqvka = "SELECT * FROM kategorii_novini";
$result = mysql_query($zaqvka) or die (mysql_error());

echo"<select name='kategoria' size='1'>";
while ($row1 = mysql_fetch_assoc($result))
{
echo "<option value='$row1[id]'>$row1[kategoria]</option>";
}
echo"</select>";


SQL

Код:
--
-- Структура на таблица `kategorii_novini`
--

CREATE TABLE IF NOT EXISTS `kategorii_novini` (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `kategoria` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `podkategoria` int(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=9 ;

--
-- Дъмп (схема) на данните в таблицата `kategorii_novini`
--

INSERT INTO `kategorii_novini` (`id`, `kategoria`, `podkategoria`) VALUES
(1, 'Игри', 0),
(2, 'Хардуер', 0),
(3, 'Филми', 0),
(4, 'Спортни', 0),
(5, 'aaa', 1),
(6, 'sss', 2),
(7, 'dfg', 2),
(8, 'ghfjh', 4);
 
Код:
--
-- Структура на таблица `novini`
--

CREATE TABLE IF NOT EXISTS `novini` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `kategoria` int(20) NOT NULL,
  `opisanie` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
  `text` text COLLATE utf8_unicode_ci NOT NULL,
  `data` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
  `avtor` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=30 ;
 
Ето този скрипт, току-що го написах набързо, дано да няма някакви бъгове и да работи добре, ако не - пиши, за да оправя проблема :)
Код:
<?php
$id = (int) $_GET['id']; // взимаме ID на новината, която ще променяме
	if (!is_numeric($id) || $id == NULL)
	{ 
	//Проверяваме дали има въведено id и дали е число
	die ('Невалиден адрес!'); 
	}
	
	require('config.php'); // зареждаме файла, който прави връзката с базата данни
	
	$select_article = @mysql_query("SELECT * FROM novini WHERE id='$id'") // взимаме информацията за новината
		or die ('Грешка');
		
	$row = mysql_fetch_assoc($select_article);
	// тук взимаме името на статията
	echo "Заглавие - $row['title']";
	// тук взимаме текущата категория
	$select_current_category = @mysql_query("SELECT * FROM kategorii_novini WHERE id='$row['kategoria']")
		or die ('Грешка');
	$c_cat = mysql_fetch_assoc($select_current_category);
	echo "Текуща категория: $c_cat['kategoria']";
	
	//Извеждаме всички категории
	$all_categories = @mysql_query("SELECT * FROM kategorii_novini WHERE id!='$c_cat['id']'")
		or die ('Грешка');
		
	while ($row1 = mysql_fetch_assoc($all_categories)) // нарочно кръстих променливата $row1, защото видях, че я ползваш в скрипта
		{
		echo "
		<select name='kategoria' size='1'>
		<option value='$c_cat['id']'>$c_cat['kategoria']</option>
		<option value='$row1['id']>$row['kategoria']</option>";
		}
		echo "</select>";
	// ... и тук вече си слагаш кода, чрез който редактирваш новината :)

?>
 

Back
Горе