За последние 24 часа нас посетили 17435 программистов и 1651 робот. Сейчас ищут 944 программиста ...

Превозмогания тред

Тема в разделе "PHP для новичков", создана пользователем ubunta2, 27 июн 2017.

  1. alexpride1993

    alexpride1993 Новичок

    С нами с:
    28 мар 2016
    Сообщения:
    56
    Симпатии:
    20
    Согласен, я вас понял и признаю свое заблуждение, я слишком привязался к конкретной реализации парадигмы. Просто за все время работы с PHP я не видел ни одной красивой (ключевое слово) реализации парадигмы MVC без разделения приложения на классы (пусть и без каноничного ООП), по этому и написал свое сообщения в таком ключе. Кстати, буду благодарен за примеры правильной безклассовой реализации MVC на PHP, очень интересно как это выглядит.
     
  2. xaker01

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

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    Да у каждого из нас свои понятия итд.
    Тут персонаж убунта уже известен своей...логичностью.
    Что не говори не поможет.
     
  3. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    это логика видеокурса
     
  4. Danil005

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

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    Своей головой думать надо. И не смотреть видеокурсы, а сделать что-то своё путем проб и ошибок. И не писать на форуме "У меня не получается, почему?" А искать проблему в Google.
     
  5. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    igordata нравится это.
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Видеоуроки, всё это фигня ты просто переписываешь и не думаешь, я сейчас учусь по этому задачнику, там в каждом разделе по 50 мини задач, мне это очень нравится http://theory.phphtml.net/books/php/

    А ещё видеоуроки, отнимают кучу времени, у меня обычно час просмотра, растягиваются на 3 часа.
     
    #756 Dimon2x, 29 авг 2017
    Последнее редактирование: 29 авг 2017
    plgv, igordata и Fell-x27 нравится это.
  7. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    сохранил в закладках, есть что почитать, жаль что книги щас стоят ппц как дорого,а читать книгу на компе это жесть...
     
  8. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Я книги бумажные покупаю
     
  9. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    ну дак я про бумажные и писал
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Есть же электронные книги..
     
    [vs] нравится это.
  11. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    их неудобно читать, особенно листать.
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    потерпеть можно ради великой цели, нехер сопли разводить :D
    есть бабки на бумажную - пожалуйста
    нет - качай, воруй, только учись.
     
    denis01 и TeslaFeo нравится это.
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Так говорят только те, кто не пробовал ;)

    Во-первых, современные книжки сенсорные, листаются как жестами, так и касаниями, плюс дополняются кнопками.
    Во-вторых, не надо таскать тонну макулатуры.
    В-третьих их охренеть удобно читать. Любой размер шрифта, мгновенный доступ к оглавлению, закладки, да хоть заметки на полях рисуй и в тексте выделения делай (в хороших читалках чего только нет). Не говоря уже о встроенных словарях и переводчиках на всякий пожарный, работающих непосредственно во время чтения.
    В-четвертых, если нет времени читать самому, есть ридеры, умеющие читать вслух в наушник. У меня как раз такой. ЧСХ, читает вполне сносно, даже с восходящими и нисходящими интонациями.

    Ридеры - охрененная вещь. Именно ридеры, а не убогие "читалки" на телефонах.
     
  14. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Есть. Они называются курсами (включая видео) лекций Стэнфордского университета лежащими в свободном доступе. Блестящий по качеству учебный материал какой бы курс из читаемых в стэнфорде вы бы не выбрали.
     
  15. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    Parse error: syntax error, unexpected ')', expecting ';' in E:\OpenServer\domains\test\1\lib\database_class.php on line 24

    Код (Text):
    1. <?php
    2.  
    3. require_once "config_class.php";
    4. require_once "checkvalid_class.php";
    5.  
    6. class Database{
    7.    
    8.     private $config;
    9.     private $mysqli;
    10.     private $valid;
    11.    
    12.     public function __construct(){
    13.         $this->config = new Config();
    14.         $this->valid = new CheckValid();
    15.         $this->mysqli = new mysqli($this->config->host, $this->config->user, $this->config->password, $this->config->db);
    16.         $this->mysqli->query("GET NAMES `utf8`");
    17.     }
    18.  
    19.     private function query($qery){
    20.         return $this->mysqli->query($query);
    21.     }
    22.    
    23.     private function select($table_name, $fields, $where = "", $up = true, $limit = ""){
    24.         for ($i = 0, $i < count($fielfds), $i++){
    25.             if ((strpos($fields[$i], "(") === false) &&& ($fields[$i] != "*") $fields[$i] = "`"$fields[$i]."`";
    26.            
    27.         }
    28.         $fields = implode(",", $fields);
    29.         $table_name = $this->config->db_prefix.$table_name;
    30.         if (!$order) $order = "ORDER BY `id`";
    31.         else {
    32.             if ($order != "RAND()"){
    33.                 $order = "ORDER BY `$order`";
    34.                 if (!$up)  $order .= " DESC";
    35.             }
    36.             else $order = "ORDER BY `$order`";
    37.         }
    38.         if ($limit) $limit = "LIMIT $limit";
    39.         if ($where) $where = "SELECT $fields FROM $table_name WHERE $where $order $limit";
    40.         else $query = "SELECT $fields FROM $table_name $order $limit";
    41.         $result_set = $this->query($query);
    42.         if (!$result_set) return false;
    43.         $i = 0;
    44.         while ($row = $result_set->$fetch_assoc()){
    45.             $data[$i] = $row;
    46.             $i++;
    47.         }
    48.         $result_set->close();
    49.         return $date;
    50.     }
    51.     public function insert($table_name, $new_values){
    52.         $table_name = $this->config->db_prefix.$table_name;
    53.         $query = "INSERT INTO $table_name (";
    54.         foreach ($new_values as $fields => $value) $query .= "`".$field."`,";
    55.         $query = substr($query, 0, -1);
    56.         $query .= ") VALUES (";
    57.         foreach ($new_values as $value) $query .= "'".addslashes($values)."',";
    58.         $query = substr($query, 0, -1);
    59.         $query .= ")";
    60.         return $this->query($query);
    61.  
    62.     }
    63.     private function update($table_name, $upd_fields. $where){
    64.         $table_name = $this->config->db_prefix.$table_name;
    65.         $query = "UPDATE $table_name SET";
    66.         foreach ($upd_fields ad $field) => $value) $query .= "`$fields`" = '".addslashes($values)."',";
    67.         $query = substr($query, 0, -1);
    68.         if ($where){
    69.             $query .= " WHERE $where";
    70.         return $this->query($query);
    71.         }
    72.         else return false;
    73.     }
    74.    
    75.     public function delete($table_name, $where = ""){
    76.     $table_name = $this->config->db_prefix.$table_name;
    77.     if ($where){
    78.         $query = "DELETE FROM $table_name WHERE $where";
    79.         return $this->query($query);
    80.         }
    81.         else return false;
    82.     }
    83.    
    84.     public function deleteAll($table_name){
    85.     $table_name = $this->config->db_prefix.$table_name;
    86.     $query = "TRUNCATE TABLE $table_name";
    87.     return $this->query($query);
    88.     }
    89.    
    90.     public function getField($table_name, $field_out, $field_in, $value_in){
    91.         $data = $this->select($table_name, array($field_out), "field_in" = '".addslashes($value_in)."'");
    92.         if (count($data) != 1) return false;
    93.         return $date[0][$field_out];
    94.     }
    95.    
    96.     public function getFieldOnID($table_name, $id, $field_out){
    97.         if (!$this->existsID($table_name, $id)) return false;
    98.         return $this->GetField($table_name, $field_out, "id", $id);
    99.     }
    100.    
    101.     public function getAll($table_name, $order, $up){
    102.         return $this->select($table_name, array ("*"), "", $order, $up);
    103.     }
    104.    
    105.     public function getAllOnField($table_name, $field, $value, $order, $up){
    106.     return $this->select($table_name, array ("*"), "", "field" = '".addslashes($value)."'");
    107.     }
    108.    
    109.     public function getLastID($table_name){
    110.     $data = $this->select($table_name, array("MAX(id`)")");
    111.  
    112.     }
    113.  
    114.  
    115.     public function deleteOnID($table_name, $id){
    116.         if (!$this->existsID($table_name, $id)) return false;
    117.         return $this->delete($table_name, "`id` = '$id'");
    118.     }
    119.    
    120.     public function setField($table_name, $field, $value, $field_in, $value_in){
    121.         if (!$this->existsID($table_name, $id)) return false;
    122.         return $this->update($table_name, array ($field => $value), "field_in" = '".addslashes($value_in)."'" );
    123.     }
    124.  
    125.     public function setFieldOnID($table_name, $id, $field, $value){
    126.     if (!$this->existsID($table_name, $id)) return false;
    127.     return $this->setField($table_name, $field, $value, "id", $id);
    128.     }
    129.     public function getElementOnID($table_name, $id){
    130.     if (!$this->existsID($table_name, $id)) return false;
    131.     $arr = $this->select($table_name, array ("*"), "`id` = '$id'");
    132.     return $arr[0];
    133.     }
    134.    
    135.     public function getRandomElements($table_name, $count){
    136.     return $this->select($table_name, array ("*"), "", "RAND()", true, $count);
    137.     }
    138.     public function getCount($table_name){
    139.     $data = $this->select($table_name, array("COUNT(`id`)"));
    140.     return $date[0]["COUNT(`id`)"];
    141.     }
    142.     public function isExists($table_name, $field, $value){
    143.     $data = $this->select($table_name, array("id"), "`$field`" = '".addslashes($values)."'");
    144.     if (count($date) === 0) return false;
    145.     return true;
    146.     }
    147.     public function existsID($table_name, $id){
    148.     if (!$this->valid->validID($id)) return false;
    149.     $data = $this->select($table_name, array("id"), "`$id`" = '".addslashes($id)."'");
    150.     if (count($date) === 0) return false;
    151.     return true;
    152.     }
    153.         public function __destruct($table_name, $id){
    154.     if ($this->mysqli) $this->mysqli->close();
    155.         }
    156.  
    157. }
    158.  
    159. ?>
     
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
  17. Михаил Запаленов

    С нами с:
    2 авг 2017
    Сообщения:
    120
    Симпатии:
    1
    24 строка написано, английский надо бы выучить если программировать собрались. Синтаксическая ошибка, 24 строка вместо " , " пишите " ; "
     
  18. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    не надо разжевывать досконально, иначе от сисек хрен отлепишь
     
    Fell-x27 нравится это.
  19. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    я это понял, но не понял пока где именно в 24 строке
    --- Добавлено ---
    for ($i = 0; $i < count($fielfds); $i++){
    так надо?
     
  20. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    @MouseZver же дал ссылку, где описано, как надо
     
  21. ubunta2

    ubunta2 Зэк
    [ БАН ]

    С нами с:
    27 июн 2017
    Сообщения:
    947
    Симпатии:
    28
    Parse error: syntax error, unexpected '&' in E:\OpenServer\domains\test\1\lib\database_class.php on line 25
    Код (Text):
    1. <?php
    2.  
    3. require_once "config_class.php";
    4. require_once "checkvalid_class.php";
    5.  
    6. class Database{
    7.    
    8.     private $config;
    9.     private $mysqli;
    10.     private $valid;
    11.    
    12.     public function __construct(){
    13.         $this->config = new Config();
    14.         $this->valid = new CheckValid();
    15.         $this->mysqli = new mysqli($this->config->host, $this->config->user, $this->config->password, $this->config->db);
    16.         $this->mysqli->query("GET NAMES `utf8`");
    17.     }
    18.  
    19.     private function query($qery){
    20.         return $this->mysqli->query($query);
    21.     }
    22.    
    23.     private function select($table_name, $fields, $where = "", $up = true, $limit = ""){
    24.         for ($i = 0; $i < count($fielfds); $i++){
    25.             if ((strpos($fields[$i], "(") === false) &&& ($fields[$i] != "*") $fields[$i] = "`"$fields[$i]."`";
    26.            
    27.         }
    28.         $fields = implode(",", $fields);
    29.         $table_name = $this->config->db_prefix.$table_name;
    30.         if (!$order) $order = "ORDER BY `id`";
    31.         else {
    32.             if ($order != "RAND()"){
    33.                 $order = "ORDER BY `$order`";
    34.                 if (!$up)  $order .= " DESC";
    35.             }
    36.             else $order = "ORDER BY `$order`";
    37.         }
    38.         if ($limit) $limit = "LIMIT $limit";
    39.         if ($where) $where = "SELECT $fields FROM $table_name WHERE $where $order $limit";
    40.         else $query = "SELECT $fields FROM $table_name $order $limit";
    41.         $result_set = $this->query($query);
    42.         if (!$result_set) return false;
    43.         $i = 0;
    44.         while ($row = $result_set->$fetch_assoc()){
    45.             $data[$i] = $row;
    46.             $i++;
    47.         }
    48.         $result_set->close();
    49.         return $date;
    50.     }
    51.     public function insert($table_name, $new_values){
    52.         $table_name = $this->config->db_prefix.$table_name;
    53.         $query = "INSERT INTO $table_name (";
    54.         foreach ($new_values as $fields => $value) $query .= "`".$field."`,";
    55.         $query = substr($query, 0, -1);
    56.         $query .= ") VALUES (";
    57.         foreach ($new_values as $value) $query .= "'".addslashes($values)."',";
    58.         $query = substr($query, 0, -1);
    59.         $query .= ")";
    60.         return $this->query($query);
    61.  
    62.     }
    63.     private function update($table_name, $upd_fields. $where){
    64.         $table_name = $this->config->db_prefix.$table_name;
    65.         $query = "UPDATE $table_name SET";
    66.         foreach ($upd_fields ad $field) => $value) $query .= "`$fields`" = '".addslashes($values)."',";
    67.         $query = substr($query, 0, -1);
    68.         if ($where){
    69.             $query .= " WHERE $where";
    70.         return $this->query($query);
    71.         }
    72.         else return false;
    73.     }
    74.    
    75.     public function delete($table_name, $where = ""){
    76.     $table_name = $this->config->db_prefix.$table_name;
    77.     if ($where){
    78.         $query = "DELETE FROM $table_name WHERE $where";
    79.         return $this->query($query);
    80.         }
    81.         else return false;
    82.     }
    83.    
    84.     public function deleteAll($table_name){
    85.     $table_name = $this->config->db_prefix.$table_name;
    86.     $query = "TRUNCATE TABLE $table_name";
    87.     return $this->query($query);
    88.     }
    89.    
    90.     public function getField($table_name, $field_out, $field_in, $value_in){
    91.         $data = $this->select($table_name, array($field_out), "field_in" = '".addslashes($value_in)."'");
    92.         if (count($data) != 1) return false;
    93.         return $date[0][$field_out];
    94.     }
    95.    
    96.     public function getFieldOnID($table_name, $id, $field_out){
    97.         if (!$this->existsID($table_name, $id)) return false;
    98.         return $this->GetField($table_name, $field_out, "id", $id);
    99.     }
    100.    
    101.     public function getAll($table_name, $order, $up){
    102.         return $this->select($table_name, array ("*"), "", $order, $up);
    103.     }
    104.    
    105.     public function getAllOnField($table_name, $field, $value, $order, $up){
    106.     return $this->select($table_name, array ("*"), "", "field" = '".addslashes($value)."'");
    107.     }
    108.    
    109.     public function getLastID($table_name){
    110.     $data = $this->select($table_name, array("MAX(id`)")");
    111.  
    112.     }
    113.  
    114.  
    115.     public function deleteOnID($table_name, $id){
    116.         if (!$this->existsID($table_name, $id)) return false;
    117.         return $this->delete($table_name, "`id` = '$id'");
    118.     }
    119.    
    120.     public function setField($table_name, $field, $value, $field_in, $value_in){
    121.         if (!$this->existsID($table_name, $id)) return false;
    122.         return $this->update($table_name, array ($field => $value), "field_in" = '".addslashes($value_in)."'" );
    123.     }
    124.  
    125.     public function setFieldOnID($table_name, $id, $field, $value){
    126.     if (!$this->existsID($table_name, $id)) return false;
    127.     return $this->setField($table_name, $field, $value, "id", $id);
    128.     }
    129.     public function getElementOnID($table_name, $id){
    130.     if (!$this->existsID($table_name, $id)) return false;
    131.     $arr = $this->select($table_name, array ("*"), "`id` = '$id'");
    132.     return $arr[0];
    133.     }
    134.    
    135.     public function getRandomElements($table_name, $count){
    136.     return $this->select($table_name, array ("*"), "", "RAND()", true, $count);
    137.     }
    138.     public function getCount($table_name){
    139.     $data = $this->select($table_name, array("COUNT(`id`)"));
    140.     return $date[0]["COUNT(`id`)"];
    141.     }
    142.     public function isExists($table_name, $field, $value){
    143.     $data = $this->select($table_name, array("id"), "`$field`" = '".addslashes($values)."'");
    144.     if (count($date) === 0) return false;
    145.     return true;
    146.     }
    147.     public function existsID($table_name, $id){
    148.     if (!$this->valid->validID($id)) return false;
    149.     $data = $this->select($table_name, array("id"), "`$id`" = '".addslashes($id)."'");
    150.     if (count($date) === 0) return false;
    151.     return true;
    152.     }
    153.         public function __destruct($table_name, $id){
    154.     if ($this->mysqli) $this->mysqli->close();
    155.         }
    156.  
    157. }
    158.  
    159. ?>
     
  22. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Чувак, ты же вроде книжку читал... Или только примеры набирал? Уж чего-чего, а операции &&& у Котерова точно не описано
    А что это за запрос get names ? set names знаю, get names впервые вижу.
     
  23. alexpride1993

    alexpride1993 Новичок

    С нами с:
    28 мар 2016
    Сообщения:
    56
    Симпатии:
    20
    Кажется у меня появился дар предвидения!
    Чуфыр-чуфыр, следующий вопрос будет звучать так:
    Parse error: syntax error, unexpected '$fields' (T_VARIABLE) in I:\15218\testtest\index.php on line 25
     
  24. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    афтар иди убейся к чертям
     
    alexpride1993 нравится это.
  25. alexpride1993

    alexpride1993 Новичок

    С нами с:
    28 мар 2016
    Сообщения:
    56
    Симпатии:
    20
    Я нашел 9 (девять) ошибок синтаксиса, ошибку в деструкторе и как минимум один неправильный SQL запрос, и это только при беглом осмотре. Походу аффтар даже не удосужился проанализировать код, который он небрежно перепечатал откуда-то.