Мое решение может не сработать для вас, но это сработало для меня. (Нет, это не пуленепробиваемый либо, но делает работу для моего конкретного приложения).
огда не использовал mysqli_multi_query раньше, и это поражает мой мозг, любые примеры, которые я нахожу в сети, не помогают мне точно определить, что именно я хочу сделать.
Вот мой код:
<?php
$link = mysqli_connect("server", "user", "pass", "db");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$agentsquery = "CREATE TEMPORARY TABLE LeaderBoard (
`agent_name` varchar(20) NOT NULL,
`job_number` int(5) NOT NULL,
`job_value` decimal(3,1) NOT NULL,
`points_value` decimal(8,2) NOT NULL
);";
$agentsquery .= "INSERT INTO LeaderBoard (`agent_name`, `job_number`, `job_value`, `points_value`) SELECT agent_name, job_number, job_value, points_value FROM jobs WHERE YEAR(booked_date) = $current_year && WEEKOFYEAR(booked_date) = $weeknum;";
$agentsquery .= "INSERT INTO LeaderBoard (`agent_name`) SELECT DISTINCT agent_name FROM apps WHERE YEAR(booked_date) = $current_year && WEEKOFYEAR(booked_date) = $weeknum;";
$agentsquery .= "SELECT agent_name, SUM(job_value), SUM(points_value) FROM leaderboard GROUP BY agent_name ORDER BY SUM(points_value) DESC";
$i = 0;
$agentsresult = mysqli_multi_query($link, $agentsquery);
while ($row = mysqli_fetch_array($agentsresult)){
$number_of_apps = getAgentAppsWeek($row['agent_name'],$weeknum,$current_year);
$i++;
?>
<tr class="tr<?php echo ($i & 1) ?>">
<td style="font-weight: bold;"><?php echo $row['agent_name'] ?></td>
<td><?php echo $row['SUM(job_value)'] ?></td>
<td><?php echo $row['SUM(points_value)'] ?></td>
<td><?php echo $number_of_apps; ?></td>
</tr>
<?php
}
?>
Все, что я пытаюсь сделать, это запустить несколько запросов, а затем использовать окончательные результаты этих четырех запросов и поместить их в мои таблицы.
код выше действительно не работает вообще, я просто получаю следующую ошибку:
Предупреждение: mysqli_fetch_array () ожидает, что параметр 1 будет mysqli_result, логическое значение задано в C: \ xampp \ htdocs \ hydroboard \ hydro_reporting_2010.php в строке 391
любая помощь?