Ошибка на уровне объектов и функций - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Sat, 20 Apr 2024 11:07:17 +0300 Ну тебе ответили: переменной $mysqli в области видимости функции нет, вот оно и ругается. Или используй global или реализуй Локатор служб. Пример приведу:<br> <pre class="prettyprint"> class Services{ private $services = &#91;]; private $object; private function __construct(){} public static function getInstance(){ if(is_null($this-&gt;object)){ $this-&gt;object = new self; } return $this-&gt;object; } public function getService($name){ switch($name){ case &#039;mysqli&#039;&#58; if(!isset($this-&gt;services&#91;$name])){ $this-&gt;services&#91;$name] = new MySQLi(...); } break; } $this-&gt;services&#91;$name]; } } function syncPC(...){ $mysqli = Services&#58;&#58;getInstance()-&gt;getService(&#039;mysqli&#039;); ... } </pre> На ошибки не проверял https://visavi.net/topics/39431/651108 Ошибка на уровне объектов и функций Артур Sat, 09 Nov 2013 15:31:31 +0400 Сообщения https://visavi.net/topics/39431/651108 <blockquote class="blockquote"><strong>Башка</strong> (8 Ноября 2013 / 23:44)<br> Тебе, автор, нужно конкретезировать цели</blockquote> Просто этот вариант не заработал, вышла другая ошибка<br> Цель: Хочу занести в функцию <br> <pre class="prettyprint"> $sql = &#039;SELECT * FROM `users_pc`&#039;; $result = $mysqli-&gt;query($sql); // Запрос посредством php+mysql(i) в БД $row = $result-&gt;fetch_assoc(); // Преобразование результата даных полученых с БД в ассоциативный массив </pre> не знаю почему то выходит ошибка. Может хотябы методом ООП покажешь как можно организовать это? https://visavi.net/topics/39431/651072 Ошибка на уровне объектов и функций YouMobe Sat, 09 Nov 2013 00:22:05 +0400 Сообщения https://visavi.net/topics/39431/651072 Тебе, автор, нужно конкретезировать цели https://visavi.net/topics/39431/651070 Ошибка на уровне объектов и функций Артур Fri, 08 Nov 2013 23:44:05 +0400 Сообщения https://visavi.net/topics/39431/651070 <blockquote class="blockquote"><strong>rastoman</strong> (8 Ноября 2013 / 19:00)<br> function (....)<br> {<br> global $mysqli;<br> ......<br> дальше все так же. <br> только не пинать. <br> я знаю, что многие не рекомендуют использовать global</blockquote> Это то понятно,а есть альтернатиное решение?) может по другому организовать? https://visavi.net/topics/39431/651069 Ошибка на уровне объектов и функций YouMobe Fri, 08 Nov 2013 23:27:36 +0400 Сообщения https://visavi.net/topics/39431/651069 function (....)<br> {<br> global $mysqli;<br> ......<br> дальше все так же. <br> только не пинать. <br> я знаю, что многие не рекомендуют использовать global https://visavi.net/topics/39431/651052 Ошибка на уровне объектов и функций Александр Fri, 08 Nov 2013 19:00:36 +0400 Сообщения https://visavi.net/topics/39431/651052 <blockquote class="blockquote"><strong>Flyd</strong> (8 Ноября 2013 / 16:02)<br> В функциях по-умолчанию локальная область видимости переменных, ты берешь данные из глобальной переменной. Либо передавай в функцию еще и переменную $mysqli, либо в функции пиши global $mysqli;</blockquote> Блин, чёт не выходит, скиньте годный мануал или статью, хочу понять что я не так делаю..<br> это $mysql-&gt;query($sql) напишите аналог как еще вызвать mysqli<br> или в этой функции в глобал вынести https://visavi.net/topics/39431/651050 Ошибка на уровне объектов и функций YouMobe Fri, 08 Nov 2013 18:30:37 +0400 Сообщения https://visavi.net/topics/39431/651050 В функциях по-умолчанию локальная область видимости переменных, ты берешь данные из глобальной переменной. Либо передавай в функцию еще и переменную $mysqli, либо в функции пиши global $mysqli; https://visavi.net/topics/39431/651038 Ошибка на уровне объектов и функций Михаил Fri, 08 Nov 2013 16:02:30 +0400 Сообщения https://visavi.net/topics/39431/651038 <blockquote class="blockquote"><strong>Ant0ha</strong> (8 Ноября 2013 / 15:23)<br> Где то уже определена эта функция.</blockquote> А вот это в полне возможно, щас просмотртю везде... Так оно и есть)<br> но теперь вылетела другая ошибка свзянанно с объектом походу<br> Notice: Undefined variable: mysqli in /home/youmobe/www/app/pc.php on line 10<br> <br> Fatal error: Call to a member function query() on a non-object in /home/youmobe/www/app/pc.php on line 10<br> <br> <em><span style="font-size:x-small">Добавлено через 08:07 сек.</span></em><br> Ошибка указывает на эту строку <span style="color:#ff0000"><strong>$result = $mysqli-&gt;query($sql); // Запрос посредством php+mysql(i) в БД</strong></span> https://visavi.net/topics/39431/651036 Ошибка на уровне объектов и функций YouMobe Fri, 08 Nov 2013 15:24:33 +0400 Сообщения https://visavi.net/topics/39431/651036 Где то уже определена эта функция. https://visavi.net/topics/39431/651034 Ошибка на уровне объектов и функций Ant0ha Fri, 08 Nov 2013 15:23:17 +0400 Сообщения https://visavi.net/topics/39431/651034 <blockquote class="blockquote"><strong>TakteS</strong> (8 Ноября 2013 / 15:17)<br> Ты же функцию вызываешь до её описания</blockquote> А что есть разница?), в PHP разницы нет где описывать до или после, все равно так же будет. https://visavi.net/topics/39431/651033 Ошибка на уровне объектов и функций YouMobe Fri, 08 Nov 2013 15:22:40 +0400 Сообщения https://visavi.net/topics/39431/651033 Ты же функцию вызываешь до её описания https://visavi.net/topics/39431/651032 Ошибка на уровне объектов и функций юЮЮфюв Fri, 08 Nov 2013 15:17:40 +0400 Сообщения https://visavi.net/topics/39431/651032 Пишу скрипт вывода информации из БД:<br> <pre class="prettyprint">&lt;?php /** * ПК - пользователей, общая характеристика компьютера. */ $sql = &#039;SELECT * FROM `users_pc`&#039;; $result = $mysqli-&gt;query($sql); // Запрос посредством php+mysql(i) в БД $row = $result-&gt;fetch_assoc(); // Преобразование результата даных полученых с БД в ассоциативный массив echo &#039;&lt;table class=&quot;table table-bordered&quot;&gt;&#039;; foreach($row as $key =&gt; $value){ echo &#039;&lt;tr&gt;&lt;td&gt;&#039;.$key.&#039;&#58;&lt;/td&gt;&lt;td&gt; &lt;strong&gt;&#039;.$value.&#039; &lt;/strong&gt;&lt;/tr&gt;&#039;; } echo &#039;&lt;/table&gt;&#039;; ?&gt; </pre> , теперь тоже самое только в функции..<br> <pre class="prettyprint"> &lt;?php /** * ПК - пользователей, общая характеристика компьютера. */ $sql = &#039;SELECT * FROM `users_pc`&#039;; showPC($sql); function showPC($sql){ $result = $mysqli-&gt;query($sql); // Запрос посредством php+mysql(i) в БД $row = $result-&gt;fetch_assoc(); // Преобразование результата даных полученых с БД в ассоциативный массив return $row; } echo &#039;&lt;table class=&quot;table table-bordered&quot;&gt;&#039;; foreach($row as $key =&gt; $value){ echo &#039;&lt;tr&gt;&lt;td&gt;&#039;.$key.&#039;&#58;&lt;/td&gt;&lt;td&gt; &lt;strong&gt;&#039;.$value.&#039; &lt;/strong&gt;&lt;/tr&gt;&#039;; } echo &#039;&lt;/table&gt;&#039;; ?&gt; </pre> а тут уж выводит ошибку: Fatal error: Cannot redeclare showPC() (previously declared in /home/suleiman/www/app/functions.php:8) in /home/youmobe/www/app/pc.php on line 13<br> Помогите решить проблему, почему при помощи функции не работает скрипт и выдает ошибку) https://visavi.net/topics/39431/651030 Ошибка на уровне объектов и функций YouMobe Fri, 08 Nov 2013 15:12:23 +0400 Сообщения https://visavi.net/topics/39431/651030