Jeg laver først en join-sætning, så jeg i ét sql-kald får alle de relevante informationer.....
I kaldet får jeg alle oplysninger på personen [personer], selve organisationerne [organisationer], samt tabellen, hvor jeg kan uddrage, hvor mange organisationer vedkommende person er medlem af [personer_organisationer].
Jeg får 2 resultater ud af forespørgslen, idet denne ENE person er medlem af 2 organisationer (bemærk WHERE-klausulen :)
Herefter laver jeg en while-løkke om mysql-statementen, hvor jeg danner et array
-------------------------
$res_personer = mysql_query(" SELECT * FROM personer
LEFT JOIN personer_organisationer ON personer.personerid=personer_organisationer.personer_personerid
LEFT JOIN organisationer ON organisationer.organisationerid=personer_organisationer.organisationer_organisationerid
WHERE personer.personerid='$id' AND personer.personerid=personer_organisationer.personer_personerid ");
Efterfølgende er jeg dog på herrens mark.....det jeg slutteligt skal bruge ting til er, at adskille de forskellige dele på en ordnetlig måde ud fra $array_test[] (der kommer nemlig flere joins på senere :-/).
Men hvis jeg eksempelvis ønsker at isolere organisationerne fra dette array, så jeg kan gøre noget selvstændig med disse - hvad gør jeg så ?
Jeg håber, at jeg har gjort mig forholdsvis forståelig - ellers kommenterer jeg gerne videre :)
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Mit problem er lidt (samtidig), at jeg med flere joins får flere resultater.....dvs. med 2 organisationer, så får jeg 2 resultater - hvis jeg joinede henover en ny "mange-mange" tabel, f.eks. hvilke byer befinder denne person sig i (og der eksempelvis er 3 byer), så får jeg 6 "resultatsæt" af min SQL-query (2*3 = 6).....jeg ved ikke, om dette er forkert, eller om man blot skal løse problematikken i array'et?
Hvis du skal bruge flere forskellige informationer, hvorfor så ikke bare trække dem ud vha. sql når du alligevel har forbindelsen åben - tror ikke der er nævneværdig forskel på det og alle de array-operationer du kommer til at udføre på posterne fra det ene resultatsæt.
Så ville jeg vælge og droppe * i min select og så klar definere de data jeg trækker ud. Da jeg ikke er så stærk i objekter, ville jeg benytte f.eks. "mysql_fetch_assoc" så mine data bliver gemt i et associativt array. Dernæst kan jeg udtage de data jeg ønsker ved at kalden dem i en løkke f.eks. med $array_test[$i]['organisationer'].
næ, egentlig ikke. Du kan prøve at se noget af denne kode ----------------- $query = "SELECT doc_name, doc_title FROM document WHERE doc_id='$doc_id'"; $result = dbquery($query); $numresults = mysql_num_rows($result); if ($numresults!=1) {die ("could not get docname/doctitle from database");} $data = mysql_fetch_assoc($result); $filename = $data['doc_name']; $filetitle = $data['doc_title']; ---------------- Med mysql_fetch_assoc får man et associativt array, hvor man bruger mysql navnet til at hente sin sin variable i arrayet. Jeg synes, den er ok at bruge. Bruger også mysql_fetch_array, som giver nogenlunde det samme. eks ---------------------- $result = dbquery($query); //-- henter data i db $num_results = mysql_num_rows($result); $k=0; //Bruges til indsætning i if sætning herunder for ($i=0; $i<$num_results; $i++) { $row = mysql_fetch_array($result); $row['titel'] = htmlspecialchars(stripslashes($row[titel])); $row['description'] = htmlspecialchars(stripslashes($row[description])); $row['link_id'] = stripslashes(($row[link_id])); ... ... ...
Synes godt om
Ny brugerNybegynder
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.