Nazwisko 1||Produkt 1||Dane||Dane
Nazwisko 1||Produkt 2||Dane||Dane
Nazwisko 1||Produkt 3||Dane||Dane
Nazwisko 2||Produkt 1||Dane||Dane
Nazwisko 2||Produkt 3||Dane||Dane
Nazwisko 3||Produkt 1||Dane||Dane
Nazwisko 3||Produkt 2||Dane||Dane
Nazwisko 3||Produkt 3||Dane||Dane
Jest spora redundancja, ale nie ma możliwości zmiany tego, musi być jak jest.
Chciałbym zrobić coś takiego:
-------------||Produkt 1||Produkt 2||Produkt 3
Nazwisko 1||Dane-----||Dane-----||Dane----
Nazwisko 2||Dane-----||Dane-----||Dane---- etc.
Nazwisko 3||Dane-----||Dane-----||Dane----
Udało mi się to zrobić w PHP, jednak działa pierońsko wolno. Dałoby radę to załatwić zapytaniem do bazy, tak, żeby od razu pobrać taką tabelę? Myślę, że byłoby o wiele szybciej, bo przemieliło by raz, a dobrze...
Edyta - znalazłem coś takiego do transpozycji:
Kod
$q="SELECT * FROM users";
$odp=mysql_query($q);
echo '<table border="1">';
while ($obj=mysql_fetch_field($odp))
{
echo '<tr>';
echo '<td><b>'.$obj->name.'<b></td>';
for ($i=0; $i<mysql_num_rows($odp); $i++)
{
echo '<td>'. mysql_result($odp, $i , $obj->name ) .'</td>';
}
echo '</tr>';
}
echo '<table>';
- działa szybko, ale wyświetla mi tak:$odp=mysql_query($q);
echo '<table border="1">';
while ($obj=mysql_fetch_field($odp))
{
echo '<tr>';
echo '<td><b>'.$obj->name.'<b></td>';
for ($i=0; $i<mysql_num_rows($odp); $i++)
{
echo '<td>'. mysql_result($odp, $i , $obj->name ) .'</td>';
}
echo '</tr>';
}
echo '<table>';
Nazwisko 1||Nazwisko 1||Nazwisko 1||Nazwisko 2||Nazwisko 2||Nazwisko 3||Nazwisko 3||Nazwisko 3
Produkt 1--||Produkt 2--||Produkt 3--||Produkt 1--||Produkt 3--||Produkt 1--||Produkt 2--||Produkt 3--
Dane||Dane||Dane||Dane||
Dane||Dane||Dane||Dane|| etc.
Trzeba dokonać częściowej transpozycji, ale nie mam pojęcia jak to zrobić.