У меня были проблемы в течение последних нескольких часов, пытаясь обернуть мою голову, чтобы вытащить похожие данные из двух разных таблиц. Я играю с заявлениями Join, но не смог выполнить то, что я пытаюсь сделать.MySql и MySqli Left Join
Сначала я пытаюсь вытащить список своих клиентов и отобразить их и их информацию из этой таблицы в таблице html (это завершено). Во-вторых, я хотел бы взять их индекс (известный как MID) и использовать для ссылки на данные в другой таблице, которая содержит больше данных о MID. Каждый клиент имеет несколько «проектов», расположенных в другой таблице, и каждый из этих проектов имеет значение, называемое «пакетом», значение может быть либо 1,2, либо 3. То, что я хотел бы сделать, это потянуть все данные клиента из одной таблицы, а также тянуть общее количество каждого пакета, который у них есть. I. В моей таблице у меня пустое место для pack1, pack2, pack3, которое, я надеюсь, будет содержать общее количество строк, которые содержат это число в пакете с тем же MID.
Example [ name ] [totalprojects][ totalpackage1][totalpackage2][totalpackage3]
Bob 25 4 12 9
Вот мой код
$query_load_accounts = "SELECT * FROM useraccounts ORDER BY MID";
$result_load_accounts = mysqli_query($dbc, $query_load_accounts);
echo '<center><table border="1">';
echo '<cellpadding="10">';
echo '<th>Company Name</th>';
echo '<th>Member Since</th>';
echo '<th>Package 1</th>';
echo '<th>Package 2</th>';
echo '<th>Package 3</th>';
while ($row = mysqli_fetch_assoc($result_load_accounts))
{
echo "<tr>
<td><center>{$row['company']}</td></center>
<td><center>membersince</center></td>
<td><center>notused</center></td>
<td><center>package1</center></td>
<td><center>package2</center></td>
<td><center>package3</center></td>";
}
echo "</center></table>";
mysqli_close($dbc);
mysqli_free_result($result_load_accounts);
Другая полезная информация - имя другой таблицы является «проекты» и поля, необходимые являются MID (клиент конкретные) и пакет (только номер пакета т.е. пакет 1 14.99, пакет 2 равен 24.99 ext). Я хотел бы иметь возможность использовать оператор Join, чтобы суммировать количество каждого пакета для каждого пользователя .. им просто так много неприятностей с ним
* ОБНОВЛЕНИЕ Я тестировал следующий оператор, и он правильно извлекает данные, теперь я просто нужно знать, как сортировать эти данные в PHP. Т.е. подсчет строк для каждого пользователя
$ query_load_accounts = "SELECT UserAccounts , проекты ИЗ UserAccounts LEFT JOIN дани ПО useraccounts.mid = projects.mid ORDER BY UID..";
Благодаря нулевой активности в этой теме я решил этот вопрос сам. Скатертью дорога.
'SELECT mid,
SUM(IF(package = "1", 1,0)) AS `1`,
SUM(IF(package = "2", 1,0)) AS `2`,
SUM(IF(package = "3", 1,0)) AS `3`,
COUNT(package) AS `total`
FROM projects
GROUP BY mid
ORDER BY mid DESC'
Я сделаю эти изменения, спасибо! Я пошел от создания настольных приложений к webapps, поэтому я все еще изучал структуру таблицы html. –
Во-вторых, есть ли в вашей таблице столбец «компания»? – Blazemonger
Начнут с некоторым действительным HTML:' эхо '