/ 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
Problemer med, Debat / Forum
Fra : Kasper B. Rasmussen


Dato : 21-08-02 15:43

Hej.....
Jeg er så småt igang med at lave et debatforum.. Jeg har lavet en database
hvor indlæg og besvarelser ligger i.. Jeg har lavet et stykke kode som skal
hendte og indsætte dem fra databasen.. det skulle gerne foregå således..

Først køre den tabellen igennem for at finde det første indlæg, Derefter
kører den igen igennem for at finde alle de tilhørende besvarelser.. Når det
så er gjort er det meningen at den skulle starte forfra, til der ikke er
flere indlæg. Men den gør det kun en gang, dvs sætter det første indlæg ind
med tilhørende besvarelser...

Er der nogen som hved hvorfor den ikke fortsætter, og hvordan det kan
løses...?

******** KODEN**********************
$debat = mysql_query("select * from debat");
while ($data = mysql_fetch_row($debat)){
if ($data[3] == 1){
echo $data[1];
echo "<br>";
echo $data[2];
$emne = $data[1];


while ($data = mysql_fetch_row($debat)){
if ($data[3]== '0' && $emne == $data[1]){
echo "<br><br>";
echo " -> ";
echo $data[2];
}
}
}
}
********************************


--------------------------------------------
Mvh. Kasper B. Rasmussen
k.birk@email.dk
www.kbirk.dk
ICQ: 57859508



 
 
Johan Holst Nielsen (21-08-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 21-08-02 15:50

> Først køre den tabellen igennem for at finde det første indlæg, Derefter
> kører den igen igennem for at finde alle de tilhørende besvarelser.. Når det
> så er gjort er det meningen at den skulle starte forfra, til der ikke er
> flere indlæg. Men den gør det kun en gang, dvs sætter det første indlæg ind
> med tilhørende besvarelser...

Ikke den bedste løsning...

> Er der nogen som hved hvorfor den ikke fortsætter, og hvordan det kan
> løses...?
>
> ******** KODEN**********************
> $debat = mysql_query("select * from debat");
> while ($data = mysql_fetch_row($debat)){

Her laver du et array kaldet $data...

> if ($data[3] == 1){
> echo $data[1];
> echo "<br>";
> echo $data[2];
> $emne = $data[1];
>
>
> while ($data = mysql_fetch_row($debat)){

her overskriver du arrayet $data med et nyt array...

> if ($data[3]== '0' && $emne == $data[1]){
> echo "<br><br>";
> echo " -> ";
> echo $data[2];
> }
> }
> }
> }
> ********************************
>

prøv

$debat = mysql_query("SELECT * FROM debat ORDER BY emne");
while($data = mysql_fetch_row($result)) {
if($data[3] == 0 && $emne == $data[1]) {
echo "<br><br> -> ";
echo $data[2];
}
elseif($data[3] == 1) {
echo $data[1];
echo "<br>";
echo $data[2];
$emne = $data[1];
}
}

tror jeg?!?!?!?! Er ikke testet... kan ikke helt gennemskue hvad
$data[1] osv er...

mvh
Johan


Kasper B. Rasmussen (21-08-2002)
Kommentar
Fra : Kasper B. Rasmussen


Dato : 21-08-02 16:36

> prøv
>
> $debat = mysql_query("SELECT * FROM debat ORDER BY emne");
> while($data = mysql_fetch_row($result)) {
> if($data[3] == 0 && $emne == $data[1]) {
> echo "<br><br> -> ";
> echo $data[2];
> }
> elseif($data[3] == 1) {
> echo $data[1];
> echo "<br>";
> echo $data[2];
> $emne = $data[1];
> }
> }
>
> tror jeg?!?!?!?! Er ikke testet... kan ikke helt gennemskue hvad
> $data[1] osv er...
>
> mvh
> Johan

Det virker ikke, den viser slet ingen ting.. Jeg kan ikke rigtigt se hvad
du har gjort..



Johan Holst Nielsen (21-08-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 21-08-02 17:19

> Det virker ikke, den viser slet ingen ting.. Jeg kan ikke rigtigt se hvad
> du har gjort..

Well problemet er kort sagt at du ikke kan køre 2 while løkker på den
samme query...

mvh
Johan


Kjell Arne Steinsvik (21-08-2002)
Kommentar
Fra : Kjell Arne Steinsvik


Dato : 21-08-02 21:38

At Wed, 21 Aug 2002 18:19:27 +0200, Johan Holst Nielsen typed the
following words:

> Well problemet er kort sagt at du ikke kan køre 2 while løkker på den
> samme query...

Man *kan*, om man bruker reset($array);, men om det er den beste
løsningen på dette problemet er ikke sikkert.

http://no.php.net/manual/en/function.reset.php


--
,_, Kjell Arne Steinsvik
(O,O) kjell.arne@volda.org
( ) http://www.volda.org
-"-"---------------------------dwb-

Johan Holst Nielsen (22-08-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 22-08-02 08:04

>>Well problemet er kort sagt at du ikke kan køre 2 while løkker på den
>>samme query...
>
>
> Man *kan*, om man bruker reset($array);, men om det er den beste
> løsningen på dette problemet er ikke sikkert.
>
> http://no.php.net/manual/en/function.reset.php

jep... jeg er grundlæggende forkert på den... du har helt ret... det var
lidt forkert formuleret. Mente også mere at problemet lå i hans 2 løkker...
Men det er svært at gennemskue den debat som Kasper har lavet...

Ville lave noget med et threadid i stedet, hvor det består af de numre
som ligger over indlægget i trådene, og så sortere efter denne. Således
behøves man kun en while løkke på querien, og så en f.eks. en explode
til at tjekke hvor langt den skal ind...

Men tak for rettelsen af mig :)

mvh
Johan


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

Månedens bedste
Årets bedste
Sidste års bedste