[php] wyświetlenie tabeli z warunkiem

0

cześć

mam problem bo nie wiem jak zrobić aby nie wyświetlal się jeden rekord od razu .. tzn

mam tabelę w bazie

id, nazwa, sztuk, cena

i rekordy

1 bluzka 10 32
2 bluzka_1 3 10
3 bluzka_2 1 1

itp

pobieram tak:

 $wa = mysql_query("SELECT * FROM baza");

 echo'
 <table align=left>
 <tr >
 <td>nazwa</td>
 <td>ilosc</td>
 <td>cena</td>
 <td>pokaz</td></tr>';

 
 while($war = mysql_fetch_array($wa)){
 echo'<tr>
 <td>'.$war['nazwa'].'</td>
 <td>'.$war['szt'].'</td>
 <td>'.$war['cena'].'</td>
 <td><a href=strona.php?wyswietl='.$war['id'].'>pokaz</a></td></tr>';
}
echo'</table>';

dane o bluzka_3 chce pokazywać tylko tym osobą, które mogą ją zobaczyć więc stworzyłem warunek (a czy mogą zobaczyć to mam w drugiej tabeli):

if ($user['bluzka_3'] == 1 ) - mogą zobaczyć

tylko nie wiem jak to wmontować do wyświetlenia tego w tabeli aby dane były pokazane w zależności od tego warunku

proszę o pomoc

0
 while($war = mysql_fetch_array($wa)){
if ($user['bluzka_3'] == 1 ) {
 echo'<tr>
 <td>'.$war['nazwa'].'</td>
 <td>'.$war['szt'].'</td>
 <td>'.$war['cena'].'</td>
 <td><a href=strona.php?wyswietl='.$war['id'].'>pokaz</a></td></tr>';
}
}
0

void-tec no własnie tak nie może być ponieważ to spowoduje, że nie zostanie wyświetlone nic

a ja chcę aby bylo tak, że wyświetla rekord 1,2 a rekord 3 wyświetli jesli zostanie spelniony warunek

if ($user['bluzka_3'] == 1 )
0
 while($war = mysql_fetch_array($wa)){
if  ($user['bluzka_3'] == 1 && $war['id'] == '3') {
 echo'<tr>
 <td>'.$war['nazwa'].'</td>
 <td>'.$war['szt'].'</td>
 <td>'.$war['cena'].'</td>
 <td><a href=strona.php?wyswietl='.$war['id'].'>pokaz</a></td></tr>';
}
else
{
echo'<tr>
 <td>'.$war['nazwa'].'</td>
 <td>'.$war['szt'].'</td>
 <td>'.$war['cena'].'</td>
 <td><a href=strona.php?wyswietl='.$war['id'].'>pokaz</a></td></tr>';
}
}
}

Może i prymitywne rozwiązanie ale zadziała

0

Bez przesady, od czego jest operator nierówności? Wystarczy zmienić lekko kod void-teca.

 while($war = mysql_fetch_array($wa)){
if ($user['bluzka_3'] == 1 || $war['id'] != 3) {
 echo'<tr>
 <td>'.$war['nazwa'].'</td>
 <td>'.$war['szt'].'</td>
 <td>'.$war['cena'].'</td>
 <td><a href=strona.php?wyswietl='.$war['id'].'>pokaz</a></td></tr>';
}
}

Warunek trafi jeśli ID rekordu nie wynosi 3 lub użytkownik ma prawa do oglądania bluzki #3.

0

hehee

No to dałem plame :D
ale i tak zadziała ;p

0
 while($war = mysql_fetch_array($wa)){
if  ($user['bluzka_3'] == 1 && $war['id'] == '3') {
 echo'<tr>
 <td>'.$war['nazwa'].'</td>
 <td>'.$war['szt'].'</td>
 <td>'.$war['cena'].'</td>
 <td><a href=strona.php?wyswietl='.$war['id'].'>pokaz</a></td></tr>';
} else {
echo'<tr>
 <td>'.$war['nazwa'].'</td>
 <td>'.$war['szt'].'</td>
 <td>'.$war['cena'].'</td>
 <td><a href=strona.php?wyswietl='.$war['id'].'>pokaz</a></td></tr>';
}
}
}

Nie zadziała, bo wchodzisz w 2 poziomy zagnieżdżenia, a zamykasz je 3 razy (o jedną klamerkę zamykającą za dużo), oprócz tego jeśli trafi w warunek to wydrukuje rekord, jeśli nie trafi, to też wydrukuje identyczne dane, więc zawsze będzie widać rekordy dotyczące wszystkich bluzek.

Tylko czy nie lepiej ustawić ten warunek z poziomu zapytania?

0

Demonical Monk dziękuje bardzo za kod :) działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1