/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
2 queries, men stadig hive alt ud
Fra : Christian Hjort


Dato : 02-01-05 17:38

hejsa ng!

Jeg er ved at lave et debatforum. Jeg vil gerne have
'overkategorierne' i en farve i en tabel, og så
'underkategorierne' en anden. Derfor har jeg forsøgt mig med
følgende kode:

$query = mysql_query("SELECT * from kat_over order by id") or
die(mysql_error());
while ($row = mysql_fetch_array($query)) {
$katid = $row[id];
echo"<tr>
<td width=\"40%\" class=\"over\">$row[kat]</td>
<td width=\"30%\" class=\"over\"></td>
<td width=\"15%\" class=\"over\"></td>
<td width=\"15%\" class=\"over\"></td>
</tr>";
$query = mysql_query("SELECT * from subkat WHERE ref ='$katid'
ORDER BY ID DESC") or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
echo"<tr>
<td width=\"40%\" class=\"ind\">$row[besked]</td>
<td width=\"30%\" class=\"ind\">Link</td>
<td width=\"15%\" class=\"ind\">$row[indlaeg]</td>
<td width=\"15%\" class=\"ind\">$row[svar]</td>
</tr>";
?>

feltet 'ref' er en referere til id'et i tabellen kat_over.

Problemet er; Den udskriver kun én overkategori med denne kode,
selvom der er er flere i databasen, nogen måder hvorpå I kan
hjælpe med at få denne kode til at virke? Planen er
underkategorierne, skal stå under deres respektive
overkategorier.

Lille eksemplel kan ses på :

http://stormdk.users.whitehat.dk/forum/index.php?p=over

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Dan Storm (02-01-2005)
Kommentar
Fra : Dan Storm


Dato : 02-01-05 19:04

Overvej din syntaks, den er generelt dårlig. Det er også logisk at det
ikke virker da du erklærer $row arrayet to gange i samme løkke og dermed
ændrer indhold.
måske vil dette virke;

$query = mysql_query("SELECT * FROM kat_over ORDER BY id DESC");
while($kat_over = mysql_fetch_object($query)) {

echo '
<tr>
<td width="40%" class="over">'.$kat_over->kat.'</td>
<td width="30%" class="over"></td>
<td width="15%" class="over"></td>
<td width="15%" class="over"></td>
</tr>
';

$subquery = mysql_query("SELECT * from subkat WHERE ref =
'".$kat_over->katid."' ORDER BY id DESC");
   while($under_kat = mysql_fetch_object($subquery)) {
   echo '
   <tr>
   <td width="40%" class="ind">'.$under_kat->besked.'</td>
   <td width="30%" class="ind">Link</td>
   <td width="15%" class="ind">'.$under_kat->indlaeg.'</td>
   <td width="15%" class="ind">'.$under_kat->svar.'</td>
   </tr>
   ';
   }
   unset($subquery);
}


--
Dan Storm

http://err0r.dk
storm@err0r.dk

PGP Public key på http://err0r.dk/pubring.pkr

>>> husk på; en ekspert er en person der har begået alle fejl mulige
inden for et bestemt område

Christian Hjort (02-01-2005)
Kommentar
Fra : Christian Hjort


Dato : 02-01-05 19:39

Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> Overvej din syntaks, den er generelt dårlig. Det er også logisk at det
> ikke virker da du erklærer $row arrayet to gange i samme løkke og dermed
> ændrer indhold.
> måske vil dette virke;
>
[snip kode]


Gør det desværre ikke, nu hiver den alle overkategorier ud, men ikke de
tilhørende underkategorier.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jesper Henriksen (04-01-2005)
Kommentar
Fra : Jesper Henriksen


Dato : 04-01-05 08:20

Christian Hjort wrote in dk.edb.internet.webdesign.serverside.php:
> Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> > Overvej din syntaks, den er generelt dårlig. Det er også logisk at det
> > ikke virker da du erklærer $row arrayet to gange i samme løkke og dermed
> > ændrer indhold.
> > måske vil dette virke;
> >
> [snip kode]
>
> Gør det desværre ikke, nu hiver den alle overkategorier ud, men ikke de
> tilhørende underkategorier.

Jeg vil da foreslå at du overvejer din databasestruktur. Hvorfor skal du
overhovedet benytte 2 tabeller til det der?
Hvorfor ikke bare benytte en attribut til at definere hvilken over-kategori
en given kategori har (og hvis denne er 0 eller NULL, så er det er
overkategori)... dette kræver godt nok et rekursivt kald, men bliver da klart
smukkere kode!
- rent performance-mæssigt ved jeg dog ikke om den løsning er optimal.
- men hvis du kun har et niveau af underkategorier, så kan du jo sagtens gøre
det på den anden måde; semi-statisk.

nå, men hvis du ønsker at benytte din nuværende struktur, så:
Kode
$query = mysql_query("SELECT * from kat_over order by id") or
die(mysql_error());
while ($row = mysql_fetch_array($query)) {
$katid = $row[id];
echo"<tr>
<td width=\"40%\" class=\"over\">$row[kat]</td>
<td width=\"30%\" class=\"over\"></td>
<td width=\"15%\" class=\"over\"></td>
<td width=\"15%\" class=\"over\"></td>
</tr>";
$query1 = mysql_query("SELECT * from subkat WHERE ref ='$katid'
ORDER BY ID DESC") or die(mysql_error());
while ($row1 = mysql_fetch_array($query1)) {
echo"<tr>
<td width=\"40%\" class=\"ind\">$row1[besked]</td>
<td width=\"30%\" class=\"ind\">Link</td>
<td width=\"15%\" class=\"ind\">$row1[indlaeg]</td>
<td width=\"15%\" class=\"ind\">$row1[svar]</td>
</tr>";
} //havde du ikke glemt denne?
} //havde du ikke glemt denne?
?>


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Christian Hjort (04-01-2005)
Kommentar
Fra : Christian Hjort


Dato : 04-01-05 17:20

Jesper Henriksen wrote in dk.edb.internet.webdesign.serverside.php:
> Christian Hjort wrote in dk.edb.internet.webdesign.serverside.php:
> > Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
> > > Overvej din syntaks, den er generelt dårlig. Det er også logisk at det
> > > ikke virker da du erklærer $row arrayet to gange i samme løkke og dermed
> > > ændrer indhold.
> > > måske vil dette virke;
> > >
> > [snip kode]
> >
> > Gør det desværre ikke, nu hiver den alle overkategorier ud, men ikke de
> > tilhørende underkategorier.
>
> Jeg vil da foreslå at du overvejer din databasestruktur. Hvorfor skal du
> overhovedet benytte 2 tabeller til det der?
> Hvorfor ikke bare benytte en attribut til at definere hvilken over-kategori
> en given kategori har (og hvis denne er 0 eller NULL, så er det er
> overkategori)... dette kræver godt nok et rekursivt kald, men bliver da klart
> smukkere kode!
> - rent performance-mæssigt ved jeg dog ikke om den løsning er optimal.
> - men hvis du kun har et niveau af underkategorier, så kan du jo sagtens gøre
> det på den anden måde; semi-statisk.

Ja ok, jeg har læst lidt på mysql lektien, og benyttet den kode Dan Storm
postede; skulle bare rettes lidt. Det virker efter hensigten.

>
> nå, men hvis du ønsker at benytte din nuværende struktur, så:
[snip]
kode
[/snip]

Tak for det, kan se jeg bare har dummet mig

Men I skal begge have stor tak for jeres tid!

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste