Avatar billede truthorn Nybegynder
27. januar 2003 - 13:21 Der er 5 kommentarer

array-filtrering

Jeg har generelt problemer med at sortere, filtrere, m.v. i mine associative arrays :-/

Her har jeg eksempelvis en SQL-forespørgsel, der laves om til et associativt array (tror jeg nok det hedder), hvorefter jeg gerne vil filtrere i det...

-------------

$res = mysql_query("
SELECT *

FROM produkter

LEFT JOIN kunderprodukter
ON produkter.produkterid=kunderprodukter.produkterid

LEFT JOIN kunder
ON kunder.kunderid=kunderprodukter.kunderid

LEFT JOIN moduler
ON produkter.produkterid=moduler.produkterid

LEFT JOIN kundermoduler
ON moduler.modulerid=kundermoduler.modulerid
AND kunder.kunderid=kundermoduler.kunderid

");

$num = mysql_num_rows($res);


$array_produkter = array();
while($obj = mysql_fetch_array($res))
{
    $array_produkter[] = $obj;
}

-------------

Hvis man forsøgsvis vil se sit array, så kan man prøve med

// print $array_produkter[POS][KEY];
print $array_produkter[0][produkternavn];

Hvis man eksempelvis gerne vil filtrere i sit array, i mit tilfælde er det eksempelvis der hvor $array_produkter[POS][produkterid] == "1" (det kunne i princippet være noget andet - hvordan gør jeg det lettest muligt?)
Avatar billede avminarm Juniormester
27. januar 2003 - 14:06 #1
kan du ikke sætte en WHERE ind i forespørgslen ? - eller har jeg galt fat i det ?
Avatar billede truthorn Nybegynder
27. januar 2003 - 15:14 #2
Nej - det kan jeg desværre ikke rigtigt, fordi jeg får alle oplysninger op i ét hug, hvorefter der skal sorteres i det - ellers skal jeg lave flere forespørgsler og det er i den givne situation ikke så godt :-/
Avatar billede avminarm Juniormester
27. januar 2003 - 15:49 #3
hmm - hvad med "in_array" og så sætte det sammen med if noget i array gør dit og omvendt?
Avatar billede swaxi Nybegynder
27. januar 2003 - 15:57 #4
jeg ville nok gøre noget i den her stil :
<?php
function sort_array($a,$key,$value)
{
    $_a=array();
    foreach ($a as $entry) {
        if ($entry[$key]==$value)
            array_push($_a, $entry);
    }
    return $_a;
}

$array_produkter = sort_array($array_produkter,'produkterid','1');
?>
Avatar billede ksostack Nybegynder
27. januar 2003 - 16:03 #5
function filtrer($array_produkter, $kriterie) {
for($pos = 0; $pos < count($array_produkter[] - 1); $pos++) {
    if($array_produkter[$pos][produkterid] == $kriterie) {
    print $array_produkter[0][produkternavn] . "<br />\n";
    }
}
}
//ksostack
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