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 :)
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.