Avatar billede spidr Nybegynder
05. januar 2006 - 15:46 Der er 15 kommentarer og
1 løsning

Hente fra database med information fra anden database.

Hvordan henter jeg noget fra en database med informationer jeg henter fra en anden? Lyder nok lidt kringlet, men har prøvet at  gøre det så enkelt som muligt.

hvis jeg nu med følgene kode henter nogle tal fra en database, og den så skal gå ind og hente navnene på de tal fra en anden database, hvordan gør man så lige det?

database 1;
en masse informationer + id til hver.

database 2;
1 = jens
2 = knud
3 = børge
4 = ander

her hvor jeg så skriver database 1 ud, vil jeg gerne have den går ind og henter navnet på hver id i database 2.

Således at hvis den ville skrive 3 ud som id, så skriver den børge istedet.

Håber jeg fik forklaret det nogelunde..




$query = mysql_query("SELECT id,header,UserId,LastWriter,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM LovehinaForum2 ORDER BY id DESC LIMIT $offset,$range") or die(mysql_error());

    while($row = mysql_fetch_assoc($query)) {
        echo '<tr><td width="30%">'.$row['UserId'].'</td></tr>';
    }

Der hvor der står '.$row['UserId'].' der skal så stå navnet som den henter fra den anden database istedet :S
Avatar billede webstuff Nybegynder
05. januar 2006 - 15:52 #1
$hent1 = mysql_query("SELECT * FROM databasemedtal ORDER BY id DESC") pr die(mysql_error());
while($vis1 = mysql_fetch_array($hent1)){
$hent2 = mysql_query("SELECT * FROM databasemednavne WHERE id = '$vis1[id]'") or die(mysql_error());
$vis2 = mysql_fetch_array($hent2);
echo $vis2[navn];
}

Hvis det var noget i den retning du mente :-)
Avatar billede barklund Nybegynder
05. januar 2006 - 15:55 #2
Du mener vel tabeller? Eller mener du to forskellige databaser? Hvis det er tabeller, kan det gøres med join, hvis det er databaser, skal du sandsynligvis have forskellige forbindelser til det.
Avatar billede udvikler Nybegynder
05. januar 2006 - 15:55 #3
Det er ikke muligt webstuff, man skal nemlig lukke den ene før man begynder på den anden :)

prøv med:

$q = mysql_query("
SELECT artikler.*, brugere.brugernavn FROM artikler
LEFT JOIN brugere ON artikler.forfatter = brugere.brugernavn
WHERE brugere.id = ".$_GET['id']."
ORDER BY artikler.dato DESC
");
while($row = mysql_fetch_assoc($q)) {
Avatar billede udvikler Nybegynder
05. januar 2006 - 15:56 #4
du skal så selvfølgelig ændre på felterne :)

dette er taget fra min egen kode
Avatar billede spidr Nybegynder
05. januar 2006 - 15:58 #5
ja mante tabeller. Gik vidst lidt hurtigt.

Jeg prøver mig lige frem med det i har skrevet.
Avatar billede webstuff Nybegynder
05. januar 2006 - 16:00 #6
-aco-:
Jeg mener selv jeg bruger samme princip i en af mine egne koder :-)
Avatar billede udvikler Nybegynder
05. januar 2006 - 16:02 #7
Når ja undskyld var lidt for hurtig, det er kun hvis man bruger 2 while løkker, så går det galt.
Avatar billede spidr Nybegynder
05. januar 2006 - 16:08 #8
ja, har lige prøvet med webstuffs, den ser ud til at virke ganske udemærket :) Så siger jeg mange tak :)
Avatar billede webstuff Nybegynder
05. januar 2006 - 16:21 #9
I orden -aco- :-)

spidr: Går ud fra det betyder jeg skal lægge et svar ?
Avatar billede barklund Nybegynder
05. januar 2006 - 16:28 #10
Altså, hvis det bare er to tabeller, så brug dog en join?

$hent = mysql_query("
SELECT tabelmednavne.navn
FROM tabelmedtal
  INNER JOIN tabelmednavne ON tabelmedtal.id = tabelmednavne.id
ORDER BY id DESC
") or die("SQLFejl: ".mysql_error());

while($vis = mysql_fetch_array($hent)){
  printf("%s<br>",$vis["navn"]);
}

Det er da lidt smartere :)

--
Morten Barklund
Avatar billede spidr Nybegynder
05. januar 2006 - 16:49 #11
Jeg kan ikke se hvorfor det er så meget smartere? det andet er da nemmere at finde rundt i?
og jeg skal også bruge mere fra den tabel end bare lige det tal der, jeg skal bruge ret meget fra begge tabeller :)
Avatar billede barklund Nybegynder
05. januar 2006 - 16:53 #12
Det ene lavet én forespørgsel i databasen, det andet laver (antal rækker + 1) - gæt selv, hvad der går hurtigst, hvad der er mest optimalt, og hvad "man" bruger, når man laver større applikationer. Skal du bruge mere, så trækker du blot flere attributter ud - du angiver præcis de attributter, som du skal bruge, efter SELECT. Du skal aldrig skrive *, men kun de attributter, som du har brug for. Det andet er spild af ram, ressourcer og meget andet.

Man må godt lave det ordentligt, selvom det bare er en lille ting. :)

--
Morten Barklund
Avatar billede spidr Nybegynder
05. januar 2006 - 18:11 #13
ja, det kan jeg godt se, burde jeg jo nok også gøre så, efter som det nok heller ikke vil blive betegner som en lille ting det det skal bruges til ;)
Avatar billede webstuff Nybegynder
05. januar 2006 - 18:52 #14
skal jeg oprette et spørgsmål så barklund kan få pointene i stedet??
Avatar billede barklund Nybegynder
05. januar 2006 - 18:56 #15
Nænej, behold dem bare :)
Avatar billede webstuff Nybegynder
05. januar 2006 - 19:08 #16
okay.. tak :-)
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