Согласен, я вас понял и признаю свое заблуждение, я слишком привязался к конкретной реализации парадигмы. Просто за все время работы с PHP я не видел ни одной красивой (ключевое слово) реализации парадигмы MVC без разделения приложения на классы (пусть и без каноничного ООП), по этому и написал свое сообщения в таком ключе. Кстати, буду благодарен за примеры правильной безклассовой реализации MVC на PHP, очень интересно как это выглядит.
Да у каждого из нас свои понятия итд. Тут персонаж убунта уже известен своей...логичностью. Что не говори не поможет.
Своей головой думать надо. И не смотреть видеокурсы, а сделать что-то своё путем проб и ошибок. И не писать на форуме "У меня не получается, почему?" А искать проблему в Google.
https://www.youtube.com/playlist?list=PLyeqauxei6jcQQyo49W9n4X6THCwQHz77 https://www.youtube.com/playlist?list=PLSdH7dYnlGYgrWg5wsEG4v03MiJ1WSOTx https://www.youtube.com/playlist?list=PLQwXjjTVqyUEZxRivy2YweIb4nACCG14i https://www.youtube.com/playlist?list=PLVfMKQXDAhGWCBTca7m-snWrZZkjX2jGB - этот канал мне не зашел, хз мб тебе понравится, выбирай любой, это все что у меня было из подписок...
Видеоуроки, всё это фигня ты просто переписываешь и не думаешь, я сейчас учусь по этому задачнику, там в каждом разделе по 50 мини задач, мне это очень нравится http://theory.phphtml.net/books/php/ А ещё видеоуроки, отнимают кучу времени, у меня обычно час просмотра, растягиваются на 3 часа.
сохранил в закладках, есть что почитать, жаль что книги щас стоят ппц как дорого,а читать книгу на компе это жесть...
потерпеть можно ради великой цели, нехер сопли разводить есть бабки на бумажную - пожалуйста нет - качай, воруй, только учись.
Так говорят только те, кто не пробовал Во-первых, современные книжки сенсорные, листаются как жестами, так и касаниями, плюс дополняются кнопками. Во-вторых, не надо таскать тонну макулатуры. В-третьих их охренеть удобно читать. Любой размер шрифта, мгновенный доступ к оглавлению, закладки, да хоть заметки на полях рисуй и в тексте выделения делай (в хороших читалках чего только нет). Не говоря уже о встроенных словарях и переводчиках на всякий пожарный, работающих непосредственно во время чтения. В-четвертых, если нет времени читать самому, есть ридеры, умеющие читать вслух в наушник. У меня как раз такой. ЧСХ, читает вполне сносно, даже с восходящими и нисходящими интонациями. Ридеры - охрененная вещь. Именно ридеры, а не убогие "читалки" на телефонах.
Есть. Они называются курсами (включая видео) лекций Стэнфордского университета лежащими в свободном доступе. Блестящий по качеству учебный материал какой бы курс из читаемых в стэнфорде вы бы не выбрали.
Parse error: syntax error, unexpected ')', expecting ';' in E:\OpenServer\domains\test\1\lib\database_class.php on line 24 Код (Text): <?php require_once "config_class.php"; require_once "checkvalid_class.php"; class Database{ private $config; private $mysqli; private $valid; public function __construct(){ $this->config = new Config(); $this->valid = new CheckValid(); $this->mysqli = new mysqli($this->config->host, $this->config->user, $this->config->password, $this->config->db); $this->mysqli->query("GET NAMES `utf8`"); } private function query($qery){ return $this->mysqli->query($query); } private function select($table_name, $fields, $where = "", $up = true, $limit = ""){ for ($i = 0, $i < count($fielfds), $i++){ if ((strpos($fields[$i], "(") === false) &&& ($fields[$i] != "*") $fields[$i] = "`"$fields[$i]."`"; } $fields = implode(",", $fields); $table_name = $this->config->db_prefix.$table_name; if (!$order) $order = "ORDER BY `id`"; else { if ($order != "RAND()"){ $order = "ORDER BY `$order`"; if (!$up) $order .= " DESC"; } else $order = "ORDER BY `$order`"; } if ($limit) $limit = "LIMIT $limit"; if ($where) $where = "SELECT $fields FROM $table_name WHERE $where $order $limit"; else $query = "SELECT $fields FROM $table_name $order $limit"; $result_set = $this->query($query); if (!$result_set) return false; $i = 0; while ($row = $result_set->$fetch_assoc()){ $data[$i] = $row; $i++; } $result_set->close(); return $date; } public function insert($table_name, $new_values){ $table_name = $this->config->db_prefix.$table_name; $query = "INSERT INTO $table_name ("; foreach ($new_values as $fields => $value) $query .= "`".$field."`,"; $query = substr($query, 0, -1); $query .= ") VALUES ("; foreach ($new_values as $value) $query .= "'".addslashes($values)."',"; $query = substr($query, 0, -1); $query .= ")"; return $this->query($query); } private function update($table_name, $upd_fields. $where){ $table_name = $this->config->db_prefix.$table_name; $query = "UPDATE $table_name SET"; foreach ($upd_fields ad $field) => $value) $query .= "`$fields`" = '".addslashes($values)."',"; $query = substr($query, 0, -1); if ($where){ $query .= " WHERE $where"; return $this->query($query); } else return false; } public function delete($table_name, $where = ""){ $table_name = $this->config->db_prefix.$table_name; if ($where){ $query = "DELETE FROM $table_name WHERE $where"; return $this->query($query); } else return false; } public function deleteAll($table_name){ $table_name = $this->config->db_prefix.$table_name; $query = "TRUNCATE TABLE $table_name"; return $this->query($query); } public function getField($table_name, $field_out, $field_in, $value_in){ $data = $this->select($table_name, array($field_out), "field_in" = '".addslashes($value_in)."'"); if (count($data) != 1) return false; return $date[0][$field_out]; } public function getFieldOnID($table_name, $id, $field_out){ if (!$this->existsID($table_name, $id)) return false; return $this->GetField($table_name, $field_out, "id", $id); } public function getAll($table_name, $order, $up){ return $this->select($table_name, array ("*"), "", $order, $up); } public function getAllOnField($table_name, $field, $value, $order, $up){ return $this->select($table_name, array ("*"), "", "field" = '".addslashes($value)."'"); } public function getLastID($table_name){ $data = $this->select($table_name, array("MAX(id`)")"); } public function deleteOnID($table_name, $id){ if (!$this->existsID($table_name, $id)) return false; return $this->delete($table_name, "`id` = '$id'"); } public function setField($table_name, $field, $value, $field_in, $value_in){ if (!$this->existsID($table_name, $id)) return false; return $this->update($table_name, array ($field => $value), "field_in" = '".addslashes($value_in)."'" ); } public function setFieldOnID($table_name, $id, $field, $value){ if (!$this->existsID($table_name, $id)) return false; return $this->setField($table_name, $field, $value, "id", $id); } public function getElementOnID($table_name, $id){ if (!$this->existsID($table_name, $id)) return false; $arr = $this->select($table_name, array ("*"), "`id` = '$id'"); return $arr[0]; } public function getRandomElements($table_name, $count){ return $this->select($table_name, array ("*"), "", "RAND()", true, $count); } public function getCount($table_name){ $data = $this->select($table_name, array("COUNT(`id`)")); return $date[0]["COUNT(`id`)"]; } public function isExists($table_name, $field, $value){ $data = $this->select($table_name, array("id"), "`$field`" = '".addslashes($values)."'"); if (count($date) === 0) return false; return true; } public function existsID($table_name, $id){ if (!$this->valid->validID($id)) return false; $data = $this->select($table_name, array("id"), "`$id`" = '".addslashes($id)."'"); if (count($date) === 0) return false; return true; } public function __destruct($table_name, $id){ if ($this->mysqli) $this->mysqli->close(); } } ?>
24 строка написано, английский надо бы выучить если программировать собрались. Синтаксическая ошибка, 24 строка вместо " , " пишите " ; "
я это понял, но не понял пока где именно в 24 строке --- Добавлено --- for ($i = 0; $i < count($fielfds); $i++){ так надо?
Parse error: syntax error, unexpected '&' in E:\OpenServer\domains\test\1\lib\database_class.php on line 25 Код (Text): <?php require_once "config_class.php"; require_once "checkvalid_class.php"; class Database{ private $config; private $mysqli; private $valid; public function __construct(){ $this->config = new Config(); $this->valid = new CheckValid(); $this->mysqli = new mysqli($this->config->host, $this->config->user, $this->config->password, $this->config->db); $this->mysqli->query("GET NAMES `utf8`"); } private function query($qery){ return $this->mysqli->query($query); } private function select($table_name, $fields, $where = "", $up = true, $limit = ""){ for ($i = 0; $i < count($fielfds); $i++){ if ((strpos($fields[$i], "(") === false) &&& ($fields[$i] != "*") $fields[$i] = "`"$fields[$i]."`"; } $fields = implode(",", $fields); $table_name = $this->config->db_prefix.$table_name; if (!$order) $order = "ORDER BY `id`"; else { if ($order != "RAND()"){ $order = "ORDER BY `$order`"; if (!$up) $order .= " DESC"; } else $order = "ORDER BY `$order`"; } if ($limit) $limit = "LIMIT $limit"; if ($where) $where = "SELECT $fields FROM $table_name WHERE $where $order $limit"; else $query = "SELECT $fields FROM $table_name $order $limit"; $result_set = $this->query($query); if (!$result_set) return false; $i = 0; while ($row = $result_set->$fetch_assoc()){ $data[$i] = $row; $i++; } $result_set->close(); return $date; } public function insert($table_name, $new_values){ $table_name = $this->config->db_prefix.$table_name; $query = "INSERT INTO $table_name ("; foreach ($new_values as $fields => $value) $query .= "`".$field."`,"; $query = substr($query, 0, -1); $query .= ") VALUES ("; foreach ($new_values as $value) $query .= "'".addslashes($values)."',"; $query = substr($query, 0, -1); $query .= ")"; return $this->query($query); } private function update($table_name, $upd_fields. $where){ $table_name = $this->config->db_prefix.$table_name; $query = "UPDATE $table_name SET"; foreach ($upd_fields ad $field) => $value) $query .= "`$fields`" = '".addslashes($values)."',"; $query = substr($query, 0, -1); if ($where){ $query .= " WHERE $where"; return $this->query($query); } else return false; } public function delete($table_name, $where = ""){ $table_name = $this->config->db_prefix.$table_name; if ($where){ $query = "DELETE FROM $table_name WHERE $where"; return $this->query($query); } else return false; } public function deleteAll($table_name){ $table_name = $this->config->db_prefix.$table_name; $query = "TRUNCATE TABLE $table_name"; return $this->query($query); } public function getField($table_name, $field_out, $field_in, $value_in){ $data = $this->select($table_name, array($field_out), "field_in" = '".addslashes($value_in)."'"); if (count($data) != 1) return false; return $date[0][$field_out]; } public function getFieldOnID($table_name, $id, $field_out){ if (!$this->existsID($table_name, $id)) return false; return $this->GetField($table_name, $field_out, "id", $id); } public function getAll($table_name, $order, $up){ return $this->select($table_name, array ("*"), "", $order, $up); } public function getAllOnField($table_name, $field, $value, $order, $up){ return $this->select($table_name, array ("*"), "", "field" = '".addslashes($value)."'"); } public function getLastID($table_name){ $data = $this->select($table_name, array("MAX(id`)")"); } public function deleteOnID($table_name, $id){ if (!$this->existsID($table_name, $id)) return false; return $this->delete($table_name, "`id` = '$id'"); } public function setField($table_name, $field, $value, $field_in, $value_in){ if (!$this->existsID($table_name, $id)) return false; return $this->update($table_name, array ($field => $value), "field_in" = '".addslashes($value_in)."'" ); } public function setFieldOnID($table_name, $id, $field, $value){ if (!$this->existsID($table_name, $id)) return false; return $this->setField($table_name, $field, $value, "id", $id); } public function getElementOnID($table_name, $id){ if (!$this->existsID($table_name, $id)) return false; $arr = $this->select($table_name, array ("*"), "`id` = '$id'"); return $arr[0]; } public function getRandomElements($table_name, $count){ return $this->select($table_name, array ("*"), "", "RAND()", true, $count); } public function getCount($table_name){ $data = $this->select($table_name, array("COUNT(`id`)")); return $date[0]["COUNT(`id`)"]; } public function isExists($table_name, $field, $value){ $data = $this->select($table_name, array("id"), "`$field`" = '".addslashes($values)."'"); if (count($date) === 0) return false; return true; } public function existsID($table_name, $id){ if (!$this->valid->validID($id)) return false; $data = $this->select($table_name, array("id"), "`$id`" = '".addslashes($id)."'"); if (count($date) === 0) return false; return true; } public function __destruct($table_name, $id){ if ($this->mysqli) $this->mysqli->close(); } } ?>
Чувак, ты же вроде книжку читал... Или только примеры набирал? Уж чего-чего, а операции &&& у Котерова точно не описано А что это за запрос get names ? set names знаю, get names впервые вижу.
Кажется у меня появился дар предвидения! Чуфыр-чуфыр, следующий вопрос будет звучать так: Parse error: syntax error, unexpected '$fields' (T_VARIABLE) in I:\15218\testtest\index.php on line 25
Я нашел 9 (девять) ошибок синтаксиса, ошибку в деструкторе и как минимум один неправильный SQL запрос, и это только при беглом осмотре. Походу аффтар даже не удосужился проанализировать код, который он небрежно перепечатал откуда-то.