Jump to content
php.lv forumi

eT`

Reģistrētie lietotāji
  • Posts

    361
  • Joined

  • Last visited

Posts posted by eT`

  1. tammm mēģinu un man nesanāk izdomāt kādam būtu jāizskatās kvērijam kura f-ja būtu šāda:

    izvelk lasīto topiku skaitu no forums_views, kas ir noteiktam forumam, un ja skaits nesakrīt ar kopējo skaitu izvadīt UNREAD.

     

    SQL struktūra:

    forums_forumi (id,kid[kategorijas id], name,seoid,desc[description],topiccount,postcount)

    forums_topics (id,fid[foruma id], title,seoid,text,user,date, views, replies, pinned, locked,lastpost )

    forums_views (id,user, teemas_id )

     

    PHP struktūra

    while(izvelkam kategorijas)
    {
      while(izvelkam forumus no noteiktas kategorijas)
      {
       $rss = mysql_query("SELECT t2.user FROM forums_topics as t1, forums_views AS t2 WHERE t2.user = '".$_COOKIE['id']."' AND t1.fid = '".$for_id."'") or die(mysql_error());
           if(mysql_num_rows($rss) > 0) $read = 'http://filmam.lv/images/read.png';
      }
    }
    

     

    man varbūt vajag views tabulā pievienot vēl lauku foruma_id?

    un tad izvilkt visus ar to foruma_id un salīdzināt skaitu?

  2. DB:

    forums_kategorijas ( piemēram Galvenais, Offtopic utt. ) <= main kategorijas

    forums_forumi ( visi foruma piem. Jaunumi, Atsauksmes utt. )

    forums_topics ( tēmas )

    forums_posts ( posti )

    forums_views ( skatījumi )

     

    vieta, kur izvelk galveno forumu

    $sql1 = mysql_query("SELECT * FROM forums_kategorijas ORDER BY id ASC");
    while($row1 = mysql_fetch_array($sql1))
    {
    //print_r($_SESSION);
    $kat_name = $row1["name"];
    $kat_id = $row1["id"];
    echo "<tr><th colspan=4>$kat_name</th></tr>";
    echo "<tr><td class=title>Nosaukums</td><td class=title>Tēmas</td><td class=title>Ieraksti</td><td class=title>Pēdējais ieraksts</td></tr>";
    	$sql2 = mysql_query("SELECT * FROM forums_forumi WHERE kid='$kat_id' ORDER BY id ASC");
    	while($row2 = mysql_fetch_array($sql2))
    	{
    	$for_id = $row2["id"];
    	$rs = mysql_query("SELECT t2.user FROM forums_topics AS t1, forums_views AS t2 WHERE t2.user = '".$_COOKIE['id']."' AND t1.fid = '".$for_id."'");
     		if(mysql_num_rows($rs) > 0) $read = "http://filmam.lv/images/read.png";
    	else $read = "http://filmam.lv/images/unread.png";
    
    	$for_name = $row2["name"];
    	$for_name_seo = seo_string($row2["name"]);
    	$for_desc = $row2["desc"];
    	$for_t_sk = $row2["topiccount"];
    	$for_p_sk = $row2["postcount"];
    		$sql3 = mysql_query("SELECT * FROM forums_posts WHERE fid='$for_id' ORDER BY date DESC LIMIT 1");
    		$sql3a = mysql_query("SELECT * FROM forums_topics WHERE fid='$for_id' ORDER BY date DESC LIMIT 1");
    		$row3 = mysql_fetch_array($sql3);
    		$row3a = mysql_fetch_array($sql3a);
    		if($row3a["date"] > $row3["date"])
    		{
    		$laiks = $row3a["date"];
    		$name_ori = substr($row3a["title"],0,15);
    		$name = seo_string($row3a["title"]);
    		$useris = $row3a["user"];
    		}
    		else
    		{
    		$laiks = $row3["date"];
    		$tid3 = $row3["tid"];
    		$sql3b = mysql_query("SELECT title FROM forums_topics WHERE id='$tid3'");
    		$row3b = mysql_fetch_array($sql3b);
    		$name_ori = substr($row3b["title"],0,15);
    		$name = seo_string($row3b["title"]);
    		$useris = $row3["user"];
    		}
    	echo "
    	<tr width=100%>
    	<td width=60%>
    		<table class=forum>
    		<tr width=100%>
    		<td class=no width=10%><img src=$read /></td><td class=no width=90%><b><a href=http://filmam.lv/forum/$for_name_seo>$for_name</b></a><br />$for_desc</td>
    		</tr>
    		</table>
    	</td>
    	<td width=10% class=num>$for_t_sk</td>
    	<td width=10% class=num>$for_p_sk</td>
    	<td width=20%>";
    	if(!empty($row3) || !empty($row3a))
    	{
    	echo "<small>$laiks<br />Tēma: <a href=http://filmam.lv/forum/$for_name_seo/$name>$name_ori</a><br />Autors: <a href=http://filmam.lv/user/$useris>$useris</a></small>";
    	}
    	else
    	{
    	echo "<small>Nav ierakstu!</small>";
    	}
    	echo "</td>
    	</tr>";
    	}
    	echo "<tr><td class=atstarpe></td></tr>";
    }
    

     

    EDIT: tikko ievēroju, ka man foruma galvenajā lapā read rāda visiem, forumiem, kuros ir ieraksti, bet pārējiem unread. Tātad vaina ir kvērijā, ne?

  3. tamm vadoties pēc anonīmā posta izveidoju to sistēmu.

    man strādā kad apskatu noteiktu subkategoriju ( rādās lasītiet un nelasītie ) bet nestrādā foruma galvenajā lapā.

     

    $sql2 = mysql_query("SELECT * FROM forums_forumi WHERE kid='$kat_id' ORDER BY id ASC");
    while($row2 = mysql_fetch_array($sql2))
    {
    $for_id = $row2["id"];
    
    $rs = mysql_query("SELECT t2.user FROM forums_topics AS t1, forums_views AS t2 WHERE t2.user = '".$_COOKIE['id']."' AND t1.fid = '".$for_id."'");
    if(mysql_num_rows($rs) > 0) $read = "http://filmam.lv/images/read.png";
    else $read = "http://filmam.lv/images/unread.png";
    

     

    EDIT:

    šāds man ir kad apskatu noteiktu subkategoriju ( forumu )

    $rs = mysql_query("SELECT * FROM forums_views WHERE user = '".$_COOKIE['id']."' AND temas_id = '".$row5['id']."'");
    if(mysql_num_rows($rs) > 0) $read = "http://filmam.lv/images/read.png";
    else $read = "http://filmam.lv/images/unread.png";
    

  4. @easy es jau labprāt liktu caur DB bet nevari pačekot kapēc mana f-ja neiet?

     

     function read($temasid,$useris)
     {
     $k = mysql_query("SELECT id FROM forums_posts WHERE tid='$temasid' ORDER BY id DESC LIMIT 1");
     $row = mysql_fetch_array($k);
     $posts = $row["id"];
     $l = mysql_query("SELECT * FROM forums_views WHERE user='$useris' AND temas_id='$temasid' AND posta_id='$posts'");
     $m = mysql_fetch_array($l);
       if(empty($m))
       {
       $lasita = "unread.png";
       }
       else
       {
       $lasita = "read.png";
       }
     return $lasita;
     }
    

     

    un f-jas izsaukšana

    read($row5["id"], $_SESSION["user"]);
    <img src=http://filmam.lv/images/$lasita />

  5. @ 2easy, bet ja tēmā ir jauns posts?

    piemēram vai ir kāda iespēja, kā salādēt cepumā visu saturu kā emm varētu pat ar masīvu laikam.

    un katru reizi kā apskata topiku, tā pievieno cepumam jaunu masīva elementu.

    Bet kā no cepuma pārbaudīt vai tāds elements eksistē?

     

    @ anonīms. neko nesaprotu, ko tu tur esi sarakstījis :D ķīniešu ābece :D

  6. ideja.

     

    SQL tabula.

    id,lietotajs,temas_id,posta_id

     

    izvelkam no konkrētā topika pēdējā posta id, tad salīdzinam ja tabulā jau ir attiecīgs lauks rādam read, bet ja nav pie apskatīšanas ievietojam un rādam unread.

     

    EDIT:

     function read($temasid,$useris)
     {
     $k = mysql_query("SELECT id FROM forums_posts WHERE tid='$temasid' ORDER BY id DESC LIMIT 1");
     $row = mysql_fetch_array($k);
     $posts = $row["id"];
     $l = mysql_query("SELECT * FROM forums_views WHERE user='$useris' AND temas_id='$temasid' AND posta_id='$posts'");
     $m = mysql_fetch_array($l);
       if(empty($m))
       {
       /*atgriež nelasīto bildi*/
       }
       else
       {
       /*atgriež lasīto bildi*/
       }
     }
    

     

    bet vajadzētu atgriezt bildītes.

  7. Tamm forumu tagad esmu uzčinījis jau tik tālu, ka ir topiku pinnošana/lockošana.

    Mēģināju izdomāt, kā lai uzliek, sistēmu, kas nosaka vai useris to topiku, jau ir apskatījis ( ķipa New Posts )

    nav ne mazākās nojausmas :/

  8. BUMP!

    vai kāds nezin kādu skriptu, kas pec linka Labot nospiešanas nomainītu posta satura izskatu no teksta uz textarea un ar pogu saglabāt ( to HTML daļu jau mācēšu, bet to JS daļu :/ )

  9. Labi piedod, ja skaidri neformulēju savu domu, bet nezinu, kā lai uztaisa to 1. punktu jo JS nav galīgi mans draugs :/

     

    briedi, es jau gribēju, bet paša rakstīts kaut kā sirdij tuvāks + nevarēju atrast vienkāršu forumu, ko ielikt webā ( meklēju ko līdzīgu http://chill.lv/forum ) viss tik vienkāršs nav daudz nevajadzīgu addonu utt. )

  10. Tātad es savam uzkodētajam forumam gribētu pievienot dažas ērtas moderēšanas iespējas.

    1. Moderatori var labot foruma title ( piem. ieiet forumā uzbīda uz title un parādās iespēja labot [ aktivizējas input lauks ] )

    2. Moderatori var labot postus ( to gan varētu bez JS laikam [ pielikšu mby pogu labot ] )

    3. Forumā ir iespēja piestiprināt un aizslēgt topiku [ to laikam arī ar pogām varētu izdarīt ]

     

    2. un 3. iespējams varētu pats tikai jāizdomā, kā pēc labošanas parādīt Laboja XXX. Iemesls: YYY

     

    Svarīgākais ir 1. :)

    + tagad mēģinu izdomāt, kā optimizēt forumu ( padarīt atrāku, samazināt kvēriju skaitu utt. )

  11. emm man maza problēmiņa.

    skripts gan ir mazliet cits bet smailiju f-ja līdzīga

     

    $smilies = array(
    	  ":)" => "smile2.gif",
    	  ":D" => "grin.gif",
    	  ":p" => "tongue.gif",
    	  ":/" => "confused.gif",
    	  ":(" => "sad.gif",
    	  ";(" => "weep.gif",
    	  ":o" => "blink.gif",
    	  "8)" => "cool1.gif",
    	  "(blush)" => "blush.gif",
    	  "(love)" => "wub.gif",
    	  "(hello)" => "wave.gif",
    	  ":@" => "rant.gif",
    	  ":x" => "nugget.gif",
    	  "(inlove)" => "lovers.gif",
    	  ":*" => "kissing2.gif",
    	  "(devil)" => "devil.gif",
    	  "o.O" => "crazy.gif",
    	  "(stupid)" => "chair.gif",
    	  "(beer)" => "beer2.gif",
    	);
    
    	reset($smilies);
    	while (list($code, $url) = each($smilies))
    	$s = str_replace($code, "<img border=0 src=\"http://filmam.lv/images/smilies/$url\" title=\"". htmlspecialchars($code) ."\" alt=\"" . htmlspecialchars($code) . "\">", $s);
    

     

    bet pie izvades iegūstu:

    ://filmam.lv/images/smilies/smile2.gif" title=":)" alt=":)">

     

    kas viņam http nepatīk?

     

    EDIT: jaunā versija, bet rāda tikai to confused smaidiņu :/

    $urlis = 'http://filmam.lv';
    reset($smilies);
    while (list($code, $url) = each($smilies))
    $s = str_replace($code, "<img border=0 src=\"".htmlspecialchars($urlis)."/images/smilies/".htmlspecialchars($url)."\" title=\"". htmlspecialchars($code) ."\" alt=\"" . htmlspecialchars($code) . "\">", $s);
    

  12. pie login formās kad viss ir ok uzliec

     

    $_SESSION["useris"] = $pieskiram_kkadu_mainigo_piemeram_id

    faila sākumā

    session_start(); ( šito vajag visos failos )

     

    tālāk piem jaunsfails.php

     

    session_start();

    if(isset($_SESSION["useris"]))

    {

    rādam lapu un velkam spiežam stumjam

    }

    else

    {

    nogalinam un slēpjam pierādījumus

    }

×
×
  • Create New...