PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 15
EuRusik Отправлено: 08 Декабря, 2016 - 15:11:43 • Тема: Создание многомерного массива • Форум: Вопросы новичков

Ответов: 2
Просмотров: 154
Krava пишет:
Добавлять ключ

Масив дублируеться всеравно Недовольство, огорчение

PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [0] => Array
  5.                 (
  6.                     [title] => Заголовок 1
  7.                     [img] => http://ссылка1.jpg
  8.                     [text] => Текст 1
  9.                 )
  10.  
  11.         )
  12.  
  13.     [1] => Array
  14.         (
  15.             [0] => Array
  16.                 (
  17.                     [title] => Заголовок 1
  18.                     [img] => http://ссылка1.jpg
  19.                     [text] => Текст 1
  20.                 )
  21.  
  22.         )


Единственное это когда все загуржаеться если ставить или

Но там сразу пачка title потом пачка img и т.д. А мне надо title,img,text потом следющий title,img,text!
EuRusik Отправлено: 08 Декабря, 2016 - 14:09:15 • Тема: Создание многомерного массива • Форум: Вопросы новичков

Ответов: 2
Просмотров: 154
Есть 3 foreach цикла

PHP:
скопировать код в буфер обмена
  1. for ($i = 0; $i < 2; $i++)
  2.         {
  3.  
  4.             foreach ($this->objDom->find($this->title) as $title)
  5.             {
  6.                 $article['title'] = $title->plaintext;
  7.             }
  8.  
  9.             foreach ($this->objDom->find($this->imgTitle) as $imgTitle)
  10.             {
  11.                 $article['img'] = $imgTitle->url;
  12.             }
  13.  
  14.             foreach ($this->objDom->find($this->text) as $text)
  15.             {
  16.                 $article['text'] = $text->innertext;
  17.             }
  18.  
  19.             $arrayNews[] = $article;
  20.  
  21.         }
  22.  
  23. print_r($arrayNews);


Получаю 2 дублирующих массива.

PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [title] => Заголовок 1
  5.             [img] => http://site.com/img1.png
  6.             [text] => Текст 1
  7.         )
  8.     [1] => Array
  9.         (
  10.             [title] => Заголовок 1
  11.             [img] => http://site.com/img1.png
  12.             [text] => Текст 1
  13.         )

Я понимаю что каждый раз foreach перезаписывает данные и в массив попадает только последнее, но как сделать чтобы попадало в массив arrayNews все данные а не последние?

PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [title] => Заголовок 1
  5.             [img] => http://site.com/img1.png
  6.             [text] => Текст 1
  7.         )
  8.     [1] => Array
  9.         (
  10.             [title] => Заголовок 2
  11.             [img] => http://site.com/img2.png
  12.             [text] => Текст 2
  13.         )
EuRusik Отправлено: 07 Декабря, 2016 - 15:38:16 • Тема: Помогите с алгоритмом парсинга xml • Форум: Вопросы новичков

Ответов: 1
Просмотров: 120
Суть проблеммы такова, немогу придумать как записывать в базу данных спарсенные данные по частям.
Есть к примеру ссылка на xml данные, там огромная простыня данных вида:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <title>Заголовок 1</title>
  2. <link>http://ссылка1</link>
  3. <content>Контент бла бла бла 1</content>
  4.  
  5. <title>Заголовок 2</title>
  6. <link>http://ссылка2</link>
  7. <content>Контент бла бла бла 2</content>

И т .д. мне нужно записывать в базу данных по частям, тобишь до следующего
CODE (htmlphp):
скопировать код в буфер обмена
  1. <title>Заголовок 2</title>


Как это реализовать?
EuRusik Отправлено: 08 Сентября, 2016 - 17:34:29 • Тема: Нужно обьяснение функции вывода многоуровнего меню • Форум: Вопросы новичков

Ответов: 1
Просмотров: 120
Нашел вот такую вот функциюю

PHP:
скопировать код в буфер обмена
  1.  
  2. function mapTree($dataset) {
  3.      
  4.     $tree = array();
  5.  
  6.     foreach ($dataset as $id=>&$node) {
  7.  
  8.         if (!$node['parent_id']) {
  9.             $tree[$id] = &$node;
  10.         }
  11.         else {
  12.             $dataset[$node['parent_id']]['childs'][$id] = &$node;
  13.         }
  14.  
  15.     }
  16.     return $tree;
  17.  
  18. }
  19.  


Помогите разобраться попуктам что она делает.
EuRusik Отправлено: 08 Июля, 2016 - 15:03:20 • Тема: Помогите разобратся к классом • Форум: Вопросы новичков

Ответов: 1
Просмотров: 104
Читаю книгу - объекты шаблоны и методики программирования и там есть такой пример
PHP:
скопировать код в буфер обмена
  1.  
  2. class Account
  3. {
  4.     public $balance;
  5.  
  6.     public function __construct($balance)
  7.     {
  8.         $this->balance = $balance;
  9.     }
  10. }
  11.  
  12. class Person
  13. {
  14.     private $name;
  15.     private $age;
  16.     private $id;
  17.     public $account;
  18.  
  19.     public function __construct($name, $age, Account $account)
  20.     {
  21.         $this->name = $name;
  22.         $this->age = $age;
  23.         $this->account = $account;
  24.     }
  25.  
  26.     public function setID($id)
  27.     {
  28.         $this->id = $id;
  29.     }
  30.  
  31. }
  32.  

Кто знаком с ООП, обьясните мне что означеат Account $account в конструкторе класса Person?
EuRusik Отправлено: 08 Июня, 2016 - 15:51:25 • Тема: Проверить если в базе данных запись когда в колонке много данных • Форум: Вопросы новичков

Ответов: 1
Просмотров: 157
Есть таблица his, в ней 2 колонки, колонка id - ид записи, и num - числа через запятую пример "123, 456, 769, 222, 111" и т.д.

CODE (htmlphp):
скопировать код в буфер обмена
  1. ___id___|____num_____|
  2.    2     123, 456, 222
  3.    3     111, 333, 574



Нужно выбрать запись из таблцы his если знаем одно из чисел к примеру "111" в колонке num.
EuRusik Отправлено: 27 Мая, 2016 - 14:40:40 • Тема: Вывод записей из mysql по месяцам • Форум: Вопросы новичков

Ответов: 1
Просмотров: 248
Есть записи в базе данных к примеру размещенные по дате: 02.01.2016, 15.01.2016 и 26.05.2016

И мне нужно вывести только за январь. Решил написать с моей точки зрения логичный запрос:

PHP:
скопировать код в буфер обмена
  1.  
  2. $date['start'] - тут 01.01.2016;
  3. $date['end'] - здесь 31.01.2016;
  4.  



CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `$this->tablename` WHERE `user_id` = '$_SESSION[id]' AND `date` >= '$date[start]' AND `date` <= '$date[end]';


К моему удивлению оказалось что mysql может выдать мне записи только конечным числом в январе месяце и ниже:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `$this->tablename` WHERE `user_id` = '$_SESSION[id]' AND `date` <= '15.01.2016';


Если я укажу что мне нужно с 01.01.2016 по 31.01.2016 mysql выдаст вообще все что есть из колонки date Огорчение

Вопрос, как решить мою задачу?

UPD: Оказалось все просто SELECT * FROM `$this->tablename` WHERE `user_id` = '$_SESSION[id]' AND MONTH(`date`) = 1
EuRusik Отправлено: 19 Мая, 2016 - 13:05:54 • Тема: Как записать в переменную масив в одной функции и перебрать в другой функции • Форум: Вопросы новичков

Ответов: 2
Просмотров: 194
and_07 пишет:
те

PHP:
скопировать код в буфер обмена
  1. $array['error'] = array($this->status => $this->content);


так вы добавляете в массив элементы с ошибками??

может так нужно
PHP:
скопировать код в буфер обмена
  1. $array['error'][] = array($this->status => $this->content);


или через push

У меня проблема в том что в первой функции у меня при выводе 2D масив, а когда я пытаюсь вывести во второй функции его, то там оказывается только последня запись масива из первой фукнции ;(

Вобщем разобрался, нужно было в одном foreach запустить еще foreach т.к. это 2D массив Улыбка
EuRusik Отправлено: 19 Мая, 2016 - 12:34:33 • Тема: Как записать в переменную масив в одной функции и перебрать в другой функции • Форум: Вопросы новичков

Ответов: 2
Просмотров: 194
Бьюсь уже второй день, есть функция Message которая получает 2D масив:
PHP:
скопировать код в буфер обмена
  1.  
  2. $array['error'] = array($this->status => $this->content);
  3.  


Вот результат print_r:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [error] => Ви не ввели дату замовлення!
  6.         )
  7.  
  8. )
  9. (
  10.     [0] => Array
  11.         (
  12.             [error] => Ви не ввели назву виробника!
  13.         )
  14.  
  15. )
  16. (
  17.     [0] => Array
  18.         (
  19.             [error] => Ви не ввели адрес виробника!
  20.         )
  21.  
  22. )
  23. (
  24.     [0] => Array
  25.         (
  26.             [error] => Ви не ввели № замовлення!
  27.         )
  28.  
  29. )
  30. (
  31.     [0] => Array
  32.         (
  33.             [error] => Ви не ввели К-сть вiкон!
  34.         )
  35.  
  36. )
  37.  

Мне нужно записать 2D масив $array['error'] в глобальную переменную $data, для последующего перебора его чере foreach в функции MessageRender.

Я пишу в функции Message что глобальная переменная $data[] = $array['error'];
После в функции MessageRender:

PHP:
скопировать код в буфер обмена
  1.  
  2. foreach ($data as $key => $value)
  3. {
  4. echo $k.$v;
  5. }
  6.  


Но мне выводит только последний массив:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [error] => Ви не ввели К-сть вiкон!
  6.         )
  7.  
  8. )
  9.  

А мне нужно весь список, как это сделать?
EuRusik Отправлено: 17 Мая, 2016 - 16:02:48 • Тема: Как передать данные из одной функции в другую? • Форум: Вопросы новичков

Ответов: 1
Просмотров: 124
Есть функция
PHP:
скопировать код в буфер обмена
  1.  
  2. public function Message($status, $content)
  3. {
  4. public $status;
  5. public $content;
  6.  
  7.     public function Message($status, $content)
  8.     {
  9.  
  10.         $this->status = $status;
  11.         $this->content = $content;
  12.  
  13.  
  14.         if($this->status == "error")
  15.         {
  16.  
  17.             $_SESSION['message'] = array($this->status => $this->content);
  18.  
  19.             foreach ($_SESSION['message'] as $key => $value)
  20.             {
  21.  
  22.                 $_SESSION['message'] = "<span class='glyphicon glyphicon-remove'></span><p><b>$key</b>: $value</p>";
  23.  
  24.                 $data = $_SESSION['message'];
  25.  
  26.             }
  27.  
  28.             return $data;
  29. }
  30.  


Есть 2я функция

PHP:
скопировать код в буфер обмена
  1.  
  2. public function MessageRender()
  3.     {
  4.  
  5.         if ($this->Message($this->status, $this->content))
  6.         {
  7.             $message = $this->Message($this->status, $this->content);
  8.  
  9.             $script = '
  10.    (function Notification() {
  11.        var notification = new NotificationFx({
  12.            message : "'.$message.'",
  13.            layout : "bar",
  14.            effect : "slidetop",
  15.            type : "notice", // notice, warning, error or success
  16.        });
  17.        notification.show();        
  18.    })();
  19.    ';
  20.             echo '<script>'.$script.'</script>';
  21.  
  22.             unset($message);
  23.         }
  24.  


Как передать результат $data из первой функции в 2ю? Пробовал обьявлять $data глобальной, ничего не получается ( Пробывал в 2й функцию передавать просто $_SESSION['message'], результат выводится только один

PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_SESSION['message']))
  3.  
  4.         {
  5.  
  6.             $message = $_SESSION['message'];
  7.  
  8.             $script = '
  9.    (function Notification() {
  10.        var notification = new NotificationFx({
  11.            message : "'.$message.'",
  12.            layout : "bar",
  13.            effect : "slidetop",
  14.            type : "notice", // notice, warning, error or success
  15.        });
  16.        notification.show();        
  17.    })();
  18.    ';
  19.             echo '<script>'.$script.'</script>';
  20.  
  21.             unset($_SESSION['message']);
  22.  


, а мне нужно несколько, как это было бы еслиб я просто вывел в первой функции
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach ($_SESSION['message'] as $key => $value)
  3.             {
  4.  
  5.                 echo "<span class='glyphicon glyphicon-remove'></span><p><b>$key</b>: $value</p>";
  6.             }
  7.  
EuRusik Отправлено: 13 Мая, 2016 - 11:59:44 • Тема: Вывод нескольких сообщений при заполнении полей в форме • Форум: Вопросы новичков

Ответов: 2
Просмотров: 162
Вопрос в следующем, как реализовать вывод сообщений об ошибках сразу нескольких условий если поля к примеру Дата, и Возраст не указаны?
Делаю проверку к примеру:
PHP:
скопировать код в буфер обмена
  1. if(strlen($_POST['date'] < 1))
  2. {
  3.  echo "Поле дата не заполнено";
  4. }
  5. elseif (strlen($_POST['name'] < 1)
  6. {
  7. echo "Поле имя не заполнено";
  8. }
  9. else {
  10. какойто запрос mysqli;
  11. return true;
  12. }

Так вот этот код выводит только одно сообщение об ошибке, даже если оба поля не заполнены. Умом я понимаю что это нужно сделать в цикле , но как это реализовать пока не додумался Недовольство, огорчение
EuRusik Отправлено: 13 Апреля, 2016 - 17:43:06 • Тема: Вопрос по mysqli_query • Форум: Вопросы новичков

Ответов: 1
Просмотров: 119
Есть класс: DbConnectClass
PHP:
скопировать код в буфер обмена
  1.  
  2. class DbConnectClass
  3. {
  4.     private $host = "localhost";
  5.     private $user = "user";
  6.     private $pass = "password";
  7.     private $db = "name_db";
  8.  
  9.  
  10.     public function ConnectDB()
  11.     {
  12.  
  13.         $mysqli = mysqli_connect($this->host, $this->user,$this->pass, $this->db);
  14.  
  15.         if($mysqli)
  16.         {
  17.             echo "Connected to Database: OK";
  18.         }
  19.         if(mysqli_connect_errno())
  20.         {
  21.             die ("Database connection failed! Error code:".mysqli_connect_errno());
  22.         }
  23.         mysqli_close($mysqli);
  24.     }
  25.  
  26.  
  27. }
  28.  


Есть файл который наследует его Database:

PHP:
скопировать код в буфер обмена
  1.  
  2. class DatabaseClass extends DbConnectClass
  3. {
  4.     private $tablename;
  5.  
  6.     public function __construct($tablename)
  7.     {
  8.         $this->tablename = $tablename;
  9.     }
  10.  
  11.     public function getRecordByID($id)
  12.     {
  13.  
  14.  
  15.         $connect = new DbConnectClass();
  16.         $db_con = $connect->ConnectDB();
  17.  
  18.  
  19.         $query = "SELECT * FROM `$this->tablename` WHERE id = '$id'";
  20.  
  21.         if($sql = mysqli_query($db_con,$query))
  22.         {
  23.             $data = mysqli_fetch_array($sql);
  24.         }
  25.  
  26.         return $data;
  27.  
  28.     }
  29. }
  30.  


Вывожу:

PHP:
скопировать код в буфер обмена
  1.  
  2. $getid = new DatabaseClass("users");
  3. $result = $getid->getRecordByID(1);
  4. print_r($result);
  5.  


В итоге ошибка:
mysqli_query() expects parameter 1 to be mysqli, null given in

P.S. Когда создаю локально $mysqli = mysqli_connect... в файле Database то все работет, а как сделать чтобы подлючалось все это дело из класса DbConnectClass?
EuRusik Отправлено: 04 Марта, 2016 - 11:02:58 • Тема: Вывод ошибки если была нажата кнопка submit и поле было пустое • Форум: Вопросы новичков

Ответов: 0
Просмотров: 97
Есть форма:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2.         <meta charset="UTF-8">
  3.         <title>Форма проверки</title>
  4. <body>
  5.         <? echo($error_message); ?>
  6.         <form name="filter" action="valid.php" method="post">
  7.                 <input type="number" name="number">
  8.                 <input type="submit" name="enter" value="Отправить">
  9.         </form>
  10. </body>
  11. </html>

И php код:


PHP:
скопировать код в буфер обмена
  1. $error_message = "";
  2.  
  3. if (isset($_POST['enter'])) {
  4.         if (!isset($_POST['number'])){
  5.                 $error_message = "Поле не заполнено";
  6.                 exit($error_message);
  7.         }
  8.         else {
  9.                 $num = ($_POST['number']);
  10.                 echo $num;
  11.         }
  12. }      
  13.  

Яж вроде не тупой, но ошибка о том что - если поле number пустое вывести "Поле не заполнено не могу" Огорчение
UPD: нужно было вместо !isset поставить empty Улыбка
EuRusik Отправлено: 09 Октября, 2015 - 13:53:13 • Тема: Не могу понять как работает этот код • Форум: Вопросы новичков

Ответов: 4
Просмотров: 1210
Большое спасибо за разъяснения! Теперь все стало намного проще понимать Улыбка
EuRusik Отправлено: 09 Октября, 2015 - 13:25:24 • Тема: Не могу понять как работает этот код • Форум: Вопросы новичков

Ответов: 4
Просмотров: 1210
Я новичек в php, и пытаюсь разобраться в одном примере, который нашел на просторах интернета. Пытаюсь понять что делает этот код, уже всю голову сломал Однако , буду очень признателен если кто-то из форумчан опишет принцип работы этого примера.

PHP:
скопировать код в буфер обмена
  1. if ($_SERVER['REQUEST_URI'] == '/') {
  2. $Page = 'index';
  3. $Module = 'index';
  4. } else {
  5. $URL_Path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
  6. $URL_Parts = explode('/', trim($URL_Path, ' /'));
  7. $Page = array_shift($URL_Parts);
  8. $Module = array_shift($URL_Parts);
  9.  
  10.  
  11. if (!empty($Module)) {
  12. $Param = array();
  13. for ($i = 0; $i < count($URL_Parts); $i++) {
  14. $Param[$URL_Parts[$i]] = $URL_Parts[++$i];
  15. }
  16. }
  17. }


Все что я смог понять это то, что вот эта часть
PHP:
скопировать код в буфер обмена
  1. if ($_SERVER['REQUEST_URI'] == '/') {
  2. $Page = 'index';
  3. $Module = 'index';

Если мы набрали домен test.ru то сервер добавляет test.ru/index для переменных $Page и $Module, а дальше после else непонятно что происходит Огорчение

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB