Avatar billede 4u2x Nybegynder
20. maj 2006 - 15:25 Der er 31 kommentarer og
1 løsning

skal have ID til at følge med mit array

jeg har fra mysql udskrevet nogle data hvor jeg får ID og Navn .

min kode sorterer mine data så de er alfabetisk sat op, men jeg mangler at få min ID værdi med.

En som ved hvad man gøre??

KODEN --->>


$navn[] = 'Nikolaj';
$navn[] = 'Brian';
$navn[] = 'Lars';
$navn[] = 'Jens';

sort($navn);

reset($navn);
while (list(, $value) = each($navn)) {
  echo "Value: $value<br />\n";
}
Avatar billede michael_stim Ekspert
20. maj 2006 - 15:29 #1
Brug foreach()
www.php.net/foreach
Avatar billede michael_stim Ekspert
20. maj 2006 - 15:30 #2
Går ud fra at det er key du vil have fat i
Avatar billede michael_stim Ekspert
20. maj 2006 - 15:31 #3
foreach ($navn as $key => $value) {
echo "Id:". $key ." Navn: ".$value;
}
Avatar billede 4u2x Nybegynder
20. maj 2006 - 15:37 #4
nu henter den array-id

$navn[] = $fornavn;  --- gir --->  $navn[] = 'Nikolaj';

udover $fornavn har jeg $navnid  som jeg gerne vil have ind i array'et ..

med?


fx
$navn[] = $fornavn + $navnid;

altså $navnid skal med...
Avatar billede michael_stim Ekspert
20. maj 2006 - 15:41 #5
Men jeg ved jo ikke hvor du gemmer dit id.

Når du henter fra MySQL:
$navn[$row['id']] = $row['navn'];
Avatar billede 4u2x Nybegynder
20. maj 2006 - 15:52 #6
$navn[$navnid] = $fornavn;

sådan her, er med på ideen, men flere $navn[]  har samme ID..  så ved at sætte $navnid ind i []  så kommer ikke alle navne frem (dem som deler samme ID)
Avatar billede michael_stim Ekspert
20. maj 2006 - 15:55 #7
Så skal du over i noget multidimissionelt:
$navn[][$navnid] = $fornavn;
Avatar billede olebole Juniormester
20. maj 2006 - 15:56 #8
<ole>

ID = identifikation

Flere ting kan ikke dele ID, så der er en arkitektonisk fejl i din applikation  :)

/mvh
</bole>
Avatar billede 4u2x Nybegynder
20. maj 2006 - 16:17 #9
stim >

ja.. tror jeg også... men hvordan får jeg udskrevet det i foreach sætningen så?
Avatar billede michael_stim Ekspert
20. maj 2006 - 16:44 #10
Med 2 foreach ;o)
Avatar billede michael_stim Ekspert
20. maj 2006 - 16:46 #11
Det kunne väre gruppeID ;o)
Avatar billede michael_stim Ekspert
20. maj 2006 - 16:47 #12
Men eftersom variabelen hedder $navnid, er det nok ikke det...
Avatar billede olebole Juniormester
20. maj 2006 - 16:52 #13
"Så drejer hjulet, mine damer og herrer - og vi gør opmærksom på, at næste spørgsmål udløser en bamse fra nederste hylde"  ;D

Lidt kode ville nok være en meget god måde at få quiz'en kortet en anelse  =)
Avatar billede 4u2x Nybegynder
20. maj 2006 - 17:41 #14
har ændret det til sådan her.. men er lidt væk mht hvordan jeg nu for indholdet vist, for pt viser den kun array efter at jeg har tilføjet [$id]  på $navn[]

$navn[][$id] = $kategori;

foreach ($navn as $key => $value) {
echo '<a href="navn.php?id='.$nid.'">'.$value.'</a>';
}
Avatar billede michael_stim Ekspert
20. maj 2006 - 17:44 #15
Taget fra linket jeg skrev tidligere:

/* foreach example 4: multi-dimensional arrays */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
  foreach ($v1 as $v2) {
      echo "$v2\n";
  }
}
Avatar billede michael_stim Ekspert
20. maj 2006 - 17:55 #16
Så din skal se ud noget á la dette:
$navn[$id][] = $kategori;

foreach ($navn as $value) {
foreach ($value as $key => $value2) {
echo "<a href=\"navn.php?id=\"".$key."\">".$value2."</a>";
}
}
Avatar billede 4u2x Nybegynder
20. maj 2006 - 17:58 #17
value2 er fin, men key er lig null.. så der må være en fejl
Avatar billede michael_stim Ekspert
20. maj 2006 - 18:01 #18
Hold nu op...
Kom med noget kode...
Hvad er $kategori????
Som olebole skrev:
"Så drejer hjulet, mine damer og herrer - og vi gør opmærksom på, at næste spørgsmål udløser en bamse fra nederste hylde"  ;D

Lidt kode ville nok være en meget god måde at få quiz'en kortet en anelse  =)
Avatar billede 4u2x Nybegynder
20. maj 2006 - 18:09 #19
hov.. skrivefejl... havde kommet til at skrive kategori i stedet.. det er stadig

$navn[$id][] = $fornavn;

min fejl!! :/

men der kommer stadig ikke noget i $key..


den samlede er lige nu:

$navn = array();
$navn[$id][] = $fornavn;
$navn[$id][] = $fornavn;
$navn[$id][] = $fornavn;

sort($navn);
reset($navn);
Avatar billede 4u2x Nybegynder
20. maj 2006 - 18:09 #20
foreach ($navn as $value) {
foreach ($value as $key => $value2) {
echo "<a href=\"navn.php?id=\"".$value."\">".$value2."</a><br>";
}
}
Avatar billede michael_stim Ekspert
20. maj 2006 - 18:29 #21
Og hvis du ändre $value til $key? I din sti.
Avatar billede michael_stim Ekspert
20. maj 2006 - 18:32 #22
foreach ($navn as $key => $value) {
foreach ($value as $value2) {
echo "<a href=\"navn.php?id=\"".$key."\">".$value2."</a><br>";
}
}
Avatar billede michael_stim Ekspert
20. maj 2006 - 18:39 #23
Eller:
$navn[][$id] = $fornavn;

foreach ($navn as $value) {
foreach ($value as $key => $value2) {
echo "<a href=\"navn.php?id=\"".$key."\">".$value2."</a><br>";
}
}

Giver samme resultat men er mere struktureret.
Avatar billede 4u2x Nybegynder
20. maj 2006 - 18:55 #24
$key  er tilsyneladende tom.

den henter vist ikke [$id]  fra  $navn[][$id]
Avatar billede michael_stim Ekspert
20. maj 2006 - 19:01 #25
pröv at udskrive din array:
echo"<pre>";
print_r($navn);
echo"</pre>";
Avatar billede 4u2x Nybegynder
20. maj 2006 - 19:08 #26
Avatar billede michael_stim Ekspert
20. maj 2006 - 19:14 #27
echo "<a href=\"navn.php?id=".$key."\">".$value2."</a><br>";
Avatar billede michael_stim Ekspert
20. maj 2006 - 19:16 #28
Mig der havde skrevet forkert i stien :(
Avatar billede 4u2x Nybegynder
20. maj 2006 - 19:37 #29
juhu :)  nu er dét plads, men den har mistet sin alfabetiske rækkefølge..


<?

$navn[][1] = 'Nikolaj';
$navn[][1] = 'Niholas';
$navn[][2] = 'Bo';
$navn[][2] = 'Brian';
$navn[][3] = 'Lars';
$navn[][4] = 'Jens';

sort($navn);
reset($navn);

foreach ($navn as $value) {
foreach ($value as $key => $value2) {
echo "<a href=\"navn.php?id=".$key."\">".$value2."</a><br>";
}
}

?>

sort()  må åbenbart være påvirket af at der er sat [$id] på array'et. Igen, er lidt i syv sind om hvordan det kan løses.. gir flere point :)
Avatar billede michael_stim Ekspert
20. maj 2006 - 21:20 #30
function natsort2d(&$aryInput) {
  $aryTemp = $aryOut = array();
  foreach ($aryInput as $key=>$value) {
  reset($value);
  $aryTemp[$key]=current($value);
  }
  natsort($aryTemp);
  foreach ($aryTemp as $key=>$value) {
  $aryOut[$key] = $aryInput[$key];
  }
  $aryInput = $aryOut;
}

natsort2d($navn);

foreach ($navn as $value) {
    foreach ($value as $key => $value2) {
        echo "<a href=\"navn.php?id=".$key."\">".$value2."</a><br>";
    }
}
Avatar billede 4u2x Nybegynder
20. maj 2006 - 22:35 #31
nice.. stim du er en guttermand :)

lig et svar.. så smider jeg li nogle ekstra point i, imens
Avatar billede michael_stim Ekspert
21. maj 2006 - 00:03 #32
De point der var givet i starten, er nok til mig ;o)
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