Avatar billede sunlock Nybegynder
05. oktober 2004 - 08:29 Der er 8 kommentarer og
1 løsning

MySQL-join, som ikke joiner?

Jeg har følgende join (man behøver ikke tænke på hvad den joiner på):
-----
SELECT bp.BPC_id, bp.BP_id, bp.C1_id, id1.name, bp.O1_id, id2.name, bp.Rel_id, id3.name, bp.C2_id, id4.name, bp.Value, id5.name
  FROM bp, id id1, id id2, id id3, id id4, id id5
  WHERE bp.C1_id = id1.id
  AND bp.O1_id = id2.id
  AND bp.Rel_id = id3.id
  AND bp.C2_id = id4.id
  AND bp.Value = id5.id
-----

Af en eller anden grund bliver _alle_ idx.id ens når jeg skriver den direkte i PHP, men kopier jeg den ind i PHPmyAdmin (2.6.x, ikke 2.2.3 (virker ikke der heller)) eller en konsol til MySQL joiner den korrekt.

Nogen som ved om nyere versioner af PHPmyAdmin joiner anderledes i forhold til PHP man selv laver. Og hvorfor bliver det 2 forskellige resultater når man bruger PHP (fyre SQL'en direkte af) i forhold til når man bruger en konsol...
Avatar billede erikjacobsen Ekspert
05. oktober 2004 - 08:46 #1
Hvordan aflæser du felterne i PHP? Du skal nok omdøbe felterne, fx
  id1.name as id1name
og så
  $row['id1name']
Avatar billede sunlock Nybegynder
05. oktober 2004 - 09:00 #2
Her får du lige min php (har siddet og gloet mig blind på det her....).
-----
$sql = 'SELECT bp.BPC_id, bp.BP_id, bp.C1_id, id1.name, bp.O1_id, id2.name, bp.Rel_id, id3.name, bp.C2_id, id4.name, bp.Value, id5.name'       
        . ' FROM bp, id id1, id id2, id id3, id id4, id id5'                                                                                   
        . ' WHERE bp.C1_id = id1.id'                                                                                                           
        . ' AND bp.O1_id = id2.id'                                                                                                             
        . ' AND bp.Rel_id = id3.id'                                                                                                             
        . ' AND bp.C2_id = id4.id'                                                                                                             
        . ' AND bp.Value = id5.id'                                                                                                             
. ' LIMIT 0 , 100';                                                                                                                             
$post = mysql_db_query($database,$sql) or die(mysql_error());                                                                                   
                                                                                                                                               
                                                                                                                                               
echo "SQL-statement:<br><br>".$sql."<br><br>";                                                                                                 
                                                                                                                                               
                                                                                                                                               
for($i = 0; $i < mysql_numrows($post); $i++){                                                                                                   
  $query = mysql_fetch_array($post);                                                                                                           
                                                                                                                                               
  echo "<tr><td>".$query[BPC_id]." ".$query[BP_id]." ".$query[C1_id]." ".$query[name]." ".$query[O1_id]." ".$query[name]." ".$query[Rel_id]." ".\
$query[name]." ".$query[C2_id]." ".$query[name]." ".$query[Value]." ".$query[name]."</td></tr>";                                               
                                                                                                                                               
}
-----

Jeg er ikke i tvivl om at det er $query[name] som bliver ens, men hvad skal man skrive i stedet for?
Avatar billede hmortensen Nybegynder
05. oktober 2004 - 09:15 #3
mysql_numrows
til
mysql_num_rows

du sætter bare aliases som erik siger.
Avatar billede sunlock Nybegynder
05. oktober 2004 - 09:42 #4
Jeg takker mange gange - nu virker det :-)
Kom med svar, hvis du vil have points erikjacobsen
Avatar billede erikjacobsen Ekspert
05. oktober 2004 - 09:44 #5
Nej tak, jeg samler slet ikke på point.
Avatar billede sunlock Nybegynder
05. oktober 2004 - 10:37 #6
Hmm, okay - skal jeg så selv tage dem eller lade spm. stå åben?
Avatar billede hmortensen Nybegynder
05. oktober 2004 - 10:39 #7
Hvis du fik løst dit problem, så ta dem selv
Avatar billede erikjacobsen Ekspert
05. oktober 2004 - 10:41 #8
Ja, svar selv, accepter eget svar.
Avatar billede sunlock Nybegynder
06. oktober 2004 - 07:55 #9
Okay - så gør jeg det.

Og ja, fik det til at virke - mange tak for hjælpen.
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