Avatar billede xeox Nybegynder
25. april 2005 - 09:36 Der er 15 kommentarer og
1 løsning

Hjælp til hentning af flere id'er?

Hej eksperter.

Håber i lige kan hjælpe mig her:

hvordan får jeg denne kode til at hente alle id'er i min db ?
<?php
require "db.php";
$result = mysql_query("SELECT email, navn FROM kontakt");
$personer = mysql_fetch_array($result, MYSQL_ASSOC);
mysql_free_result($result);
?>
Avatar billede barklund Nybegynder
25. april 2005 - 09:44 #1
Ved at loope over dem alle:

<?php
require "db.php";
$result = mysql_query("SELECT email, navn FROM kontakt");
$personer = array();
while ($person = mysql_fetch_assoc($result, MYSQL_ASSOC)) {
    $personer[] = $person;
}
mysql_free_result($result);
?>

--
Morten Barklund
Avatar billede xeox Nybegynder
25. april 2005 - 09:46 #2
okay, men så kommer den med fejl:

Warning: Wrong parameter count for mysql_fetch_assoc()

det er fordi jeg require den fil et andet sted
Avatar billede barklund Nybegynder
25. april 2005 - 09:48 #3
Hov, jeg blandede også lidt sammen. Fjern andet argument til mysql_fetch_assoc:

<?php
require "db.php";
$result = mysql_query("SELECT email, navn FROM kontakt");
$personer = array();
while ($person = mysql_fetch_assoc($result)) {
    $personer[] = $person;
}
mysql_free_result($result);
?>

--
Morten Barklund
Avatar billede xeox Nybegynder
25. april 2005 - 09:50 #4
Ja okay, nu henter den i hvert fald lige så mange gange at der er et id.. men i stedet for at skrive emailen eller navnet fra personen i min DB skriver den bare Array
Avatar billede barklund Nybegynder
25. april 2005 - 09:53 #5
$personer er jo nu et array af arrays. Altså hver række er et array med to elementer. Du kan udskrive det som:

<?php
require "db.php";
$result = mysql_query("SELECT email, navn FROM kontakt");
$personer = array();
while ($person = mysql_fetch_assoc($result)) {
    $personer[] = $person;
}
mysql_free_result($result);
...
foreach ($personer as $person) {
    printf ("%s <%s><br />", $person['name'], $person['email']);
}
?>
Avatar billede xeox Nybegynder
25. april 2005 - 09:58 #6
ja .. for jeg skal have dem udskrevet sådan her:

<select input type="select" name="person">
<?php foreach($personer as $email => $navn ) {
print '<option value="'.$email.'">'.$navn.'</option>';
} ?>
</select>
Avatar billede barklund Nybegynder
25. april 2005 - 10:01 #7
Hvis du synes - så skal array'et jo laves på den rigtige måde:

while ($person = mysql_fetch_assoc($result)) {
    $personer[$person['email']] = $person['name'];
}

Men jeg ved nu ikke lige hvorfor du synes det _skal_ udskrives sådan - det må man vel selv om :)

--
Morten Barklund
Avatar billede xeox Nybegynder
25. april 2005 - 10:08 #8
det er mig ligegyldigt hvordan det bliver udskrevet hehe, det skal bare være i en dropdown menu på den anden side så man kan vælge hvem man gerne vil skrive til i min mail form :D
Avatar billede barklund Nybegynder
25. april 2005 - 10:11 #9
Jamen så kunne du jo bare have ændret dit script. Med ovenstående skulle du have rigeligt muligheder :)
Avatar billede xeox Nybegynder
25. april 2005 - 10:15 #10
lige nu der henter den fint navnet i id=1 og i id=5 .. dvs, det første og sidste id.. men ikke fra 2,3,4 ?
Avatar billede barklund Nybegynder
25. april 2005 - 10:16 #11
Okay? Er du sikker på, at alle har en email og at ingen har den samme email?
Avatar billede xeox Nybegynder
25. april 2005 - 10:49 #12
Jo da.. det er jo lige det som var fejlen ;).. der var en jeg bare havde kopiret i db :D
Avatar billede barklund Nybegynder
25. april 2005 - 10:52 #13
Så det virker nu?

Du har jo valgt at have dem, så du har email som nøgle i et array - og så kan du kun have én af hver email.
Avatar billede xeox Nybegynder
25. april 2005 - 10:54 #14
Nemlig, og det er jo os det som der skal være :D.. det virker vist godt ja ;). Jeg siger mange tak!
Avatar billede xeox Nybegynder
25. april 2005 - 10:54 #15
-lukket-
Avatar billede barklund Nybegynder
25. april 2005 - 11:00 #16
Tark for points :)
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