[PHP] Tworzenie tabeli z warunkami


(Inventer89) #1

Chciałbym stworzyć tabelę, która będzie się składała z odfiltrowanych rekordów. Umiem już tworzyć listę takich odfiltrowanych rekordów, natomiast mam problem z umieszczeniem ich w tabeli. [code]<?php
require_once “maincore.php”;
require_once THEMES.“templates/header.php”;

$result = dbquery(“SELECT user_name, user_origin, user_id, user_avatar, user_color, user_prefix FROM “.DB_USERS.” ORDER BY user_origin DESC LIMIT 100”);

echo ‘

’;
while($row = dbarray($result)){
	if ($row['user_origin'] != NULL) {
	if($row['user_avatar'] != NULL) { 
	echo "<img src='".IMAGES."avatars/".$row['user_avatar']."' style='float:left;' width='20' height='20' alt='' />"; 
	}else{ 
	echo "<img src='".IMAGES."avatars/noavatar50.png"."' style='float:left;' width='20' height='20' alt='' />";
	}
}




echo "<tr><td>

<img src='".IMAGES."avatars/".$row['user_avatar']."' style='float:left;' width='20' height='20' alt='' />

</td><td><span style='font-family:Oswald;font-size:18px;'><a href='".BASEDIR."profile.php?lookup=".$row['user_id']."'></span><span style='color:".$row['user_color']."'>".$row['user_prefix']."".$row['user_name']."</a></td><td>".$row['user_origin']."</td></tr>";

$i++;
}
echo ‘

Avatar Użytkownik Nick Origin
’;
?>[/code]
oba if powinny się znaleźć tuż po echo "<tr><td>

Może mi ktoś wyjaśnić jak mam takie cudo umieścić w takiej tabeli?


(Pablo_Wawa) #2

Nie bardzo “łapię”, z czym masz problem (ale może dlatego, że jest już późna godzina).
Zwrócę tylko Twoją uwagę na trzy kwestie:

  1. Jak wyświetlasz tabelę (<TABLE>), to musisz pilnować, by poprawnie zbudować jej kolejne wiersze (<TR>) - tymczasem przed pętlą wypisujesz nagłówek tabeli (dobrze), ale już w pętli dane nie zaczynają się od <TR>, co jest konieczne (to masz dopiero po dwóch if-ach, w echo).
    Także po wierszu z while musisz wypisać echo "<tr><td>"; i potem dać ikonkę awatara i potem kolejne pola (pamiętając o zamykaniu komórek tabeli </TD> (a na końcu wiersza o </TR>).
    Czyli:
    while($row = dbarray($result)){
    echo "<tr><td>";
    i tu dalej masz te if-y
    a potem zamiast
    echo "<tr><td>
    masz
    echo "</td><td>

  2. Nie jest zalecane (a nawet jest to błąd składniowy) wstawianie sekcji style do elementów HTML - najlepiej jest zdefiniować sobie kilka klas (class) dla tych elementów, których wygląd modyfikujesz i odpowiednio nadawać takim elementom właściwe klasy (szczególnie jak często powtarzasz taki styl).
    Mam tu na myśli konstrukcje takie jak
    <span style='font-family:Oswald;font-size:18px;'>
    zamiast niej robisz w nagłówku <head> (lub lepiej w załączanym pliku ze stylami CSS) wpis
    <style>
    span.profil { font-family:Oswald;font-size:18px; }
    </style>
    a w kodzie HTML dasz
    <span class="profil">

  3. Zupełnie nie wiem, po co Ci linia
    $i++;
    Po pierwsze nie używasz tej zmiennej w pętli, a po drugie nigdzie jej nie zainicjowałeś (w kodzie powyżej).