Jump to content
php.lv forumi

php forum subcategories


Recommended Posts

Sveiki! Visu sataisiju, bet nu tik gudri kā izveidot subkaregorijas man nesanāk :D
Kāds varētu lūdzu izpalidzet?

index.php skripts:
 

<?php include_once("config_rel.php"); 
$sql = "SELECT * From categories ORDER BY category_title ASC"; 
$res = mysql_query($sql) or die(mysql_error()); 
$categories = ""; 
if (mysql_num_rows($res) > 0) {
  while ($row = mysql_fetch_assoc($res)) {         
    $id = $row['id'];        
    $title = $row['category_title'];        
    $description = $row['category_description'];        
    $categories .= "<a href='view_category.php?cid=".$id."' class='cat_links'>".$title." - <font size='-1'>".$description."</font></a>";    
  }     echo $categories; 
} else {    
  echo "<p>Nav pievienota neviena kategorija pašlaik!</p>"; 
} 
?>

 

view_category.php skripts:

<?php
include_once("config_rel.php");
$cid = $_GET['cid'];
if (isset($_SESSION['uid'])) {
	$logged = " | <a href='create_topic.php?cid=".$cid."'>Izveidot jaunu ierakstu</a>";
} else {
	$logged = " | Tev ir jāienāk sistēmā lai izveidotu ierakstu!";
}
$sql = "SELECT id FROM categories WHERE id='".$cid."' LIMIT 1";
$res = mysql_query($sql) or die (mysql_error());
if (mysql_num_rows($res) == 1) {
	$sql2 = "SELECT * FROM topics WHERE category_id='".$cid."' ORDER BY topic_reply_date DESC";
	$res2 = mysql_query($sql2) or die(mysql_error());
	if (mysql_num_rows($res2) > 0) {
	@$topics .= "<table width='100%' style='border-collapse: collapse;'>";
	$topics .= "<tr><td colspan='3'><a href='index.php'>Atgriezties uz sākumlapu!</a>".$logged."<hr /></td></tr>";
	$topics .= "<tr style='background-color: #ddd;'><td>Topic Title</td><td width='65' align='center'>Replies</td><td width='65' align='center'>Views</td></tr>";
	$topics .= "<tr><td colspan='3'><hr /></td><tr>";
	while ($row = mysql_fetch_assoc($res2)) {
		$tid = $row['id'];
		$title = $row['topic_title'];
		$views = $row['topic_views'];		
		$date = $row['topic_date'];
		$creator = $row['topic_creator'];
		$topics .= "<tr><td><a href='view_topic.php?cid=".$cid."&tid=".$tid."'>".$title."</a><br /><span class='post_info'>Posted by: ".$creator." on ".$date."</span></td><td align='center'>0</td><td align='center'>".$views."</td></tr>";
		$topics .= "<tr><td colspan='3'><hr /></td></tr>";
	}
	$topics .= "</table>";
	echo $topics;
} else {
	echo "<a href='index.php'>Atgriezties uz Sākumlapu</a><hr />";
	echo "<p>Šajā kategorijā nav topiku!".$logged."</p>";	
  }
  
} else {
	echo "<a href='index.php'>Atgriezties uz Sākumlapu</a><hr />";
	echo "<p>Šāda kategorija vēl nepastāv!<p>";
}
?>



 

Edited by KalashaLv
Link to post
Share on other sites

Sāc ar koda lasāmības noformēšanu, piemēram:

<?php 
include_once("config_rel.php"); 
$sql = "SELECT * From categories ORDER BY category_title ASC"; 
$res = mysql_query($sql) or die(mysql_error()); 
$categories = ""; 

if (mysql_num_rows($res) > 0) { 
	while ($row = mysql_fetch_assoc($res)) {         
		$id = $row['id'];         
		$title = $row['category_title'];         
		$description = $row['category_description'];         
		$categories .= "<a href='view_category.php?cid=".$id."' class='cat_links'>".$title." - <font size='-1'>".$description."</font></a>";     
	}     
	echo $categories; 
} 
else {     
	echo "<p>Nav pievienota neviena kategorija pašlaik!</p>"; 
} 
?>

neviens neidziļināsies "siena kaudzē"!

Link to post
Share on other sites
26 minutes ago, Alnis said:

Sāc ar koda lasāmības noformēšanu, piemēram:


<?php 
include_once("config_rel.php"); 
$sql = "SELECT * From categories ORDER BY category_title ASC"; 
$res = mysql_query($sql) or die(mysql_error()); 
$categories = ""; 

if (mysql_num_rows($res) > 0) { 
	while ($row = mysql_fetch_assoc($res)) {         
		$id = $row['id'];         
		$title = $row['category_title'];         
		$description = $row['category_description'];         
		$categories .= "<a href='view_category.php?cid=".$id."' class='cat_links'>".$title." - <font size='-1'>".$description."</font></a>";     
	}     
	echo $categories; 
} 
else {     
	echo "<p>Nav pievienota neviena kategorija pašlaik!</p>"; 
} 
?>

neviens neidziļināsies "siena kaudzē"!

Hey, jā, atvaino. Sen neesmu rakstijis forumos un prasijis pēc palīdzības :D

Vakardien kaut ko taisot centos izveidot subkategorijas.
Viņš viņas izvelk, bet tagad viņš viņu parāda kā kategoriju.
Vienīgais ar ko netieku galā ir, kā viņu pārvērst par subkategoriju. ar MYSQL - WHERE viņš ķaut kā nesaistās un parāda ka nav kategoriju.

 

<?php
include_once("config_rel.php");
$sql = "SELECT * From categories ORDER BY category_title ASC";
$res = mysql_query($sql) or die(mysql_error());
$categories = "";
$subcat = "";
if (mysql_num_rows($res) > 0) {
while ($row = mysql_fetch_assoc($res)) {
	$catName = $row['category_title'];
		$id = $row['id'];
		$title = $row['category_title'];
		$description = $row['category_description'];
		$categories .= "<a href='view_category.php?cid=".$id."' class='cat_links'>".$title." - <font size='-1'>".$description."</font></a>";
	}
	echo $categories;

		$sql2 = "SELECT * FROM subcategories ORDER BY id ASC";
	$res2 = mysql_query($sql2) or die(mysql_error());
	
	if (mysql_num_rows($res) && ($res2) > 0) {
	while($row2 = mysql_fetch_assoc($res2)) {
		        
		$subtitle = $row2['subcat_title'];
		$subid = $row2['id'];
	$subcat .= "<a href='#' class='cat_links'>".$subtitle."</a>";	
	}
	echo $subcat;
	} else {
		echo "Nav pievienota neviena Sub Kategorija!";
	}
		
} else {
	echo "<p>Nav pievienota neviena kategorija pašlaik!</p>";
}

?>

 

Link to post
Share on other sites

1. Neizmanto `mysql_*` funkcijas:

Warning

This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

2. Nav nepieciešams veidot tabulu jaunām sub-kategorijām (vai tev būs 3. tabula sub-subcategories? Kas ar katru nākamo līmeni?), izmanto parent_id principu.

Pievienot jaunu lauku, piemēram to pašu `parent_id`, kas pirmā līmeņa kategorijām būs 0. Nākamajām tajā pašā laikā ievieto attiecīgi augsējās kategorijas ID. Utt. 
Tad pirmais atlasījums būš SELECT * FROM categories WHERE parent_id = 0; un iekš while vari likt SELECT * FROM categories WHERE parent_id = {$id}; un iegūt tieši tās kategorijas, kas tev ir nepieciešamas attiecīgajam elementam. Pietam to var arī rekursīvi dzīt cauri tik ilgi, kamēr atrodas kāda kategorija. (laigan šeit protams labāk veikt 1 DB pieprasījumu un pēc tam apstrādāt rezultātus, nevis veikt n-tos query pieprasījumus, bet sākumam var arī šādi).

3. Kā jau minēja, noformatē savu kodu skaisti lasāmu. Ne tikai citiem, bet arī sev. Paies daži mēneši un tu vairs nesapratīsi, kas tur rakstīts. Tur pat komentāru nav.

4. Tomēr mēģini nedrukāt ārā katru atrasto rindiņu. Izveidot sākumā, teiksim $output = ''; un pēc tam appendo katru rindu tam $output .= $categories;. Bet pašu outputu veic tikai beigās. Tādi to nepiedrazo headerus, ja uzturu vairākus mainīgos, varēsi vieglāk nokontrolēt kur attiecīgais elements parādās.

Link to post
Share on other sites
2 hours ago, aaxc said:

1. Neizmanto `mysql_*` funkcijas:

Warning

This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

2. Nav nepieciešams veidot tabulu jaunām sub-kategorijām (vai tev būs 3. tabula sub-subcategories? Kas ar katru nākamo līmeni?), izmanto parent_id principu.

Pievienot jaunu lauku, piemēram to pašu `parent_id`, kas pirmā līmeņa kategorijām būs 0. Nākamajām tajā pašā laikā ievieto attiecīgi augsējās kategorijas ID. Utt. 
Tad pirmais atlasījums būš SELECT * FROM categories WHERE parent_id = 0; un iekš while vari likt SELECT * FROM categories WHERE parent_id = {$id}; un iegūt tieši tās kategorijas, kas tev ir nepieciešamas attiecīgajam elementam. Pietam to var arī rekursīvi dzīt cauri tik ilgi, kamēr atrodas kāda kategorija. (laigan šeit protams labāk veikt 1 DB pieprasījumu un pēc tam apstrādāt rezultātus, nevis veikt n-tos query pieprasījumus, bet sākumam var arī šādi).

3. Kā jau minēja, noformatē savu kodu skaisti lasāmu. Ne tikai citiem, bet arī sev. Paies daži mēneši un tu vairs nesapratīsi, kas tur rakstīts. Tur pat komentāru nav.

4. Tomēr mēģini nedrukāt ārā katru atrasto rindiņu. Izveidot sākumā, teiksim $output = ''; un pēc tam appendo katru rindu tam $output .= $categories;. Bet pašu outputu veic tikai beigās. Tādi to nepiedrazo headerus, ja uzturu vairākus mainīgos, varēsi vieglāk nokontrolēt kur attiecīgais elements parādās.

Okey, man viss izdevās, paldies! Bet tagad saskāros ar problēmu. 
Kā man izvilkt su bkategorijas zem kategorijām?
Jo viņš Sub kategorijas izvelk tajā pašā rindā kurā kategorijas.

Category 1

Category 2

Category 3

Subcategory1

Subcategory2

Subcategory 3

 

Bet vajadzētu taču izvilkt
 


Category 1

Subcategory1

 

Category 2

Subcategory2

 

Category 3

Subcategory 3

 

kā man viņu izvilkt? es mēģināju 

echo $categories;

echo $subcat;

 

Link to post
Share on other sites

Nezinu, kā tu beigās realizēji, bet ja tu visu liec stringā un pēc tam drukā ārā, tad tā arī dari - liec visu vienā stringā, teiksim $categories, nevis daļu categories un daļu subcat. Visu outputu vienkārši appendo klāt $categories .= ...

Link to post
Share on other sites
1 hour ago, aaxc said:

Nezinu, kā tu beigās realizēji, bet ja tu visu liec stringā un pēc tam drukā ārā, tad tā arī dari - liec visu vienā stringā, teiksim $categories, nevis daļu categories un daļu subcat. Visu outputu vienkārši appendo klāt $categories .= ...

dabuju visu pie dzīvības! Paldies liels!
Mana slavenā kļūda bij tāda, ka es biju aizmirsis izdzēst otro while, kas iekļāva subkategorijas!

 

Bet tagad es saskaros ar problēmu, ka pie vienas kategorijas pievienojot 2 subkategorijas viņš izvelk šādi

 

testest  - kategorija (nebij te jābūt)
Category 1.1 - Test category 1.1 (šim bij jābūt pie 1 kategorjas.
Edited by KalashaLv
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...