Я пытаюсь отобразить информацию о пользователе/профиле из базы данных MySQL (созданной phpBB3) на странице html. Я хочу создать публичную страницу (не связанную с phpBB) на веб-сайте, на которой будет отображаться список всех пользователей: их имена, адреса, номера телефонов, веб-сайты и другие поля профиля. Если бы вся эта информация была в одной таблице, у меня не было бы проблем. Но phpBB перечисляет записи пользовательского профиля в другой таблице, и я не очень удобен с запросами php или MySQL. Я не могу, чтобы жизнь меня заставляла столы сливаться. У меня около 50 различных версий этого кода, но ни один из них не работает так, как я их хочу.Слияние двух таблиц с одним общим полем MySQL
<?php
$con = mysql_connect('hostname', 'username', 'password');
$db = mysql_select_db('dbname');
//now write a select query to fetch the records from the table
$sql = "select * from phpbb_users";
$query = mysql_query($sql);
echo "<table border=1>";
//now read and display the entire row of a table one by one looping through it.
//to loop we are using While condition here
while($row = mysql_fetch_assoc($query))
{
echo "<tr><td>$row[user_email]</td>";
echo "<td>$row[user_website]</td>";
echo "<td>$row[user_avatar]</td></tr>";
}
echo "</table>";
$sql = "select * from phpbb_profile_fields_data";
$query = mysql_query($sql);
echo "<table border=1>";
//now read and display the entire row of a table one by one looping through it.
//to loop we are using While condition here
while($row = mysql_fetch_assoc($query))
{
echo "<tr><td>$row[pf_name]</td>";
echo "<td>$row[pf_business]</td>";
echo "<td>$row[pf_address]</td>";
echo "<td>$row[pf_phone]</td>";
echo "<td>$row[pf_officer]</td></tr>";
}
echo "</table>";
?>
Это показывает две отдельные таблицы со всеми данными, которые я хочу, чтобы включить. Я просто хочу, чтобы эти таблицы отображались как единое целое. Во второй таблице есть информация, которую я хочу отобразить сначала, но встроенный с остальными данными из первой таблицы. Я знаю, что это глупый вопрос. Прости. Это звучало так просто, прежде чем я попытался это сделать. Спасибо за вашу помощь! :)
Обновленный код:
<?php
$con = mysql_connect('hostname', 'username', 'password');
$db = mysql_select_db('dbname');
$sql = "select * from phpbb_users left join phpbb_profile_fields_data on phpbb_profile_fields_data.user_id = phpbb_users.id";
$query = mysql_query($sql);
echo "<table>";
while($row = mysql_fetch_assoc($query))
{
echo "<tr><td>$row[user_avatar]</td>";
echo "<td>$row[pf_name]</td>";
echo "<td>$row[pf_business]</td>";
echo "<td>$row[pf_address]</td>";
echo "<td>$row[pf_phone]</td>";
echo "<td>$row[user_email]</td>";
echo "<td>$row[user_website]</td>";
echo "<td>$row[pf_officer]</td></tr>";
}
echo "</table>";
?>
Таким образом, вы имеете в виду вы хотите ВСТУПИТЬ: http://dev.mysql.com/doc/refman/5.0/en///join.html – sashkello
Может быть? Я пытался. Честный. Прямое соединение? левое соединение? Когда я попытался, я не смог получить какие-либо данные для отображения в таблице. Каков правильный формат для вызова строки $ в этом экземпляре? [table.var] или просто [var]? Я спрашиваю, потому что у меня возникла синтаксическая ошибка с [table.var] и нет вывода с простым [var] ... – ABC123
JOIN vs LEFT JOIN - googlable за 5 секунд. Точно так же, как получить доступ к значениям по псевдонимам (используйте SELECT что-то AS «blabla», а затем $ row ['blabla']). Во всяком случае, это очень общие основы, которые вы можете узнать за 10 минут, просматривая любой учебник для начинающих. Я не думаю, что это подходящее место для того, чтобы попросить руководство, особенно учитывая тот факт, что есть> 1 одинаковые вопросы, задаваемые ежедневно ... – sashkello