Avatar billede tanx Nybegynder
24. maj 2004 - 00:35 Der er 6 kommentarer og
1 løsning

Link til dynamisk side

Hejsa,

Jeg har flg. script som viser indholdet ved et bestemt databasekald. I dette tilfælde er der tre resultater, ved den her query.

Som det er nu er resultatet tre linier med alm. tekst, men hvis jeg gerne ville have de enkelte resultater på siden til at henvise til de enkelte poster med respektive sider, hvordan gør jeg det nemmest? Og så lige en sidste ting: kaldet, og dermed den nye side, skal optræde i en template.

<?

$content = "";
$username = "***";
$password = "***";
$hostname = "***";   
$dbh = mysql_connect($hostname, $username, $password)
    or die("Unable to connect to MySQL");
$selected = mysql_select_db("missions",$dbh)
    or die("Could not select first_test");
$result = mysql_query("SELECT mission.missionID, country1.country AS host, country2.country AS guest,

mission.cityserved, missiontype.missiontype FROM mission
LEFT JOIN country country1 ON country1.countryID = mission.host
LEFT JOIN country country2 ON country2.countryID = mission.guest
LEFT JOIN missiontype ON missiontype.missiontypeID = mission.missiontype
WHERE country1.country = 'denmark'
ORDER BY guest ASC");
while ($row = mysql_fetch_array($result)) {
$content .= "- ".$row{'guest'}." - ".$row{'cityserved'}.", ".$row{'missiontype'}.  "<br>";
}
$
mysql_close($dbh);

include "template.php" ;

?>

Håber det gav mening, og tak for hjælpen.
Avatar billede tanx Nybegynder
24. maj 2004 - 00:44 #1
$-tegnet før mysql_close, skal selvfølgelig ikke med
Avatar billede alleykat Nybegynder
24. maj 2004 - 05:27 #2
Hvordan ligger siderne?

Hvis vi f.eks. gik ud fra at du ville linke til sider med byer (og har sider med byerne liggende - navngivet det samme som i databasen, og med .html på navnet) ville du nok gøre det sådan hér:
$content .= "- ".$row{'guest'}." - <a href='".$row{'cityserved'}.".html' title='Link til ".$row{'cityserved'}."'>".$row{'cityserved'}."</a>, ".$row{'missiontype'}.  "<br>";

- hvilket 'bare' vil gøre cityserved til et link til en side af samme navn.

Jeg er ikke helt sikker på at det er hvad du mener..? Håber det var idéen. :)
Avatar billede tanx Nybegynder
24. maj 2004 - 12:23 #3
Det kan godt være jeg ikke var helt så præcis i mit spørgsmål ;)

Selve siderne skal linke til undersider der ikke ligger statisk på serveren, men bliver genereret udfra brugerens input. Siderne eksisterer altså ikke før den enkelte bruger laver en query (som i det her tilfælde er at trykke på linket, der ligeledes er blevet genereret ved en query). De tre førnævnte resulateter består alle af 'guest','cityserved' og 'missiontype', således at et link kunne se sådan her ud "Cuba, Copenhagen, Embassy". Når man så trykker på "Cuba, Copenhagen, Embassy" kommer resulatet så frem, med info om adresse, telefonnummer mv. på ambassaden. Resulatet ligger så samtidigt i en template (f.eks. template.php) - Jeg har intet kunne finde om det på nettet, så jeg er ret lost :(
Avatar billede dennismp Nybegynder
24. maj 2004 - 20:20 #4
Jeg er ikke sikker på at jeg har forstået hvad du vil.. Men prøver:
<?
$content = "";
$username = "***";
$password = "***";
$hostname = "***";   
$dbh = mysql_connect($hostname, $username, $password)
    or die("Unable to connect to MySQL");
$selected = mysql_select_db("missions",$dbh)
    or die("Could not select first_test");
$result = mysql_query("SELECT mission.missionID, country1.country AS host, country2.country AS guest,

mission.cityserved, missiontype.missiontype FROM mission
LEFT JOIN country country1 ON country1.countryID = mission.host
LEFT JOIN country country2 ON country2.countryID = mission.guest
LEFT JOIN missiontype ON missiontype.missiontypeID = mission.missiontype
WHERE country1.country = 'denmark'
ORDER BY guest ASC");
while ($row = mysql_fetch_array($result)) {
$content .= '- <a href="details.php?id='.$row['missionID'] . '"> .$row{'guest'}." - ".$row{'cityserved'}.", ".$row{'missiontype'}.  "</a><br>";
}

mysql_close($dbh);

include "template.php" ;
?>

nu linker denne fil til detail.php. Så lad os prøve at se hvordan den kan se ud:
<?php
$content = "";
$username = "***";
$password = "***";
$hostname = "***"; 
$id = intval($_GET['id']); 
$dbh = mysql_connect($hostname, $username, $password)
    or die("Unable to connect to MySQL");
$selected = mysql_select_db("missions",$dbh)
    or die("Could not select first_test");
$result = mysql_query("SELECT ... WHERE id = '$id' ... ");
while ($row = mysql_fetch_array($result)) {
  $content .=  ....
}

mysql_close($dbh);

include "template.php" ;
?>
Avatar billede tanx Nybegynder
26. maj 2004 - 02:23 #5
>dennismp

Tak for dit svar. Den første del virker upåklageligt. Jeg er dog stødt ind i lidt problemer med den anden. Jeg har erstattet ... efter SELECT med mit db kald, og .... efter $content .= , med de info den skal spytte ud. Men jeg er ikke sikker på hvad jeg skal skrive i ... efter '$id' - Hvis jeg fjerner dem og kører scriptet kommer flg. frem: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\apache\htdocs\web3\details.php on line 17
Avatar billede tanx Nybegynder
26. maj 2004 - 03:51 #6
> dennismp

Jeg har netop lige fundet ud det. Lille tanketorsk fra min side ;) - Men tak for din hjælp, opret lige et svar, så får du point :)
Avatar billede dennismp Nybegynder
27. maj 2004 - 12:26 #7
Cool :)
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