Avatar billede Slettet bruger
21. januar 2011 - 22:48 Der er 10 kommentarer og
1 løsning

Problemer med i if sætning

Jeg har denne kode del til at lave en bruger liste med.


echo "<center><table class='sample' width='85%' border='1' align='center' cellpadding='1' cellspacing='1' bordercolor='#000000'>";
echo  "<tr bgcolor='#222222'>";
echo  "<td>";
echo      "Navn";
echo    "</td>";
echo    "<td>";
echo    "<div align='center'>";
echo      "<font color='#FC9801' size='2' face='Verdana, Arial, Helvetica, sans-serif'>";
echo      "Type";
echo      "</font>";
echo    "</td>";
echo    "</tr>";


$result = mysql_query("SELECT * from Users Where u_onoff = 'on' ORDER BY u_type DESC");
While($row=mysql_fetch_array($result))
{
echo    "<tr>";
echo    "<td>".$row['u_navn']."</td>";
echo    "<td>".$row['u_type']."</td>";
echo    "</tr>";
}
echo  "</table></center>";



Det giver dette udtræk:

[Navn][Type]
[Lasse][1]
[Torben][1]
[Kapser][1]
[Leif][2]
[Lautris][4]
[Ken][4]
[Asbjørn][4]

Jeg vil gerne inddele det jeg henter i en tabel pr type.
Og sådan at hvis der ikke er en type. Så vil [Navn][Type] ikke blive vist.

jeg tænker noget i stil med:


echo "<center>";

if (hvis der er nogen u_type=1 and u_onoff=on) { <---------MIN ide

echo "<table class='sample' width='85%' border='1' align='center' cellpadding='1' cellspacing='1' bordercolor='#000000'>";
echo  "<tr bgcolor='#222222'>";
echo  "<td>";
echo      "Navn";
echo    "</td>";
echo    "<td>";
echo    "<div align='center'>";
echo      "<font color='#FC9801' size='2' face='Verdana, Arial, Helvetica, sans-serif'>";
echo      "Type";
echo      "</font>";
echo    "</td>";
echo    "</tr>";

} <---------MIN ide

$result = mysql_query("SELECT * from Users Where u_type = 1 AND u_onoff = 'on' ORDER BY u_type DESC");
While($row=mysql_fetch_array($result))
{
echo    "<tr>";
echo    "<td>".$row['u_navn']."</td>";
echo    "<td>".$row['u_type']."</td>";
echo    "</tr>";
}
if (hvis der er nogen u_type=1 and u_onoff=on) {  <---------MIN ide
echo  "</table>
} <---------MIN ide
</center>";

Her efter laver jeg bare 3 udtræk på samme måde med de andre typer.

Men så skal jeg jo have åbnet tabellen inden og trukket u_type og u_onoff ud.
Hvordan man lige laver if-sætningen og åbner en tabel til den, det vil jeg gerne lære.

Eller hvis der er en nemmere måde at gøre dette på er jeg også åben for at lære :o)

Spørg endelig hvis i ikke forstår mit spørgsmål :)
Avatar billede majbom Novice
21. januar 2011 - 22:52 #1
du skal vel lukke tabellen alligevel inden du åbner en ny - medmindre det er den første?
Avatar billede Slettet bruger
21. januar 2011 - 22:57 #2
Ja det gør jeg jo også..
Åbner en tabel hvis de 2 krav i if'en er godkendt.
Og lukker den igen til sidst.
Avatar billede majbom Novice
21. januar 2011 - 23:03 #3
Tro sq ikke lige at jeg er med så...
Avatar billede Slettet bruger
21. januar 2011 - 23:06 #4
Jeg ved ikke hvordan jeg laver de if sætninger der skal bruges til det.
Jeg skal vel åbne tabellen user i min database. Og hente u_type og u_onoff derfra. Så de kan bruges i min if sætning.
Avatar billede mons Nybegynder
21. januar 2011 - 23:40 #5
Du skal have dit query først.

Og så kan du bare bruge if på det.

Altså:
if($result = mysql_query("SELECT * from Users Where u_type = 1 AND u_onoff = 'on' ORDER BY u_type DESC"));

Da $result er en boolian
Avatar billede Slettet bruger
22. januar 2011 - 00:14 #6
Jeg prøver lige at beskrive det på en anden måde.
Har også lige lavet koderne lidt om.
Lige nu har jeg denne kode:


echo "<center>";

echo "<table><tr><td colspan="2">Type 1</td></tr>";
echo "<tr bgcolor='#222222'><td>Navn</td><td>Type</td></tr>";

$result = mysql_query("SELECT * from Users Where u_onoff = 'on' AND u_type = 1 ORDER BY u_name");
While($row=mysql_fetch_array($result))
{
echo    "<tr>";
echo    "<td>".$row['u_navn']."</td>";
echo    "<td>".$row['u_type']."</td>";
echo    "</tr>";
}
echo "</table><br><br>";

echo "<table><tr><td colspan="2">Type 2</td></tr>";
echo "<tr bgcolor='#222222'><td>Navn</td><td>Type</td></tr>";

$result = mysql_query("SELECT * from Users Where u_onoff = 'on' AND u_type = 2 ORDER BY u_name");
While($row=mysql_fetch_array($result))
{
echo    "<tr>";
echo    "<td>".$row['u_navn']."</td>";
echo    "<td>".$row['u_type']."</td>";
echo    "</tr>";
}
echo "</table><br><br>";

echo "<table><tr><td colspan="2">Type 3</td></tr>";
echo "<tr bgcolor='#222222'><td>Navn</td><td>Type</td></tr>";

$result = mysql_query("SELECT * from Users Where u_onoff = 'on' AND u_type = 3 ORDER BY u_name");
While($row=mysql_fetch_array($result))
{
echo    "<tr>";
echo    "<td>".$row['u_navn']."</td>";
echo    "<td>".$row['u_type']."</td>";
echo    "</tr>";
}
echo "</table><br><br>";

echo "<table><tr><td colspan="2">Type 4</td></tr>";
echo "<tr bgcolor='#222222'><td>Navn</td><td>Type</td></tr>";

$result = mysql_query("SELECT * from Users Where u_onoff = 'on' AND u_type = 4 ORDER BY u_name");
While($row=mysql_fetch_array($result))
{
echo    "<tr>";
echo    "<td>".$row['u_navn']."</td>";
echo    "<td>".$row['u_type']."</td>";
echo    "</tr>";
}
echo "</table>";

echo "</center>";



Som i kan se har jeg 3 tabeller.
Men som det er lige nu i min database har jeg ingen type 3 brugere. (Det kan pludselig ændre sig, så derfor har jeg listen klar. Men lige nu udskriver den jo stadig toppen af tabellen:


echo "<table><tr><td colspan="2">Type 4</td></tr>";
echo "<tr bgcolor='#222222'><td>Navn</td><td>Type</td></tr>";


Denne del vil jeg kun have frem, hvis der er nogle bruger i tabellen i databasen, som er af typen 3.

Hvordan gør jeg det?
Jeg forstillede mig selv en if sætning. Men er åben for alle muligheder.

Håber at det var en lidt bedre forklaring. :)
Avatar billede Slettet bruger
22. januar 2011 - 00:21 #7
Lige en fejl:
Som i kan se har jeg 3 tabeller.
Men som det er lige nu i min database har jeg ingen type 3 brugere. (Det kan pludselig ændre sig, så derfor har jeg listen klar. Men lige nu udskriver den jo stadig toppen af tabellen:


Jeg har 4 tabeller og ikke kun 3 i min kode.
Avatar billede mons Nybegynder
22. januar 2011 - 00:28 #8
Din type 3 ser sådan her ud!!!

echo "<table><tr><td colspan="2">Type 3</td></tr>";
echo "<tr bgcolor='#222222'><td>Navn</td><td>Type</td></tr>";

$result = mysql_query("SELECT * from Users Where u_onoff = 'on' AND u_type = 3 ORDER BY u_name");
While($row=mysql_fetch_array($result))
{
echo    "<tr>";
echo    "<td>".$row['u_navn']."</td>";
echo    "<td>".$row['u_type']."</td>";
echo    "</tr>";
}
echo "</table><br><br>";



Den skal se sådan her ud!!


if($result = mysql_query("SELECT * from Users Where u_onoff = 'on' AND u_type = 3 ORDER BY u_name"));
{//begin if $result
echo "<table><tr><td colspan="2">Type 3</td></tr>";
echo "<tr bgcolor='#222222'><td>Navn</td><td>Type</td></tr>";


While($row=mysql_fetch_array($result))
{
echo    "<tr>";
echo    "<td>".$row['u_navn']."</td>";
echo    "<td>".$row['u_type']."</td>";
echo    "</tr>";
}
echo "</table><br><br>";
}//end if $result

Så får du ikke udskrevet <table.... med mindre der er gevinst i resultatet. Altså $result=1
Avatar billede Slettet bruger
22. januar 2011 - 00:48 #9
Super så havde du fat i noget. Bare mig der ikke forstod det.
Men jeg kan ikke få det til at virke.

Har sat dette ind.


if($result = mysql_query("SELECT * from Users Where u_type = 1 AND u_onoff = 'on' ORDER BY u_navn));{


Og slutter med en } efter </table>

Men den laver stadig tabellen.. Hvad kan jeg gøre galt.
Avatar billede Slettet bruger
22. januar 2011 - 01:14 #10
Fik det fixet sådan:


$result = mysql_query("SELECT * from Users Where u_onoff = 'on' AND u_type = 3 ORDER BY u_navn");
if(mysql_num_rows($result) > 0){


Du må gerne poste et svar
Avatar billede mons Nybegynder
22. januar 2011 - 09:37 #11
Godt du forstod det;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester