Avatar billede tanx Nybegynder
01. juli 2004 - 01:17 Der er 13 kommentarer og
1 løsning

resultat baseret på tidligere mysql query

Jeg har et db-kald der ser således ud:

$result = mysql_query("SELECT DISTINCT country1.country AS host,
mission.cityserved FROM mission LEFT JOIN country country1 ON country1.countryID = mission.host
WHERE country1.country = '$_GET[id]'
ORDER BY cityserved ASC");
while ($row = mysql_fetch_array($result)) {
$content .= '- <a href="list2.php?id='.$row['host'] . '#'.$row['cityserved'] .'">'

.$row{'cityserved'}.  "</a><br>";

Herefter, på samme side, vil jeg gerne lave et db-kald der er baseret på resultatet af denne query, dvs. " .$row['cityserved'] "

Hvordan får jeg "ført resultatet fra den første query ned WHERE-clausen i den anden query?

Håber der er nogen der kan hjælpe :)
Avatar billede jaw Nybegynder
01. juli 2004 - 01:27 #1
Den fangede jeg ikke helt :/

SELECT blahblah WHERE felt = '" . $row['cityserved'] . "'");

?
Avatar billede tanx Nybegynder
01. juli 2004 - 01:43 #2
Selve WHERE-clausen i query nr. 2 skal simpelthen hives ud af resultatet fra den første query - Resultatet kan f.eks. være "odense" og dette resultat skal derefter sættes ind i "WHERE mission.cityserved = et-eller-andet fra den tidligere query der i dette eksempel skal være odense".

query nr 2:

$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 mission.cityserved = ///hvad skal jeg skrive her?///
ORDER BY guest ASC");
while ($row = mysql_fetch_array($result)) {
$cities .= '&nbsp;<a href="mission.php?id='.$row['missionID'] . '">' .$row{'guest'}." - ".$row{'cityserved'}.", ".$row{'missiontype'}.  "</a><br>";
}


Jeg håber det gav mening :)
Avatar billede jaw Nybegynder
01. juli 2004 - 01:47 #3
WHERE mission.cityserved = '" . $row['cityserved'] . "'

tror altså det vil virke
Avatar billede tanx Nybegynder
01. juli 2004 - 02:00 #4
den havde jeg også prøvet, men den returnerer ikke noget - det ville nemt kunne lade sig gøre, hvis resulatatet af query nr. 2 kom frem på en ny side og var baseret på et id ( $_GET[id] ), som i eksemplet således kunne hedde "odense" - men jeg lurede på om der fandtes en kommando hvor det kunne gøres på samme side, dvs. hvor query nr. 2 er baseret på query nr. 1.
Avatar billede jaw Nybegynder
01. juli 2004 - 02:04 #5
Hmmm, jeg forstår ikke helt. For i din 1.query, vil du da få en liste ud med byer: Århus, København, Odense etc. ikke? Hvordan skal den så vide, at det er lige præcis Odense du vil bruge i din 2. query?
Avatar billede tanx Nybegynder
01. juli 2004 - 02:20 #6
Ved

$content .= '- <a href="list2.php?id='.$row['host'] . '#'.$row['cityserved'] .'">'
.$row{'cityserved'}.  "</a><br>";

bliver der f.eks returneret flg. liste:

- Aarhus      <a href="list2.php?id=Denmark#Aarhus">Aarhus</a>
- Copenhagen  <a href="list2.php?id=Denmark#Aarhus">Copenhagen</a>
- Odense      <a href="list2.php?id=Denmark#Aarhus">Odense</a>

Disse 3 byer henviser alle til punkter længere nede på siden som allerede er blevet genereret med nr 2 query. Man vælger så punkt Odense og bliver herefter, på samme side (#odense), ført ned til dette punkt, hvor der så er en liste over kontorer i byen. - Selve referenten der definerer, at det netop er oversigten over odense der ønskes vist, ligger i selve den url (som beskrevet ovenfor) der trykkes på.

WHERE mission.cityserved = ***, hvor *** er resultatet af de i query 1 genererede valgmuligheder.

Query 2 er simpelthen en query der er baseret på resultatet af Query 1.
Avatar billede jaw Nybegynder
01. juli 2004 - 02:32 #7
Jeg forstår den stadig ikke, sry :( Må være for træt, eller for dum... Det jeg ikke forstår er, at du siger at det ER blevet genereret af query 2, men at du stadig vil lave en query 2? Det er jo samme query 2 gange???

Men, hvis jeg forstår dig, kunne du så ikke i den $content tilføje &by=$row['cityserved'] ? Når du så kommer ned på siden under f.eks. #odense så vil du kunne bruge $_GET['by'] i en query...

Hvis det er helt misforstået så gir' jeg fortabt og må lade håndklædet gå videre...
Avatar billede tanx Nybegynder
01. juli 2004 - 02:39 #8
det er nok mig der ikke er helt skarp til at formulere mig ;) - anyways, det lyder fornuftigt dit forslag, men hvor ville &by=$row['cityserved'] skulle sættes ind henne?
Avatar billede jaw Nybegynder
01. juli 2004 - 02:42 #9
Det ville jeg nok gøre her:
$content .= '- <a href="list2.php?id='.$row['host'] . '&by='.$row['cityserved']. '#'.$row['cityserved'] .'">'
.$row{'cityserved'}.  "</a><br>";

så vil du jo have både $_GET['id'] og $_GET['by'] :)
Avatar billede tanx Nybegynder
01. juli 2004 - 02:48 #10
Tusinde tak - jeg vil lige sidde og lege lidt med det, men så vender jeg tilbage med om jeg har kunnet finde ud af det eller ej :) - jeg skal ikke bruge mere af din tid i nat - igen, tusinde tak for hjælpen - jeg kommer lige tilbage med opfølgning på det...
Avatar billede jaw Nybegynder
01. juli 2004 - 02:49 #11
Hehe, det er bare i orden :) Jeg vil også hoppe i køjen, men kan jo evaluere i morgen :D

Good luck og godnat :)
Avatar billede tanx Nybegynder
01. juli 2004 - 02:52 #12
det er sandt :) godnat
Avatar billede tanx Nybegynder
14. juli 2004 - 09:14 #13
>Jaw

Nu fik jeg endelig løst det ad anden vej dog, men du skal have tak for din tid og hjælp. Opret lige et spørgsmål, så får du point :)
Avatar billede jaw Nybegynder
14. juli 2004 - 10:53 #14
Det var da så lidt :)
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