За последние 24 часа нас посетили 60289 программистов и 1813 роботов. Сейчас ищут 847 программистов ...

Формировать классы A, B, A, B в цикле =)

Тема в разделе "PHP для новичков", создана пользователем Invision, 21 мар 2011.

  1. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Как через foreach чередовать классы?)
    Например:

    <div class="tyleA">Текст</div>
    затем
    <div class="tyleB">Текст</div>
    потом опять
    <div class="tyleA">Текст</div>

    итд) думаю это не сложно
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    сделай через for и считай остаток от деления
     
  3. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Invision
    Какая кавайная фоточка, мрррр ^__^
    Я за неё тебе даже решение напишу:

    PHP:
    1. <?php
    2.  
    3. foreach($array as $j => $value) {
    4.  if(!($j % 2)) {
    5.   // class A
    6.  } else {
    7.   // class B
    8.  }
    9. }
    Держи, сладенький
     
  4. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Благодарю :D
     
  5. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Вот еще вопрос) так по нубски писать или сойдет

    PHP:
    1. $db->query("SELECT * FROM news INNER JOIN news_cat ON news_cat.cat_id = news.cat_id WHERE active=1 ORDER BY id_news DESC limit $start,$per_page");
    2.  
    3. while($row = $db->get_row())
    4. {
    5. $new_title = $row['title'];
    6. if (strlen($new_title)>55) { $new_title=substr($new_title,0,55)."..."; }
    7. $view_content[] = array("id_news" => $row['id_news'], "cat_id" => $row['cat_id'], "author" => $row['author'], "image" => $row['image'], "title" => $new_title, "short" => $row['short'], "full" => $row['full'], "views" => $row['views'], "comments" => $row['comments'], "date" => fromDateTime($row['date']), "cat_name" => $row['cat_name']);
    8. $ctn = $row['cat_name'];
    9. }
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Метод должен возвращать результат, если это не экземпляр класса, отвечающего за работу с указателем на единственный результат.
    Человеческими словами:

    Плохой вариант:
    Код (Text):
    1. $db->query(...);
    2. $row = $db->get_row()
    Хороший вариант:
    Код (Text):
    1. $query = $db->query(...);
    2. $row = $query->get_row()
     
  7. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Это класс

    PHP:
    1. <?php
    2. class mysql
    3. {
    4.         private $mysql_error = '';
    5.         private $mysql_version = '';
    6.         private $mysql_error_num = 0;
    7.         private $show_error = true;
    8.  
    9.         public $query_num = 0;
    10.         public $connect = false;
    11.         public $result = false;
    12.         public $time_taken = 0;
    13.  
    14.         public function __construct( $show_error = true )
    15.         {
    16.                 $this->show_error = $show_error;
    17.  
    18.                 if(!$this->connect = @mysql_connect( DB_HOST, DB_USER, DB_PASS ))
    19.                 {
    20.                         if( $show_error )
    21.                                 $this->display_error(mysql_error(), mysql_errno());
    22.                         else
    23.                                 return false;
    24.                 }
    25.  
    26.                 if(!@mysql_select_db(DB_NAME, $this->connect))
    27.                 {
    28.                         if( $show_error )
    29.                                 $this->display_error(mysql_error(), mysql_errno());
    30.                         else
    31.                                 return false;
    32.                 }
    33.  
    34.                 $this->mysql_version = mysql_get_server_info();
    35.  
    36.                 if(!defined('COLLATE'))
    37.                         define ('COLLATE', 'cp1251');
    38.  
    39.                 if (version_compare($this->mysql_version, '4.1', ">="))
    40.                         mysql_query('/*!40101 SET NAMES \'' . COLLATE . '\' */');
    41.  
    42.                 return true;
    43.         }
    44.  
    45.         public function __destruct()
    46.         {
    47.                 @mysql_close($this->connect);
    48.         }
    49.  
    50.         public function query( $query, $once = false )
    51.         {
    52.                 $time_before = $this->get_real_time();
    53.                
    54.                 if(!($this->result = mysql_query( $query, $this->connect ) ) && $this->show_error)
    55.                 {
    56.                         $this->mysql_error = mysql_error();
    57.                         $this->mysql_error_num = mysql_errno();
    58.                        
    59.                         $this->display_error($this->mysql_error, $this->mysql_error_num, $query);
    60.                 }
    61.  
    62.                 $this->query_num ++;
    63.                 $this->time_taken += $this->get_real_time() - $time_before;
    64.                
    65.                 if( $once )
    66.                         return mysql_fetch_assoc( $this->result );
    67.                
    68.                 return $this->result;
    69.         }
    70.  
    71.         public function get_row()
    72.         {
    73.                 return mysql_fetch_assoc( $this->result );
    74.         }
    75.  
    76.         public function get_array()
    77.         {              
    78.                 return mysql_fetch_array( $this->result );
    79.         }
    80.  
    81.         public function num_rows()
    82.         {              
    83.                 return mysql_num_rows( $this->result );
    84.         }
    85.  
    86.         public function free()
    87.         {              
    88.                 return mysql_free_result( $this->result );
    89.         }
    90.  
    91.         public function safe( $source )
    92.         {
    93.                 return mysql_real_escape_string($source);
    94.         }
    95.  
    96.         private function get_real_time()
    97.         {
    98.                 list($seconds, $microSeconds) = explode(' ', microtime());
    99.                 return ((float)$seconds + (float)$microSeconds);
    100.         }
    101.  
    102.         private function display_error($error, $error_num, $query = '')
    103.         {
    104.                 if($query)
    105.                 {
    106.                         $query = preg_replace("/([0-9a-f]){32}/", "********************************", $query);
    107.                         $query_str = "$query";
    108.                 }
    109.         if(!isset($query_str)) {
    110.         $query_str = "";
    111.         }
    112.                 die('
    113.                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    114.                <html xmlns="http://www.w3.org/1999/xhtml">
    115.                <head>
    116.                <title>MySQL Fatal Error</title>
    117.                <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    118.                <style type="text/css">
    119.                <!--
    120.                body {
    121.                        font-family: Verdana, Arial, Helvetica, sans-serif;
    122.                        font-size: 10px;
    123.                        font-style: normal;
    124.                        color: #000000;
    125.                }
    126.                -->
    127.                </style>
    128.                </head>
    129.                <body>
    130.                        <font size="4">MySQL Error!</font>
    131.                        <br />------------------------<br />
    132.                        <br />
    133.                        
    134.                        <u>The Error returned was:</u>
    135.                        <br />
    136.                                <strong>'.$error.'</strong>
    137.  
    138.                        <br /><br />
    139.                        </strong><u>Error Number:</u>
    140.                        <br />
    141.                                <strong>' . $error_num . '</strong>
    142.                        <br />
    143.                                <br />
    144.                        
    145.                        <textarea name="" rows="10" cols="52" wrap="virtual">' . $query_str . '</textarea><br />
    146.  
    147.                </body>
    148.                </html>');
    149.         }
    150. }
     
  8. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Invision
    Это класс, который ты спиздил в движке DLE?
    Нашел на что равняться
     
  9. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    блин а я думаю какого х* вывод ошибок так похож на dle`шный) думаю косят под него еще) аха)

    http://3wforums.ru/topic/5153-poleznie- ... __p__20176

    так это правда dle`шный? оО
    А то я начал говнокод портала царапать и класс для работы с базой нарыл, получается нарушение авторских прав и тюрьма( это подстава подстав
     
  10. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Invision
    90% кода в теме - код движка DLE.
    Я раньше работал с DLE очень тесно: писал к нему модули, интеграции, да и сейчас этим грешу изредка по просьбам друзей. Код этого движка я знаю как свой собственный со всеми его минусами.
     
  11. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    класс который я дал еще раз говорю нашел в просторах интернета, остальное все сам писал под смарти
     
  12. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Чтобы не плодить постов тут же еще спрошу)


    PHP:
    1. if(isset($_GET['delete'])) {
    2. $id_deleted = check($_GET['delete']);
    3.  
    4. $db->query("DELETE FROM news WHERE id_news='$id_deleted'");
    5. $db->query("UPDATE news_cat SET total_news=total_news-1 WHERE cat_id=[тут_ид]");
    6. $accept[] = "Новость успешно удалена.";
    7. }
    Есть способ взять значение в какой категории находится новость которую я буду удалять и отнять значение там в коде видно как)) ?
    Просто я думаю будет тупо смотреться если я перед удалением сделаю что то типо

    PHP:
    1. $db->query("SELECT * FROM news WHERE id_news='$id_deleted'");
    2. $row = $db->get_row();
    и из row буду доставать ид категории удаляемой новости.. Наверняка есть способ попроще?)) Поместить в гет еще и ид категории?)) Тогда можно просто другую подставить)

    p.s check функция проверяет и юзает реалстринг =))