$db_table = "articles"; // Имя Таблицы БД
if (!$mysqli->query($query)) {
printf("Errormessage: %s\n", $mysqli->error);
}
$good[$spec] = array('mall', 'discount', 'promotion');
// ^
foreach($good[$spec] as $mall) {
// ^
// ...
}
php.net/manual/ru/language.types.array.php
Почему $foo[bar] неверно?
Всегда заключайте в кавычки строковый литерал в индексе ассоциативного массива. К примеру, пишите $foo['bar'], а не $foo[bar]. Но почему? Часто в старых скриптах можно встретить следующий синтаксис:<?php $foo[bar] = 'враг'; echo $foo[bar]; // и т.д. ?>
Это неверно, хотя и работает. Причина в том, что этот код содержит неопределенную константу (bar), а не строку ('bar' - обратите внимание на кавычки). Это работает, потому что PHP автоматически преобразует "голую строку" (не заключенную в кавычки строку, которая не соответствует ни одному из известных символов языка) в строку со значением этой "голой строки". Например, если константа с именем bar не определена, то PHP заменит bar на строку 'bar' и использует ее.
var data = [];
// получаем данные из таблицы в массив
$('tr', 'table>tbody').each(function(index, row) {
var cells = $('td', row);
var sum = 0;
var items = [];
for (var i = 0; i < cells.length; i++)
{
if (i == cells.length - 1)
{
cells[i].innerHTML = sum / 5;
items.push(sum / 5);
}
else
{
sum += parseInt(cells[i].innerHTML, 10);
items.push(parseInt(cells[i].innerHTML, 10));
}
}
data.push(items);
});
// сортируем массив
data.sort(function (a, b) {
return a[5] - b[5];
});
// создаем новую таблицу на основе массива
var html = '<table><thead><tr>';
html += '<th>price</th><th>price</th><th>price</th>';
html += '<th>price</th><th>price</th><th>avrg</th></tr></thead>';
html += '<tbody>';
for (var i = 0; i < data.length; i++)
{
html += '<tr>';
for (var j = 0; j < data[i].length; j++)
{
html += '<td>' + data[i][j] + '</td>';
}
html += '</tr>';
}
html += '</tbody></table>';
// выводим таблицу (перезаписываем старую)
$('#content').html(html);
/**
* @see CommonModule::onLoad()
* CommonModule constructor.
* You can not change the constructor directly, but you can use onLoad function instead.
*/
final function __construct()
/**
* CommonModule constructor.
* You can not change the constructor directly, but you can use onLoad function instead.
*
* @see CommonModule::onLoad()
*/
final function __construct()
$per = [0, 1, 2, 3, 4, 5];
for ($i = 0; $i < count($per); $i++)
{
$per[$i] = 0;
}
// предполагается наличие переменных $per1, $per2 ... $per24
// если переменных в наличии не будет, то они будут созданы :-)
for ($i = 1; $i <= 24; $i++)
{
${'per'.$i} = 0;
}
public function __construct($id = NULL)
{
$this->id = $id;
$this->Load();
}
public function Load()
{
// идентификатор не указан, загружать данные не нужно
if (!isset($this->id) || (int)$this->id == 0)
{
return false;
}
// указан идентификатор, загружаем данные в текущий экземпляр класса
$mysqli = db_connect();
$req = 'SELECT u.ID, u.name, u.age, u.city_id, c.city_name FROM users AS u '.
'INNER JOIN cities AS c ON (c.city_id = u.city_id) '.
'WHERE u.ID = '.$this->id; // опасно так передавать в запрос данные
$res = $mysqli->query($req);
if ($res !== false){
if ($res->num_rows == 1 )
{
// смысла в цикле нет, ожидается ведь одна строка данных
while ($row = $res->fetch_assoc())
{
$this->id = $row['ID'];
$this->username = $row['name'];
$this->city_name = $row['city_name'];
$this->city_id = $row['city_id'];
$this->age = $row['age'];
}
}
else
{
return false;
}
}
else
{
return false;
}
}
public function Save()
{
$sql = '';
$params = [];
if (!isset($this->id) || (int)$this->id == 0)
{
// запрос на добавление данных в базу
$sql = 'INSERT INTO users (name, city_id, age) VALUES (?, ?, ?)';
// параметры запроса
$params = [$this->username, $this->city_id, $this->age];
}
else
{
// запрос на обновление данных в базе
$sql = 'UPDATE users SET name = ?, city_id = ?, age = ? WHERE ID = ?';
// параметры запроса
$params = [$this->username, $this->city_id, $this->age, $this->id];
}
// код выполнения запроса
// не могу быть уверен в коде, давно не писал и проверять лень
// должно быть что-то типа такого:
$mysqli = db_connect(); // лучше сделать отдельный метод для создания и закрытия соединений
// подготавливаем запрос
$s = $mysqli->prepare($sql);
// выполняем запрос с указанными параметрами
$s->execute($params);
// тут еще неплохо бы закрыть все соединения :-)
}
// создаем экземпляр класса User
$instance = new User();
// получаем информацию об экземпляре класса
$r = new \ReflectionClass($instance);
// получаем список публичных свойств
$propeties = $r->getProperties(\ReflectionProperty::IS_PUBLIC);
// перебираем все свойства
foreach ($propeties as $property)
{
// получаем имя свойства
$propertyName = $property->getName();
// получаем значение свойства
$propertyValue = $property->getValue();
// и далее можно использовать полученную информацию
// для формирования динамических запросов к базе
// полученные из базы данные можно передать в нужные свойства
$property->setValue("значение из базы");
}
$url = 'http://blog.des/?go=category&q=backend&page=2';
// в элементе с именем query будет строка параметров запроса
// go=category&q=backend&page=2
$query = parse_url($url)['query'];
// функция parse_str разберет строку параметров запроса
// и передаст ассоциативный массив в переменную $params
parse_str($query, $params);
// выводим значение параметра page
echo $params['page'];
$url = 'http://blog.des/?go=category&q=backend&page=2';
parse_str($url, $params);
echo $params['page'];
echo 'Текущая страница: '.$_GET['page'];
$queryString = [];
foreach ($_GET as $key => $value) {
// если параметр page, пропускаем его
if ($key == 'page') { continue; }
// остальные добавляем в queryString
$queryString[$key] = $value;
}
// собираем массив новых параметров в строку параметров запроса
$queryString = http_build_query($queryString);
// новые параметры
echo $queryString;
$url = "http://blog.des/";
if ($queryString != '')
{
$url .= "?".$queryString;
}
// это следует делать до первого вывода, иначе могут быть ошибки/предупреждения
header('HTTP/1.1 301 Moved Permanently');
header('Location: '.$url);
<?php
function GetContents($path)
{
ob_start();
require($path);
$result = ob_get_contents();
ob_end_clean();
return $result;
}
$jumi1= GetContents('admin/jumi/jumi1.php');
?>
Если открыть код, то есть строчка <? include('admin/jumi/jumi1.php'); ?>.
Но она не отображается при открытии страницы и php не выполняется.
<?php include('admin/jumi/jumi1.php'); ?>
<?php include($_SERVER['DOCUMENT_ROOT'].'/admin/jumi/jumi1.php'); ?>
$command_script = "create_first_file.sh $this->server_user_name " .
trim($id_app) . " index$type_ex_file";
$data->id
). Кстати, точка с запятой там лишняя, достаточно: <?=$data->id?>
.$id_app
.for($i = 1; $i < 100; $i++)
{
echo "элемент_$i<br />";
// делаем паузу, если текущий индекс делится на 10 без остатка
// т.е. каждый 10 элемент будет пауза
if (($i % 10) == 0)
{
echo "пауза 3 секунды :)";
sleep(3);
}
}
$i
). Но если такая необходимость возникнет, то по возможности лучше использовать обычный цикл.for($i = 0; $i < 100; $i++)
{
// каждые два элемента помещаем в div
if (($i % 2) == 0)
{
if ($i != 0)
{
// закрываем предыдущий блок, если это не первый блок
echo "</div>";
}
// открываем блок
echo "<div class='exmpl'>";
}
// выводим элемент
echo "<span> элемент_массива_$i</span><br />";
}
// закрываем последний блок
echo "</div>";
$output = "";
for($i = 0; $i < 100; $i++)
{
// каждые два элемента помещаем в div
if ($i != 0 && ($i % 2) == 0)
{
// выводим
echo "<div class='exmpl'>$output</div>";
// обнуляем
$output = "";
}
// добавляем элемент в очередь на вывод
$output .= "<span> элемент_массива_$i</span><br />";
}
// выводим остатки
echo "<div class='exmpl'>$output</div>";
function get_ip($domain)
{
$ip = gethostbyname($domain);
var_dump($this->domains_ip);
if (!is_array($this->domains_ip))
{
echo 'domains_ip не является массивом!';
}
$this->domains_ip[$ip] = $domain;
return $ip;
}
function get_ip($domain)
{
$ip = gethostbyname($domain);
$this->domains_ip[$ip] = $domain;
var_dump($ip);
var_dump($this->domains_ip);
return $ip;
}
private $domains_ip = [];
sudo visudo
sudo nano /etc/sudoers
имяПользователя ALL=(ALL) NOPASSWD:ALL
sudo service sudo restart
<VirtualHost 127.0.0.1:80>
DocumentRoot /home/mysite.ru/www
ServerName mysite.ru.local
# ServerAlias mysite.ru
# ...все остальное...
</VirtualHost>
127.0.0.1 mysite.ru.local