Jump to content
php.lv forumi

Lapa ar kategorijām + 5 pēdējie ieraksti tajās..


metroid2

Recommended Posts

Sveiki.. Lieta tāda, ka ir izveidots kategoriju skripts un man vēlme ir pievienot tām 5 pēdējos ierakstus..

Piem..

Kategorijas nosaukums

Ieraksts5

Ieraksts4

Ieraksts3

Ieraksts2

Ieraksts1

Problēma ir tāda, ka atdūros pret to kā lai izvelk arā informācīju.

Select tiripiri WHERE game_cat_id='".$_GET['game_id']."' ??.. Lieta tāda ka jāvelk arā no divām db, bet nu tā isti nau problēma, bet kā lai dod ziņu skriptam, ka tieši tie pēdējie pieci ieraksti pieder taj noteiktajai kategorijai, kā viņam saprast.?

Paldies.

Link to comment
Share on other sites

Laikam īsti pareizi nebūšu paskaidrojis..

Mans ir games.php ievadot to savā pārlūkprogramma parādās pirmajā lapā visas kategorijas iespējamās un vēlme ir katrai kategorijai apakšā izveidot to kas rakstīts pirmajā postā, tākā tā..

Man pagaidam ir izvilkts tas ko daGrevis uzdrukāja. - Tas rāda kategorijas, bet lai dabūtu pēdējos 5 ierakstus katrā kategorijā man ir jāvelk informācīja no otras tabulas games.

SELECT `id`, `title`, `description`

FROM `games`

ORDER BY `id` DESC

LIMIT 5

bet kā piedabūt lai izvelk ārā informācīju zem katras tabulas par dotajiem ierakstiem. pa limit un order nau problēmu, bet kā lai viņš atpazīst kategorijas?.

+ vēl protams games cat_id - pie kuras kategorijas pieder.

Edited by metroid2
Link to comment
Share on other sites

kvērijam priekšā vajag USE tava_datubāze GO [insert_query_here]

 

edit: vair arī vienkārši:

 

$db1 = mysql_connect('localhost' , 'root', 'pass'); 
$db2 = mysql_connect('localhost' , 'root', 'pass', true);

$c1 = mysql_select_db('db1',$db1);
$c2 = mysql_select_db('db2',$db2);

$a = mysql_query("SELECT id FROM table ORDER BY id DESC",$c1);
while($d = mysql_fetch_array($a))
{
   $b = mysql_query("SELECT id FROM table2 WHERE cat=".$d[0]." ORDER BY id DESC LIMIT 5",$c2);
   while($c = mysql_fetch_array($b))
   {
       echo $c[0];//izvada ID
   }
}

Edited by eT`
Link to comment
Share on other sites

Rakos, kaut ko samuhļīju no paraugiem, bet nu tas nav vienkāršākais kvērijs:

 

SELECT ac.id AS category_id, a.id AS article_id, a.heading, a.category AS article_category
FROM article_categories ac
JOIN articles a ON ac.id = a.category
LEFT JOIN articles a2 ON a2.category = ac.id
AND a2.id < a.id
GROUP BY ac.id, ac.name, a.id, a.heading
HAVING COUNT( a2.id ) <2
ORDER BY ac.name, a.heading;

Edited by briedis
Link to comment
Share on other sites

Kur tieši ir problēma?

Izvadīt ierakstus, tā lai tie būtu sakārtoti pa kategorijām, vai izvilkt ierakstus no divām datubāzēm vienlaicīgi?

 

Ja pirmais variants, tad http://php.lv/f/topic/17496-forums-attiecigo-forumu-izvadisana-sava-kategorija/page__gopid__136903#entry136903

 

 

Ja otrais, tad gan nemācēšu neko labu ieteikt.

 

Es mēģinātu pēdējos 5 ierakstus no katras db ielasīt vienā masīvā, par indexu lietojot piemēram pēdējā ieraksta tiemstampu, tad masīvu sakārtot pēc indexiem un izvadīt pēdējos 5 ierakstus no masīva.

 

Edit: Lai arī... http://www.sitepoint.com/forums/mysql-182/php-mysql-multiple-database-select-440095.html

Edit-double: Autors tikai pirmajā postā kko minēja par otru datubāzi, vai tā bija domāta tabula, nevis datubāze?

Edited by mickys
Link to comment
Share on other sites

Es izgāzos kā veca sēta!..

Bij man jeu skripts kā paraugs.. LOL, vieglāk par vieglu..

Tas ko es nevarēju iebraukt -

 WHERE game_cat='".$data['game_cat_id']."' 

 

Šis ir mans paraugs, varbūt kādam noderēs, šis ir no cms tāpēc.. Skatietes paši.. Man strādā šis, tikai nedaudz pārveidots.. Šis izvelk visas kategorijas un attiecīgi no kategorijām pa 10 ierakstiem un ja ir vairāk par 10 tad dod linku caur kuru var tikt uz vietu kur ir vairāk ieraksti.. nedaudz pārveidojot tiku pie tā ko vēlējos..

 

	$result = dbquery("SELECT news_cat_id, news_cat_name FROM ".DB_NEWS_CATS." ORDER BY news_cat_id");
if (dbrows($result)) {
	echo "<table cellpadding='0' cellspacing='0' width='100%'>\n";
	$count = 0;
	$columns = 2; //column number declaration
while ($data = dbarray($result)) {
		$rows = dbcount("(news_id)", DB_NEWS, "news_cat='".$data['news_cat_id']."' AND ".groupaccess('news_visibility')." AND (news_start='0'||news_start<=".time().") AND (news_end='0'||news_end>=".time().") AND news_draft='0'");
		if($count == 0)  echo "<tr>\n"; 

		echo "<td class='tbl2n' style='vertical-align:top'><center><h2 class='panelcap'>".$data['news_cat_name']."</h2></center>";
		if ($rows) {
			$result2 = dbquery("SELECT news_id, news_subject FROM ".DB_NEWS." WHERE news_cat='".$data['news_cat_id']."' AND ".groupaccess('news_visibility')." AND (news_start='0'||news_start<=".time().") AND (news_end='0'||news_end>=".time().") AND news_draft='0' ORDER BY news_datestamp DESC LIMIT 10");
			while ($data2 = dbarray($result2)) {
				echo THEME_BULLET." <a href='news.php?readmore=".$data2['news_id']."'>".$data2['news_subject']."</a><br />\n";
			}
			if ($rows > 10) { echo "<div style='text-align:right'>".THEME_BULLET." <a href='".FUSION_SELF."?cat_id=".$data['news_cat_id']."'>".$locale['405']."</a></div>\n"; }
		} else {
			echo THEME_BULLET." ".$locale['404']."\n";
		}
		if($count == $columns - 1) echo "</td></tr>\n";//here without the!
		$count = ++$count % $columns;
} }
echo "</table>";

 

Paldies par cenšanos! :)

Link to comment
Share on other sites

  • 2 weeks later...

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...