<?foreach ($arResult["PROPERTIES"] as $i => $arProp):?>
<?if(!empty($arProp["VALUE"])):?>
<table id="table1">
<tr style="background-color:"<?= $i%2 ? 'green' : 'white' ?>">
// ...
#table1 tr:nth-child(even) { background: #0f0; }
#table1 tr:nth-child(odd) { background: #fff; }
<? code... ?>
не рекомендуется к использованию.<?= 'text' ?>
<?php echo 'text' ?>
и не требует включенной опции short_open_tags (с версии 5.4)<?= 'text' ?>
<?php $i = 0; echo 'text'; ?>
<? $i = 0; echo 'text'; ?>
var i = 12;
console.log(new String(i).length)
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `friends` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_one` int(11) NOT NULL,
`user_two` int(11) NOT NULL,
`is_accepted` tinyint(1) NOT NULL DEFAULT '0',
`is_rejected` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `fk_user_one_idx` (`user_one`),
KEY `fk_user_two_idx` (`user_two`),
CONSTRAINT `fk_user_one` FOREIGN KEY (`user_one`) REFERENCES `users` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_user_two` FOREIGN KEY (`user_two`) REFERENCES `users` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
SELECT
u1.name,
IF (
u2.id IS NOT NULL,
IF (
f1.is_accepted,
CONCAT('Дружит c ', u2.name),
CONCAT (
'Не дружит c ',
u2.name,
': ',
IF(
f1.is_rejected,
'заявка отклонена',
'заявка ожидает рассмотрения'
)
)
),
'Ни с кем не дружит'
) status
FROM
user u1
LEFT JOIN
friends f1
ON f1.user_one = u1.id
LEFT JOIN
user u2
ON u2.id = f1.user_two
WHERE
u1.id = 1
mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in
$sql
равен false
$sql = mysqli_prepare($con, "INSERT INTO table VALUES (?, ?,?)");
// debug
if (!($sql instanceof mysqli_stmt)) {
die($con->error);
}
$con = mysqli_connect
и добавьте после неё отладкуif (!$con) {
die('Connect Error: ' . mysqli_connect_error());
}
function doSomething($url, Closure $callback)
{
// собираем параметры из url
$p1 = 1;
$p2 = 2;
// найдём переменные с указанными именами
// и упакуем их в массив 'название перменной' => 'значение'
$params = compact('p1', 'p2');
$callback($params);
}
$callback = function ($params)
{
// распакуем массив
extract($params);
// теперь нам доступны переменные из вызывающей функции с теми же именами
print_r($p1);
print_r($p2);
};
doSomething('url', $callback);
function processor (...$params) {
//
}
SELECT
`id`,
`timestamp`,
`rating`
FROM
(
SELECT
`id`,
`timestamp`,
`rating`,
@timestamp_rank := IF(@current_timestamp = `timestamp`, @timestamp_rank + 1, 1) AS `timestamp_rank`,
@current_timestamp := `timestamp`
FROM
`rating_log`
ORDER BY
`timestamp` DESC,
`rating` DESC
) `ranked`
WHERE
`timestamp_rank` <= 10;
$q = "SELECT name, last_name, email FROM users WHERE id IN (?, ?)";
$stmt = mysqli_prepare($link, $q);
if (false === $stmt) {
die('statement was executed with errors');
}
$id = 1;
$anotherId = 2;
//обратите внимание на строку типов - "ii",
// подозреваю, что у вас ошибочно описан строковый тип "s" для id_user
$stmt->bind_param("ii", $id, $anotherId);
$stmt->execute();
$stmt->store_result(); // буферизация
echo "<br>Rows: " . $stmt->num_rows . "<br>"; // количество строк в результате
// При работе с подготовленными выражениями и результатами нам нужно точно знать, что мы получаем в запросе (см. SELECT <fields>)
// Можно получать в запросе все атрибуты, а конкретные имена атрибутов забирать через metadata
$name = null;
$lastName = null;
$email = null;
// Привязка переменных к результирующему набору (порядок, как в SELECT)
$stmt->bind_result($name, $lastName, $email);
// каждый вызов fetch будет связывать наши переменные и дынными из результата
while ($stmt->fetch()) {
var_dump([
'name' => $name,
'last_name' => $lastName,
'email' => $email,
]);
}
$stmt->free_result(); // освобождаем память
$stmt->close();
$link->close();