Jump to content
php.lv forumi

rausis

Reģistrētie lietotāji
  • Posts

    76
  • Joined

  • Last visited

Posts posted by rausis

  1. Nu izdarīju tā kā teici, beigu beigās sanāca tas pats variants, kas sākumā, tāds kods:

    function get_menu($id, $arr) {
    if(empty($arr[$id]) || !is_array($arr[$id])){
    	return '';
    }
    $parents = array();
    	$s  = "\n<ul class='".($id > 0 ? 'sub' : 'main')."'>\n";
    	$i = 0;
    foreach($arr[$id] as $key => $val) {
    	($id < 1 ? $parents[$i] = $key : '');
    	$s .= "<li><a href='?section=".$key."'>".$val."</a>".(in_array($_GET['section'], $parents) ?  get_menu($key, $arr) : '')."</li>\n";
    	$i++;
    }
    	$s .= "</ul>\n";
    	echo '<pre>';
    	print_r($parents);
    	echo '</pre>';
    return $s;
    }

     

    Lab, mēģināšu vēlreiz... :D

     

    Viss koks:

    01gedntlczppcrlqb0ks.png

     

    Tātad, ieeju lapā un menu izskatās šādi:

    wsbrdywyhxq0424eq16h.png

     

    Uzspiežu uz pirmā parent, man parādās uzspiestā parent'a apakšsadaļas:

    xg5km2uzvoyay2i2kqzy.png

     

    Tad spiežu uz kādas apakšsadaļas un menu man atkal pārvēršas par šo:

    n49n5ibpiq9rzs81l79g.png

     

    Bet es vēlos, lai man viņš nav tāds kāds viņš ir tajā iepriekšējā bildē, bet vēlos lai viņš turpina rādīt apakšsadaļas:

    xg5km2uzvoyay2i2kqzy.png

     

     

    Nu tā.... Paldies! :)

  2. kods:

    function get_menu($id, $arr) {
    if(empty($arr[$id]) || !is_array($arr[$id])){
    	return '';
    }
    	$s  = "\n<ul class='".($id > 0 ? 'sub' : 'main')."'>\n";
    foreach($arr[$id] as $id => $val) {
    	$s .= "<li><a href='?section=".$id."'>".$val."</a>".($id == $_GET['section'] ?  get_menu($id, $arr) : '')."</li>\n";
    }
    	$s .= "</ul>\n";
    return $s;
    }
    
    $arr = array();
    $res = sql_query('SELECT id, parent_id, name FROM menu') or die(mysql_error());
    while($row = mysql_fetch_object($res)) {
    $arr[$row->parent_id][$row->id] = $row->name;
    }
    echo get_menu(0, $arr);

     

    Kods sākumā izvada parent-linkus, uzspiežot uz kāda no tiem, zem tā parādās apakškategorijas, tik tālu viss ok, ja uzspiež uz apakškategorijas, tad atkal rāda tikai parent-linkus. Gribētos panākt tā, lai uzspiežot uz apakškategorijas, zem parent tās arī rādītos nevis pazustu. Cerams kāds kaut ko saprata :) Paldies!

  3. $poll_check = mysql_query("SELECT id FROM polls WHERE poll_id = ".intval($_GET['id']));
    $pid = mysql_fetch_row($poll_check);
    print_r($pid);

  4. tas otrs kverijs nemaz nav ciklā, var darīt kkā tā:

    <?php
    
    
    $pedejie_rezultati = mysql_query("SELECT COUNT(id) AS count, id, valsts, pretinieks, km1_rez, km2_rez FROM ".DB_PREFIX."cw_rezultati ORDER BY id DESC LIMIT 5");
    
    while($pr = mysql_fetch_array($pedejie_rezultati)) {
    
    if($pr['km1_rez'] > $pr['km2_rez']) {
    	$krasa = 'green';
    } elseif($pr['km1_rez'] == $pr['km2_rez']) {
    	$krasa = 'blue';
    } else {
    	$krasa = 'red';
    }
    	echo '<li><a href="?sadala=cw_rezultati&id='.$pr['id'].'">'.$settings['komandas_tags'].' vs <img src="images/flags/'.$pr['valsts'].'.gif" alt="" /> '.$pr['pretinieks'].'</a> <span style="color:'.$krasa.'; font-weight:bold;">'.$pr['km1_rez'].':'.$pr['km2_rez'].'</span></li>';
    }
    
    $cnt = mysql_fetch_row($pedejie_rezultati);
    
    if($cnt[0] < 1) {
    	echo "<li>Pagaidām vēl nav noticis neviens cw...</li>";
    }
    
    ?>

     

    var izmantot arī mysql_num_rows()...

  5. if funkcija

     

    function convert_time($laiks) {
    preg_match('/^(\d\d):(\d\d):(\d\d)$/', $laiks, $mass);
      if ($mass[1] !== '00') {
    return $mass[1].' stundas, '.$mass[2].' minūtes, '.$mass[3].' sekundes';
      } else if($mass[2] !== '00') {
    return $mass[2].' minūtes, '.$mass[3].' sekundes';
      } else {
      	return $mass[3].' sekundes';
      }
    }

     

    tiek ievadīts laiks 00:00:00 formātā.

     

    Ievadu 00:00:28 - izvada 28 sekundes (viss ok!)

    Ievadu 00:04:00 - izvada 04 minūtes, 00 sekundes (tomēr gribētos, lai izvada 4 minūtes)

    Ievadu 02:04:08 - izvada 02 stundas, 04 minūtes, 08 sekundes (gribētos 2 stundas, 4 minūtes, 8 sekundes), utt..

     

    Kāds nevarētu palīdzēt, kā to dabūt gatavu, protams, var sarakstīt garu penteri ar nosacījumiem un citiem brīnumiem, bet domāju, ka to var uzrakstīt daudz īsāk un strādās arī ātrāk.

     

    Paldies :)

  6. //--- useri
    $res = mysql_query('SELECT id, members_display_name FROM ibf_members WHERE last_activity >= '.intval((time() - 900)).' GROUP BY id') or die(mysql_error());
    echo "LIETOTĀJI (".mysql_num_rows($res).") <br />\n";
    while($users = mysql_fetch_object($res)) {
    echo "<a href='member.php?uid=".$users->id."' title='Apskatīt ".$users->members_display_name." profilu'>".$users->members_display_name."</a><br />\n";
    }
    //--- useri
    
    
    //--- guesti
    $res1 = mysql_query('SELECT ip_address FROM ibf_sessions WHERE member_id = 0 AND running_time >= '.intval((time() - 900)).' GROUP BY id') or die(mysql_error());
    echo "<br />CIEMIŅI (".mysql_num_rows($res1).") <br />\n";
    while($guests = mysql_fetch_object($res1)) {
    echo $guests->ip_address."<br />\n";
    }
    //--- guesti

  7. <?php
    require_once 'inc/functions.php';
    head();
    
    
    //--- useri
    $ipbwi->DB->query('SELECT id, members_display_name FROM '.SQL_PREFIX.'members WHERE last_activity >= '.intval((time() - 900)).' GROUP BY id');
    echo "LIETOTĀJI (".$ipbwi->DB->get_num_rows().") <br />\n";
    while($users = $ipbwi->DB->fetch_object()) {
    echo "<a href='member.php?uid=".$users->id."' title='Apskatīt ".$users->members_display_name." profilu'>".$users->members_display_name."</a><br />\n";
    }
    //--- useri
    
    
    //--- guesti
    $ipbwi->DB->query('SELECT ip_address FROM '.SQL_PREFIX.'sessions WHERE member_id = 0 AND running_time >= '.intval((time() - 900)).' GROUP BY id');
    echo "<br />CIEMIŅI (".$ipbwi->DB->get_num_rows().") <br />\n";
    while($guests = $ipbwi->DB->fetch_object()) {
    echo $guests->ip_address."<br />\n";
    }
    //--- guesti
    
    $ipbwi->DB->close_db();
    
    
    foot();
    ?>

     

    nedaudz pielabot un strādās, ja nesanāk, lieto iepriekšminēto klasi ;)

  8. ar file_get_contents() nolasu lapas saturu, kā rezultātā sanāk kkas tāds:

    <table width="100%" border="0" align="center" cellpadding="2" cellspacing="0">
    <tr>
    <td align=center width=110>1</td>
    <td align=left>2</td>
    <td align=center> </td>
    <td align=center>3</td>
    </tr>
    <tr>
    <td align='center'>2008-11-19 02:32:47</td>
    <td>3</td>
    <td align='center'>3</td><td>
    </td></tr></table>

     

    Vajag izgriezt ārā datumu, lai tas sanāk bez nekāda html, tikai 2008-11-19 02:32:47

    kā ko tādu panākt? spēlējos ar preg_match un explode, bet sapratu, ka tie patterni iekš preg_match priekš manis ir par grūtu un neizprotamu, varbūt kāds var palīdzēt, dot kādu domu graudu :)

    Paldies!

  9. Ir funkcija, kura rāda izvēlnes sadaļas un apakšsadaļas, darbojas kā nākas, tikai veic pārāk daudz mysql vaicājumus, varbūt ir kāda iespēja viņu optimizēt, taisīt savādāk, tomēr 5 sql vaicājumi priekš 2 sadaļām un 2 apakšadaļām ir par šerpu, ir plānotas stipri vairāk sadaļas un apakšadaļas, tapēc griežos pie jums, pēc palīdzības, padoma. Paldies... :)

     

    function display_sub_menu($parent, $lim) {
      global $selected;
      $sql = sprintf("SELECT id, title, body FROM article_lv WHERE parent_id = %d",$parent);
      $res = sql_query($sql) or die(mysql_error());
      echo ($lim > 0 ? '<i>' : '');
      while ($row = mysql_fetch_array($res)) {
      echo "<li><a href=\"index.php?p=".$row['id']."\">\n";
      echo "<span".($selected == "index.php?p=".$row['id']."" ? " style=\"font-weight: bold;\"" : "").">".$row['title']."</span></a>\n";
      echo "</a></li>\n";
      display_sub_menu($row['id'], $lim+1);
      }
      echo ($lim > 0 ? '</i>' : '');
    }// function display_sub_menu

×
×
  • Create New...