categories

kaits

Mitglied
I made a script where I can make categories and subcategories and into these subcategories I can insert some products, but I don't know how to save more subcategories! I mean category->subcategory->subcategory2->subcategory3-> ...etc...
And into every category and subcategory I can insert some products.

How to do that?? :( :(

MY SCRIPT:
PHP:
<?

/*

CREATE TABLE alamkategooriad (
  id int(11) NOT NULL auto_increment,
  kategooriaid int(11) NOT NULL default '0',
  alamkategoorianimi varchar(255) NOT NULL default '',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

CREATE TABLE kategooriad (
  id int(11) NOT NULL auto_increment,
  kategoorianimi varchar(255) NOT NULL default '',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

CREATE TABLE tooted (
  id int(11) NOT NULL auto_increment,
  alamkategooriaid int(11) NOT NULL default '0',
  tootenimi varchar(255) NOT NULL default '',
  sisu longtext NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;

*/

$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'testikas';
@mysql_connect($host,$user,$pass) or die('viga sql andmebaasiga ühendamisel!');
@mysql_select_db($db) or die('viga andmebaasi leidmisel!');

if($_GET['a'] == 'lisakategooria') {
	if(isset($_POST['katsubmit'])) {
		if(!$_POST['katnimi']) {
			echo 'kategooria nime väli peab täidetud olema!';
		}
		else {
			mysql_query('insert into kategooriad (id,kategoorianimi) values(0,"'.addslashes($_POST['katnimi']).'")');
		}
	}
	?>
<form method="post" action="?a=lisakategooria">
kategooria nimi:<br>
<input type="text" name="katnimi"><br>
<input type="submit" name="katsubmit" value="lisa uus kategooria">
</form>
<?
}
elseif($_GET['a'] == 'lisaalamkategooria') {
	if(isset($_POST['alamkatsubmit'])) {
		if(!$_POST['alamkatnimi']) {
			echo 'alamkategooria nime väli peab täidetud olema!';
		}
		else {
			$kats = mysql_fetch_row(mysql_query('select id,kategoorianimi from kategooriad where kategoorianimi="'.$_POST['koikkats'].'"'));
			mysql_query('insert into alamkategooriad (id,kategooriaid,alamkategoorianimi) values(0,"'.$kats[0].'","'.addslashes($_POST['alamkatnimi']).'")');
		}
	}
	?>
<form method="post" action="?a=lisaalamkategooria">
vali kategooria:<br>
<select size="1" name="koikkats">
<?
$kats = mysql_query('select id,kategoorianimi from kategooriad order by kategoorianimi asc');
while($kuva = mysql_fetch_row($kats)) { ?>
<option value="<?=$kuva[1]?>"><?=$kuva[1]?></option>
<? } ?>
</select><br>
alamkategooria nimi:<br>
<input type="text" name="alamkatnimi"><br>
<input type="submit" name="alamkatsubmit" value="lisa uus alamkategooria">
</form>
<?
}
elseif($_GET['a'] == 'lisatoode') {
	if(isset($_POST['nupp'])) {
		if(!$_POST['nimi']&&!$_POST['sisu']) {
			echo 'toote nime ja sisu väli peavad täidetud olema!';
		}
		else {
			$alamkatid = mysql_fetch_row(mysql_query('select id from alamkategooriad where id="'.$kuva[0].'"'));
			mysql_query('insert into tooted (id,alamkategooriaid,tootenimi,sisu) values(0,"'.$_POST['koikalamkats'].'","'.addslashes($_POST['nimi']).'","'.addslashes($_POST['sisu']).'")');
		}
	}
	?>
<form method="post" action="?a=lisatoode">
<?
$kats = mysql_query('select id,kategoorianimi from kategooriad order by kategoorianimi asc');
while($kuva=mysql_fetch_row($kats)) $katNimi[$kuva[0]]=$kuva[1];
?>
vali alamkategooria:<br>
<select size="1" name="koikalamkats">
<?
$kats=mysql_query('select id,kategooriaid,alamkategoorianimi from alamkategooriad order by alamkategoorianimi asc');
while($kuva=mysql_fetch_row($kats)) $arr[$kuva[0]]=$katNimi[$kuva[1]].' - '.$kuva[2];
asort($arr); reset();
while(list($k,$v)=each($arr)) {
echo '<option value="'.$k.'">'.$v.'</option>';
}
?>
</select>
<br>
toote nimi:<br><input type="text" name="nimi"><br>
toote kirjeldus:<br><textarea rows="5" name="sisu" cols="20"></textarea><br>
<input type="submit" name="nupp" value="lisa toode">
</form>
<?
}
?>

<a href="?a=lisakategooria">lisa uus kategooria</a><br>
<a href="?a=lisaalamkategooria">lisa uus alamkategooria</a><br>
<a href="?a=lisatoode">lisa uus toode</a>

<br><br><br><br><br>

<?
echo'kategooriad:<br>';

$katslist = mysql_query('select id,kategoorianimi from kategooriad order by kategoorianimi asc');
while($kuva = mysql_fetch_row($katslist)) {
	echo '<a href=?catID='.$kuva[0].'>'.$kuva[1].'</a><br>';
}
echo '<hr>';
$alamIDs = mysql_query('select id,kategooriaid,alamkategoorianimi from alamkategooriad order by alamkategoorianimi asc');
while($IDs = mysql_fetch_row($alamIDs)) {
	if($_GET['catID']==$IDs[1]) {
		echo '<a href=?catID='.$IDs[1].'&subID='.$IDs[0].'>'.$IDs[2].'</a><br>';
	}
}
echo '<br>';
$katID = mysql_fetch_row(mysql_query('select id,kategooriaid from alamkategooriad where kategooriaid="'.$_GET['catID'].'"'));
$rIDs = mysql_query('select id,alamkategooriaid,tootenimi,sisu from tooted order by tootenimi asc');
while($rID = mysql_fetch_row($rIDs)) {
	if($_GET['catID']==$katID[1]&&$_GET['subID']==$rID[1]) {
		echo '<a href=?catID='.$katID[1].'&subID='.$rID[1].'&rID='.$rID[0].'>'.$rID[2].'</a><br>';
	}
}
$katID = mysql_fetch_row(mysql_query('select id,kategooriaid from alamkategooriad where kategooriaid="'.$_GET['catID'].'"'));
$retsept = mysql_query('select id,alamkategooriaid,tootenimi,sisu from tooted');
while($r = mysql_fetch_row($retsept)) {
	if($_GET['catID']==$katID[1]&&$_GET['subID']==$r[1]&&$_GET['rID']==$r[0]) {
		echo 'Retsepti nimi: '.$r[2].'<br>Retsepti sisu:<br>'.$r[3];
	}
}

?>
 
Zuletzt bearbeitet:
I have not read you script but your database structure looks wrong. Try it with a different table structure, all catagories should be located in one table (main-catagories and sub-catagories).

The Products should have a reference-id to one of the catagories and the categories should have a reference id to another categorie or zero if it is a main categorie. Therefore you can have unlimited nested categories.
 
Zuletzt bearbeitet von einem Moderator:
I tried to do something like that, but something has gone wrong and my table crashed :eek:

could you please make some little example
 
its simpel:

you need minimal 2 tables

idfeld = autoincement subcat = integer

so if subcat 0 then it is the first categorie else subcat has the id form
the parent id ...
 
Zurück