Avatar billede michaelgm Nybegynder
13. februar 2004 - 18:36 Der er 25 kommentarer og
1 løsning

Array uden gentagelser

Okay nu skal i høre:

Har en mysql tabel hvor jeg har

en masse brugernavne og et felt med til j & n.

I min tabel er samme brugernavn nævnt mange gange.

Det jeg gerne vil have ud er

alle dem hvor der er et brugernavn og et j. - men ingen gentagelser af brugernavn..

Og resten skal være n. men stadig ingen gentagelser af brugernavn når man til sidst har j & n

while ($row = mysql_fetch_array($resultat))
{

    $nick  = $row["sender"];   
   
    //$mitarray = array();   
   
    $tilfoj = true;
    for ($i = 0; $i < count($mitarray); $i++)
    {
        if (($mitarray[$i] == $nick) OR ($laest == 'n'))
        {
            $tilfoj = false;
        }
    }

    if ($tilfoj == "true")
    {
        $mitarray[]     = $nick;
       
    }
}

----

Og hvordan trækker jeg det ud igen hvis det er muliti Array?
Avatar billede thb Nybegynder
13. februar 2004 - 18:40 #1
kan du ikke lave en sql sætning som tager alle de der med j, og så siger Group by brugernavn... Har du prøvet det ?

Thomas
Avatar billede michaelgm Nybegynder
13. februar 2004 - 18:43 #2
Ja men hvad så med alle dem med n? de skal jo os med?
og igen gentagelser hvor der i min database kan være 30 med samme brugernavn
Avatar billede michaelgm Nybegynder
13. februar 2004 - 18:46 #3
Jeg har 30 Michael og 20 Thomas feks.
Så skal jeg kun have 2 ud af det.. Hvis begge er j skal det følge med at det er j

Hvis en er j og en n så skal jeg stadig have 2 men vide hvorfor en bruger der var bare et j ved og så bare 1 med n
Avatar billede michaelgm Nybegynder
13. februar 2004 - 18:49 #4
thomas=j      hvis der bare er en af de 20 der er j så skal thomas være = j
michael = n  hvis ingen michael række er j så skal den være = n

Men må kun give mig en
michael=n og ikke 30
Avatar billede erikjacobsen Ekspert
13. februar 2004 - 18:59 #5
id,navn,janej
1,michael,n
2,michael,n
3,thomas,j
4,thomas,n
5,thomas,n
6,michael,n

select navn,min(janej) from thomasmichael group by navn

Det giver det korrekte svar for dig. SQL kan meget....
Avatar billede michaelgm Nybegynder
13. februar 2004 - 19:02 #6
michael = n
michael = n
michael = n
thomas  = j
thomas  = n
thomas  = n

ud af det?
hvor det jeg søger ud fra det du har lavet

michael = n
thomas = j
Avatar billede erikjacobsen Ekspert
13. februar 2004 - 19:04 #7
Hvad er det du nu spørger om? Hvis du spørger om det virker, så er svaret
(sjovt nok): ja.
Avatar billede michaelgm Nybegynder
13. februar 2004 - 19:15 #8
Det er ikke hvad jeg havde forestillet mig:

Skal hvis jeg har 100 brugere.. nogen står der 30 gange nogen gange med j og andre gange med n

skal have brugernavnet ud.. Altså alle sammen men kun 1 gang.

Og til de brugernavn skal jeg vide hvilke der har været bare et j.
Avatar billede erikjacobsen Ekspert
13. februar 2004 - 19:18 #9
Og det er vel hvad jeg har givet dig, ikke?
Avatar billede michaelgm Nybegynder
13. februar 2004 - 19:27 #10
Nej det giver bare det første af det enkle brugernavn? skal jo os bruge om der var et j ved den enkle bruger for så skal den jo være brugernavn = j ellers brugernavn = n
Avatar billede erikjacobsen Ekspert
13. februar 2004 - 19:32 #11
Og det er vel hvad jeg har givet dig, ikke?
Avatar billede michaelgm Nybegynder
13. februar 2004 - 19:33 #12
Nej 2 sek smækker det lige ud..  så kan du se.. Hehe den giver mig bare n til begge hvilket er forkert.. For en af dem har jo et "j"
Avatar billede erikjacobsen Ekspert
13. februar 2004 - 19:40 #13
Det jeg har skrevet giver det korrekte resultat, med de præmisser du har opstillet.
Avatar billede michaelgm Nybegynder
13. februar 2004 - 19:41 #14
Avatar billede michaelgm Nybegynder
13. februar 2004 - 19:44 #15
alle dem hvor der er et brugernavn og et j. - men ingen gentagelser af brugernavn..

Og resten skal være n. men stadig ingen gentagelser af brugernavn når man til sidst har j & n

---------

Det var en af mine præmisser?
Og den er ikke opfyldt?
Håber du vil hjælpe?
Avatar billede erikjacobsen Ekspert
13. februar 2004 - 19:54 #16
Min SQL-sætning virker på det data jeg har skrevet i min kommentar
Jeg kan ikke se din sql-sætning.
Jeg kan ikke se hvad dine data i virkeligheden er.
Jeg kan ikke se din kode.

Ergo kan jeg ikke hjælpe dig mere. Med mindre jeg får mere at vide.
Avatar billede michaelgm Nybegynder
13. februar 2004 - 20:08 #17
http://www.1337-esport.com/carterbu/mysql.txt
http://www.1337-esport.com/carterbu/post.txt
og vil så gerne have så hvis den er j ved en bruger skal den lave et andet billede end hvis nej

<img src=design/tegn/mappe.gif> er der hvor brugernavn = n
<img src=design/tegn/fuldmappe.gif> er der hvor brugernavn = j

Hæver points til 100 hvis du vil hjælpe mig færdig med det?
Avatar billede michaelgm Nybegynder
13. februar 2004 - 20:09 #18
Brugernavn: CarterBU
Kodeord:    Test
Avatar billede erikjacobsen Ekspert
13. februar 2004 - 20:19 #19
Jeg samler ikke på point, så det er ligemeget. Jeg gør det heller ikke for dig, men yder
hjælp til selvhjælp, så jeg logger ikke ind på dit system. Du er velkommen til at lukke
den login igen, så du ikke får ubudne gæster.

Du må have prøvet med noget der ligner den sql-sætning jeg skrev til dig. Hvor er den?
Avatar billede michaelgm Nybegynder
13. februar 2004 - 20:28 #21
som du kan se for jeg det her ud af det:

JaRni = n
Ravie = n

Hvor det jeg skulle have var:

JaRni = j
Ravie = j

INSERT INTO mic_post VALUES (5, 'CarterBU', 'Ravie', 'Michael!!! For fanden', 'Hehe der troede du lige hva? ', 'j', 0);

INSERT INTO mic_post VALUES (2, 'CarterBU', 'JaRni', 'Hej', 'Hej Hej', 'j', 0);

som du kan se der er de j begge 2
Avatar billede erikjacobsen Ekspert
13. februar 2004 - 20:28 #22
Kig lidt mere på det jeg skrev. Jeg hopper ud af spørgsmålet, da jeg
da heldigvis har andet at få min tid til at gå med. 1½ time fra du fik
et korrekt svar, som du åbenbart bare ikke vil prøve...
Avatar billede michaelgm Nybegynder
13. februar 2004 - 20:31 #23
erikjacobsen - Har da prøvet det som du kan se:
http://www.1337-esport.com/carterbu/post2.txt
Avatar billede michaelgm Nybegynder
13. februar 2004 - 20:38 #24
Men tak for forsøget.
Avatar billede michaelgm Nybegynder
15. februar 2004 - 14:22 #25
Har fået lavet det jeg skulle bruge.. :)

                    $resultat = mysql_query("SELECT * FROM `mic_post` WHERE modtager = '$sesbrugernavn' AND laest='n' order by sender");
                    while ($row = mysql_fetch_array($resultat))
                    {
                        $nick  = $row["sender"];
                        $laest = $row["laest"];

                        $tilfoj = true;

                        for ($i = 0; $i < count($mitarray); $i++)
                        {
                            if ($mitarray[$i] == $nick)
                            {
                                $tilfoj = false;
                            }
                        }

                        if ($tilfoj == "true") { $mitarray[] .= $nick; }
                    }       


                    $resultat2 = mysql_query("SELECT * FROM `mic_post` WHERE modtager = '$sesbrugernavn' AND laest='j' order by sender");

                    while ($row2 = mysql_fetch_array($resultat2))
                    {

                        $nick2  = $row2["sender"];
                        $laest2 = $row2["laest"];
   
                        $tilfoj2 = true;

                        for ($i = 0; $i < count($mitarray); $i++)
                        {

                            if ($mitarray[$i] == $nick2)
                            {
                                $tilfoj2 = false;
                            }
                        }

                        for ($i = 0; $i < count($mitarray2); $i++)
                        {
                            if ($mitarray2[$i] == $nick2)
                            {
                                $tilfoj2 = false;
                            }
                        }
   
                        if ($tilfoj2 == "true") { $mitarray2[] .= $nick2; }
                    }       
                                   

                   
                       
                    echo "<table width=100% height=100% border=0><tr>";
                                   
                    for ($i = 0; $i < count($mitarray); $i++)
                    {
                        echo "<td align=left class=tekst><a href='index.php?side=post&sender=$mitarray[$i]'><img src=design/tegn/mappefuld.gif border=0></a><br>&nbsp;&nbsp;&nbsp;".$mitarray[$i]."</td>";
                      }


                    for ($i2 = 0; $i2 < count($mitarray2); $i2++)
                    {
                        echo "<td align=left class=tekst><a href='index.php?side=post&sender=$mitarray2[$i2]'><img src=design/tegn/mappe.gif border=0></a><br>&nbsp;&nbsp;&nbsp;".$mitarray2[$i2]."</td>";
                      }
                    echo "</tr></table>";
Avatar billede michaelgm Nybegynder
15. februar 2004 - 14:24 #26
Så fik da vist lige hentet mine points ind ved selv at lave svaret..
Tak for forsøget erikjacobsen og vil stadig gerne høre fra dig hvis du mener jeg ku have lavet det i en sql sætning...
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