За последние 24 часа нас посетил 17391 программист и 1268 роботов. Сейчас ищет 1441 программист ...

Помогите, как засунуть мне все это в класс ?

Тема в разделе "Сделайте за меня", создана пользователем o5sponsor, 25 ноя 2016.

  1. o5sponsor

    o5sponsor Новичок

    С нами с:
    25 ноя 2016
    Сообщения:
    7
    Симпатии:
    0
    Получается как новичок, я понимаю как все работает, что куда отправляеться. Но проблема возникла когда решил засунуть все в класс. Много ошибок и с ООП не особо дружу. Можете помочь, дать советы.
    Через классы нужно подключитсья к бд. и с помощью таблицы уже выводить и наполнять данными.


    PHP:
    1. <?php
    2. $header = file_get_contents("Header.php");  echo $header;
    3.  
    4. $db_host='localhost';
    5. $db_name='photos';
    6. $db_user='root';
    7. $db_pass='';
    8.  
    9. @mysql_connect($db_host,$db_user,$db_pass);
    10. @mysql_select_db($db_name);
    11.  
    12. $id = $_POST['id'];
    13. $idgroup = $_POST['idgroup'];
    14. $data_created = $_POST['data_created'];
    15.  
    16. $r1 = "photos1";
    17. $r2 = "photos2";
    18.  
    19. $result = mysql_query("SELECT  * FROM $r1 WHERE id='$id' OR idgroup='$idgroup' OR data_created='$data_created'");
    20.     if ($row = mysql_fetch_array($result))
    21. {
    22.     echo 'Нашло данные по первой таблице';
    23.     $result=mysql_query("SELECT  * FROM `photos1` WHERE id='$id' OR idgroup='$idgroup' OR data_created='$data_created'");
    24.     while($row = mysql_fetch_array($result))
    25. {
    26. $urll = $row['url']['photo_url'];
    27.  
    28. $sizen = file_get_contents("foto_size.php");
    29.  
    30. echo '<tr><td class="id_foto">'
    31. .$row['id'].'</td><td class="data_foto">'
    32. .$row['data_created'].'</td><td class="id_foto">'
    33. .$row['idgroup'].'</td><td><img src="'
    34. .$row['url'].'"></td><td class="imgsize">';
    35. echo "Тип изображения: ".$flag[$size[2]]."<br>";
    36. echo "Ширина: " .$size[0]."<br />";
    37. echo "Высота: ".$size[1]."<br />";
    38. echo "Битность: ".$size['bits']."<br />";
    39. echo '</td></tr>';
    40. }
    41. echo '</table></form>';
    42.  
    43. }
    44.  
    45. else {
    46. $result=mysql_query("SELECT * FROM $r2 WHERE id='$id' OR group_id='$idgroup' OR created='$data_created'");
    47. echo 'В первой данных небыло пришлось искать во второй';
    48. while($row=mysql_fetch_array($result))
    49. {
    50.  
    51.  
    52. $urll = $row['photo_url'];
    53. if (@fopen($urll, r)) {
    54. $size = getimagesize("$urll");
    55.  
    56. file_get_contents("foto_size.php");
    57.  
    58. echo '<tr><td class="id_foto">'
    59. .$row['id'].'</td><td class="data_foto">'
    60. .$row['created'].'</td><td class="id_foto">'
    61. .$row['group_id'].'</td><td><img src="'
    62. .$row['photo_url'].'"></td><td class="imgsize"> ';
    63. echo "Тип изображения: ".$flag[$size[2]]."<br>";
    64. echo "Ширина: " .$size[0]."<br />";
    65. echo "Высота: ".$size[1]."<br />";
    66. echo "Битность: ".$size['bits']."<br />";
    67. echo '</td></tr>';
    68.  
    69. }
    70. }
    71. }
    72. ?>
     
  2. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Это 'самацель' сделать через классы?
     
    denis01 нравится это.
  3. o5sponsor

    o5sponsor Новичок

    С нами с:
    25 ноя 2016
    Сообщения:
    7
    Симпатии:
    0
    Да, поскольку мне говорят мы живем не в 90, сейчас есть классы. Попробуй использовать их.
    Если более детально.
    То у меня есть 2 наполненые базы. В ней храниться информация: Фото, Ид, Ид группы, дата, ссылка на фото.
    действия которые должны производиться.
    Через форму ищу данные и вывожу на экран. Если в 1 таблице данных нет то она переходит ко 2 . Если нету даных в обеих таблицах ни какого действия не происходит. если в таблице нету фото, эта запись не выводиться.
    И вот, теперь нужно это все кинуть в класс
     
    #3 o5sponsor, 25 ноя 2016
    Последнее редактирование: 25 ноя 2016
  4. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    denis01 нравится это.
  5. o5sponsor

    o5sponsor Новичок

    С нами с:
    25 ноя 2016
    Сообщения:
    7
    Симпатии:
    0
    Это я уже читал и не раз, если вызывать все, то получаеться отлично, но если уже все настраивать и вписывать не пойму что и к чему. У меня только получилось вывести всю информацию с бд
     
  6. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Хорошо. Тогда попробуйте разделить логику, определить методы.

    Например: у меня будет два класса. Первый класс будет отвечать за хранение данных и работать непосредственно с mysql. Результат работы его методов будет представлен в виде простых массивов. Второй класс будет отвечать за представление и генерацию HTML-кода. Его методы на вход будут получать какие-то готовые ассоциативные массивы и возвращать строку содержащую html-код.

    Где-то будет отдельный файл, где будут инициализированы эти два объекта. Запущены какие-то функции из первого класса, результаты их работы будут переданы методам второго класса. А результат работы второго объекта - будет выведен через echo


    Как-то так
     
    mahmuzar и denis01 нравится это.
  7. o5sponsor

    o5sponsor Новичок

    С нами с:
    25 ноя 2016
    Сообщения:
    7
    Симпатии:
    0
    PHP:
    1. <?php
    2. /*Вывод ошибок на экран*/
    3. ini_set("display_errors", 1);
    4. /*Вывод ошибок на экран*/
    5. /* */
    6. class Database
    7. {
    8.  
    9.     public $id = '11';
    10.     public $idgroup = '';
    11.     public $data_created = '';
    12.     private $db_host = 'localhost';
    13.     private $db_user = 'root';
    14.     private $db_pass = '';
    15.     private $db_name = 'photos';
    16.  
    17.     public function getDB()
    18.     {
    19.         $link = mysqli_connect($this->db_host, $this->db_user, $this->db_pass, $this->db_name);
    20.         if (!$link) {
    21.             die(mysqli_connect_errno() . '<p>Нету подключения к Базе Данных </p>' . mysqli_connect_error());
    22.         }
    23.  
    24.         echo "Базы данных подключены, приступаем к поиску <br /><br />";
    25.  
    26.         $result    = mysqli_query($link, "SELECT * FROM `photos1` WHERE id='$this->id' OR idgroup='$this->idgroup' OR data_created='$this->data_created'");
    27.         $count_row = mysqli_num_rows($result);
    28.  
    29.         if ($count_row) {
    30.             echo 'В первой данных небыло пришлось искать во второй';
    31.  
    32.             $result = mysqli_query($link, "SELECT * FROM `photos1` WHERE id='$this->id' OR idgroup='$this->idgroup' OR data_created='$this->data_created'");
    33.             while ($row = mysqli_fetch_array($result)) {
    34.                 echo '<br />' . $row[0] . '<br />' . $row[1] . '<br />' . $row[2] . '</td><br /><td><img src="' . $row[3] . '"><br />';
    35.             }
    36.         } else {
    37.             $result2 = mysqli_query($link, "SELECT * FROM `photos2` WHERE id='$this->id' OR group_id='$this->idgroup' OR created='$this->data_created'");
    38.             echo 'В первой данных небыло пришлось искать во второй';
    39.             while ($row = mysqli_fetch_array($result2)) {
    40.                 echo '<br />' . $row[0] . '<br />' . $row[1] . '<br />' . $row[2] . '</td><br /><td><img src="' . $row[3] . '"><br />';
    41.  
    42.             }
    43.         }
    44.     }
    45. }
    46.  
    47.  
    48.  
    49. $object = new Database();
    50. $object->getDB();
    51.  
    52.  
    53.  
    54. ?>

    Методом тыка получилось то что пытался сделать
     
  8. o5sponsor

    o5sponsor Новичок

    С нами с:
    25 ноя 2016
    Сообщения:
    7
    Симпатии:
    0
    Всем спасибо разобрался )
    Теперь не могу справиться с update в форме. Что то делаю не так (
     
  9. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Уметь пользоваться ООП и знать его парадигмы и принципы - обязанность каждого современного разраба. Юзать же ООП ради ООП там, где оно не впилось - имхо, глупость. Как и любое действие, сделанное ради себя самого.