Avatar billede thedeathart Nybegynder
08. juli 2004 - 00:28 Der er 14 kommentarer og
1 løsning

LIMIT på en while med mysql

Hej.

Jeg skal hente noget data ud fra en database, hvor der nogle gange er 2 ens værdier, men jeg vil gerne at det kun bliver skrevet ud én gang for hver værdi, dvs. ingen dubletter.

Jeg har prøvet med array_unique() men det virker ikke ordenligt.

[min kode]
<?
$id = addslashes($_GET['userid']);

$userpquery = mysql_query("SELECT * FROM brugere WHERE id='$userid' ") or die(mysql_error());
$uprow = mysql_fetch_array($userpquery);

$sprquery = mysql_query("SELECT * FROM forum_design WHERE username='$uprow[username]' AND headline!='' ORDER BY id DESC ");
$subquery = mysql_query("SELECT * FROM forum_design WHERE username='$uprow[username]' AND intid!='' ORDER BY id DESC ");

$numspr = mysql_num_rows($sprquery);
$numsub = mysql_num_rows($subquery);

?>

Spørgsmål oprettet af <? echo $uprow[username]; ?><br><br>
<?
while ( $row = mysql_fetch_array($sprquery)) { ?>
<a href="index.php?id=show.php&t=<? echo $row[id]; ?>"><? echo $row[headline]; ?></a><br />
<? }; ?>
<br>
<hr>
<br>
Spørgsmål hvor <? echo $uprow[username]; ?> deltager<br><br>
<?
while ( $row2 = mysql_fetch_array($subquery)) {
$qu = mysql_query("SELECT headline FROM forum_design WHERE id='$row2[id]' ");
$row3 = mysql_fetch_array($qu);
$row3 = array_unique($ru);
?>
<a href="index.php?id=show.php&t=<? echo $row2[id]; ?>"><? echo $row3[headline]; ?></a><br /><br />
<?  };  ?>
Avatar billede squashguy Nybegynder
08. juli 2004 - 00:33 #1
jeg tror du leder efter DISTINCT http://www.1keydata.com/sql/sqldistinct.html
Avatar billede thedeathart Nybegynder
08. juli 2004 - 01:01 #2
$qu = mysql_query("SELECT DISTINCT headline FROM forum_design WHERE id='$row2[id]' ");

men den giver stadig 2 ens resultater. :S
Avatar billede jaw Nybegynder
08. juli 2004 - 01:38 #3
Hvilke felter kan der være 2 af? Ellers så brug GROUP BY felt så burde den kun tage 1 af hver "unik" fra det felt...
Avatar billede thedeathart Nybegynder
08. juli 2004 - 01:48 #4
http://www.thedeathart.dk/web/index.php?id=sp.php&userid=1

prøv at se, det må ikke så det samme 2 gange, hvilket er problemet.
Avatar billede jaw Nybegynder
08. juli 2004 - 01:50 #5
Ja, og hvilket felt er det? Prøvet GROUP BY?
Avatar billede thedeathart Nybegynder
08. juli 2004 - 01:59 #6
http://www.thedeathart.dk/web/index.php?id=sp.php&userid=1

nu brugers der:

$qu = mysql_query("SELECT headline FROM forum_design WHERE id='$row2[id]' GROUP BY headline ");

og så er det helt blank
...
Det er headline feltet som vises
Avatar billede jaw Nybegynder
08. juli 2004 - 02:09 #7
hmmm...

Jeg knaldede lige en hurtig en samme selv, hvor jeg har feltet "vare" der indeholder:

ddd
ddd
ggg

og med:
$q = mysql_query("SELECT * FROM varer WHERE tal != '0' GROUP BY vare");

udskriver den:
ddd
ggg
Avatar billede thedeathart Nybegynder
08. juli 2004 - 02:19 #8
det er vist min tabel struktur som er lidt wierd,

http://www.web.thedeathart.dk/dump.gif

Det er meningen at den skal skrive ud, hvilke tråde et givent brugernavn deltager i,
der er kun headine på tråden, og kun intid på indlæg.
Avatar billede jaw Nybegynder
08. juli 2004 - 02:24 #9
hmmmm, er lidt forvirret... Prøv at fjerne den GROUP BY igen
Avatar billede thedeathart Nybegynder
08. juli 2004 - 02:28 #10
så er den fjernet igen
Avatar billede jaw Nybegynder
08. juli 2004 - 02:31 #11
Det er mig nu en smule underligt... Hvad hvis du bruger GROUP BY id i stedet for? Ellers er jeg bange for jeg ikke kan hjælpe, for det funker her hos undertegnede :/
Avatar billede thedeathart Nybegynder
08. juli 2004 - 02:35 #12
sådan, det var den forkerte query jeg lavede GROUP BY på .

$subquery = mysql_query("SELECT * FROM forum_design WHERE username='$uprow[username]' AND intid!='' GROUP BY id ");

så virker det. :-)
Avatar billede jaw Nybegynder
08. juli 2004 - 02:36 #13
ahhhh hehe, ja så kan vi jo sidde her længe :) Tillader mig lige at kaste et svar i puljen så :)
Avatar billede thedeathart Nybegynder
08. juli 2004 - 02:41 #14
hehe... men mange tak :-)
Avatar billede squashguy Nybegynder
08. juli 2004 - 02:53 #15
brugte du også distinct på den forkerte sql? begge skulle give det ønskede resultat

http://www.winnetmag.com/SQLServer/Article/ArticleID/24282/24282.html
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