Ошибка на уровне объектов и функций - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Wed, 25 Dec 2024 16:30:43 +0300Ну тебе ответили: переменной $mysqli в области видимости функции нет, вот оно и ругается. Или используй global или реализуй Локатор служб. Пример приведу:<br>
<pre class="prettyprint">
class Services{
private $services = [];
private $object;
private function __construct(){}
public static function getInstance(){
if(is_null($this->object)){
$this->object = new self;
}
return $this->object;
}
public function getService($name){
switch($name){
case 'mysqli':
if(!isset($this->services[$name])){
$this->services[$name] = new MySQLi(...);
}
break;
}
$this->services[$name];
}
}
function syncPC(...){
$mysqli = Services::getInstance()->getService('mysqli');
...
}
</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 = 'SELECT * FROM `users_pc`';
$result = $mysqli->query($sql); // Запрос посредством php+mysql(i) в БД
$row = $result->fetch_assoc(); // Преобразование результата даных полученых с БД в ассоциативный массив </pre>
не знаю почему то выходит ошибка. Может хотябы методом ООП покажешь как можно организовать это?
https://visavi.net/topics/39431/651072
Ошибка на уровне объектов и функций YouMobeSat, 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
Ошибка на уровне объектов и функций YouMobeFri, 08 Nov 2013 23:27:36 +0400Сообщенияhttps://visavi.net/topics/39431/651069function (....)<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->query($sql) напишите аналог как еще вызвать mysqli<br>
или в этой функции в глобал вынести
https://visavi.net/topics/39431/651050
Ошибка на уровне объектов и функций YouMobeFri, 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->query($sql); // Запрос посредством php+mysql(i) в БД</strong></span>
https://visavi.net/topics/39431/651036
Ошибка на уровне объектов и функций YouMobeFri, 08 Nov 2013 15:24:33 +0400Сообщенияhttps://visavi.net/topics/39431/651036Где то уже определена эта функция.
https://visavi.net/topics/39431/651034
Ошибка на уровне объектов и функций Ant0haFri, 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
Ошибка на уровне объектов и функций YouMobeFri, 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"><?php
/**
* ПК - пользователей, общая характеристика компьютера.
*/
$sql = 'SELECT * FROM `users_pc`';
$result = $mysqli->query($sql); // Запрос посредством php+mysql(i) в БД
$row = $result->fetch_assoc(); // Преобразование результата даных полученых с БД в ассоциативный массив
echo '<table class="table table-bordered">';
foreach($row as $key => $value){
echo '<tr><td>'.$key.':</td><td> <strong>'.$value.' </strong></tr>';
}
echo '</table>';
?> </pre>
, теперь тоже самое только в функции..<br>
<pre class="prettyprint"> <?php
/**
* ПК - пользователей, общая характеристика компьютера.
*/
$sql = 'SELECT * FROM `users_pc`';
showPC($sql);
function showPC($sql){
$result = $mysqli->query($sql); // Запрос посредством php+mysql(i) в БД
$row = $result->fetch_assoc(); // Преобразование результата даных полученых с БД в ассоциативный массив
return $row;
}
echo '<table class="table table-bordered">';
foreach($row as $key => $value){
echo '<tr><td>'.$key.':</td><td> <strong>'.$value.' </strong></tr>';
}
echo '</table>';
?> </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
Ошибка на уровне объектов и функций YouMobeFri, 08 Nov 2013 15:12:23 +0400Сообщенияhttps://visavi.net/topics/39431/651030