Mam następujący problem.
Otóż mam dwie tabele: User (z nazwami użytkowników) i Dzial (z nazwami działów). W tabeli Dzial mam m. in. pola: ID_User (z kluczem obcym odwołującym się do pola ID w tabeli User) oraz ID_User_mod (ID użytkownika, który zmodyfikował dział, z kluczem obcym również odwołującym się do pola ID w tabeli User).
Pytanie: W jaki sposób wyciągnąć dwa razy (lub więcej) z tabeli User: Imię i Nazwisko (tabela User zawiera takie pola), dla różnych ID Usera (jedno dla ID_User - autora działu, a drugie dla ID_User_mod dla osoby, która zmodyfikowała dział)?
Oto mój kod:
<?php
if (isset($_SESSION['login'])) {
include ('db.php');
<div class="sortuj">
<form method="POST" action="index.php?dzial=panel&link=show_dzial">Sortuj według:
<select name="action">
<option selected="selected">' . $_POST['action'] . '</option>
<option name="tytul_asc" value="Tytułu rosnąco">Tytułu rosnąco</option>
<option name="tytul_desc" value="Tytułu malejąco">Tytułu malejąco</option>
<option name="tresc_asc" value="Treści rosnąco">Treści rosnąco</option>
<option name="tresc_desc" value="Treści malejąco">Treści malejąco</option>
<option name="autor_asc" value="Autora rosnąco">Autora rosnąco</option>
<option name="autor_desc" value="Autora rosnąco">Autora malejąco</option>
<option name="data_utw_asc" value="Daty utworzenia rosnąco">Daty utworzenia rosnąco</option>
<option name="data_utw_desc" value="Daty utworzenia malejąco">Daty utworzenia malejąco</option>
<option name="mod_asc" value="Autora modyfikacji rosnąco">Autora modyfikacji rosnąco</option>
<option name="mod_rejestr_desc" value="Autora modyfikacji malejąco">Autora modyfikacji malejąco </option>
<option name="data_mod_asc" value="Daty modyfikacji rosnąco">Daty modyfikacji rosnąco</option>
<option name="data_mod_desc" value="Daty modyfikacji malejąco">Daty modyfikacji malejąco</option>
</select>';
$sql = 'SELECT * FROM `Dzial`, `User` WHERE Dzial.ID_Parent BETWEEN 1 AND 7 AND User.ID = Dzial.ID_User ORDER BY ';
switch ($_POST['action'])
{
case 'Tytułu rosnąco':
$sql .= 'Tytul ASC';
break;
case 'Tytułu malejąco':
$sql .= 'Tytul DESC';
break;
case 'Treści rosnąco':
$sql .= 'Tresc ASC';
break;
case 'Treści malejąco':
$sql .= 'Tresc DESC';
break;
case 'Autora rosnąco':
$sql .= 'ID_User ASC';
break;
case 'Autora malejąco':
$sql .= 'ID_User DESC';
break;
case 'Daty utworzenia rosnąco':
$sql .= 'Data_utw ASC';
break;
case 'Daty utworzenia malejąco':
$sql .= 'Data_utw DESC';
break;
case 'Autora modyfikacji rosnąco':
$sql .= 'ID_User_Mod ASC';
break;
case 'Autora modyfikacji malejąco':
$sql .= 'ID_User_Mod DESC';
break;
case 'Daty modyfikacji rosnąco':
$sql .= 'Data_modyf ASC';
break;
case 'Daty modyfikacji malejąco':
$sql .= 'Data_modyf DESC';
break;
default:
$sql .= 'Tytul ASC';
break;
}
echo ' <input type="submit" value="Sortuj" class="button_sortuj"> </form>
</div>';
echo '<table class="table_content"> <tr class="table_header">
<td>
Lp.
</td>
<td>
Tytuł
</td>
<td>
Treść
</td>
<td>
Autor działu
</td>
<td>
Data utworzenia
</td>
<td>
Zmodyfikował
</td>
<td>
Data modyfikacji
</td>
</tr>
';
$licznik=1; /* liczba porządkowa - zaczynamy od liczby 1*/
{
<tr>
<td class="table_row_center">
' . $licznik . '
</td>
<td class="table_row_left">
' . $row['Tytul'] . '
</td>
<td class="table_row_left">
' . $row['Tresc'] . '
</td>
<td class="table_row_left">
' . $row['Imie'] . ' ' . $row['Nazwisko'] .'
</td>
<td class="table_row_center">
' . $row['Data_utw'] . '
</td>
';
<td class="table_row_left">';
if($row['ID_User_mod']!=NULL)
{
//echo $row['Imie'];
echo $row['ID_User_mod']; //echo $row['Nazwisko'];
}
else
{
}
</td>
<td class="table_row_center">';
if($row['Data_modyf']!=NULL)
{
}
else
{
}
</td>
</tr> ';
$licznik++;
}
/* po zakończeniu każdego wiersza z tabeli zwiększamy liczbę porządkową o 1,
aby kolejny wiersz miał większą liczbę porządkową */
}
else
{
echo 'Dostęp tylko dla zalogowanych użytkowników! <a href="index.php?dzial=panel" class="blank_link">Zaloguj się</a>'; }
?>
Chodzi głównie o zapytanie w sql.
$sql = 'SELECT * FROM `Dzial`, `User` WHERE Dzial.ID_Parent BETWEEN 1 AND 7 AND User.ID = Dzial.ID_User AND ORDER BY ';
Może podzielić to na dwa zapytania? Ale w jaki sposób później wstawić obydwa zapytania do jednej tabeli?
Z góry dzięki za pomoc.