[php&mysql] assoc wil niet, nummer wel

Pagina: 1
Acties:

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 20-08 08:46
Met een query probeer ik alle projecten te selecteren waar de user toegang tot heeft:
SQL:
1
2
3
4
5
"SELECT users.naam, project.naam 
FROM users, project, projectleden 
WHERE users.naam='".$username."' 
AND projectleden.user=users.id 
AND projectleden.project=project.id

(deze werkt)

vervolgens laat ik hem fetchen:
PHP:
1
while ($result=mysql_fetch_array($query, MYSQL_BOTH))


en als ik vervolgens waarden wil uitlezen kan ik geen veld namen gebruiken maar alleen veld nummers.
$result[users.naam] werkt niet maar $result[0] wel.
Dit wil ik dus niet omdat er wel eens wat in queries kan veranderen. Wat doe ik hier fout, of is dit gewoon weg niet mogelijk.

[ Voor 8% gewijzigd door cybermans op 23-05-2003 11:18 . Reden: ff sql minder aso breed gemaakt ]

Strava | Runkeeper | Endomondo (mijn leikr uploads)


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

ze hebben beide de naam 'naam' wellicht dat het daardoor een beetje in de weg zit?

doe es:
select users.naam as user_naam, project.naam as project_naam ...

en benader in je array $result['user_naam'] ?

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 21-08 14:31

DizzyWeb

Ondertiteld

Euhm, sowieso mis ik mysql_query() hierin...
PHP:
1
2
3
4
5
6
$result = mysql_query($query);

while($array = mysql_fetch_array($query, MYSQL_BOTH))
{
    // bla
}


Maar probeer de beide namen eens een andere naam te geven (users.naam as username, project.naam as projectnaam), maybe dat dat helpt...

Maar dat staat hierboven al.............

[ Voor 7% gewijzigd door DizzyWeb op 23-05-2003 11:19 . Reden: Zucht, ACM is me voor :P ]


  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 20-08 08:46
@ACM Thnx dat werkt, maar dan nog een vraag hoe doe ik het als ik ipv veldnamen gewoon * neerzet

@Dizzy die mysql_query staat er wel maar vond het niet echt nodig die te posten want daar ligt het probleem niet

Strava | Runkeeper | Endomondo (mijn leikr uploads)


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

cybermans schreef op 23 May 2003 @ 11:21:
@ACM Thnx dat werkt, maar dan nog een vraag hoe doe ik het als ik ipv veldnamen gewoon * neerzet
ik denk dat 'niet' het beste antwoord is. Helaas.

Sowieso is het niet verstandig met * te werken om dat soort redenen, je weet dan nooit met welke 'naam' je werkt :)

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Maar kun je ook niet iets doen als

SELECT *, project.naam as projectnaam, users.naam as usersnaam FROM .... ?

Dat je dus wel alles selecteerd maar alleen die velden hernoemt. Is dat mogelijk?

[ Voor 6% gewijzigd door Michali op 23-05-2003 11:35 ]

Noushka's Magnificent Dream | Unity


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

ja, uiteraard :)

Je hernoemt ze overigens niet dan, je selecteert ze een tweede keer onder een andere naam.
Je kan ook nog kijken of php ze beschikbaar maakt als 'project.naam' ipv 'naam' middels print_r

[ Voor 31% gewijzigd door ACM op 23-05-2003 11:37 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Het is imho uberhaupt wel handig jezelf aan te leren met aliassen te werken als je met JOIN's werkt.

Al weet ik errlijk gezegd niet of je in je resultset zoiets kunt gebruiken (meestal niet):

$row['project.naam']

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 07-07 11:51
Bosmonster schreef op 23 mei 2003 @ 11:38:
Het is imho uberhaupt wel handig jezelf aan te leren met aliassen te werken als je met JOIN's werkt.
Of kolommen als 'naam' niet te gebruiken. Aangezien veel entiteiten wel een 'naam' of 'omschrijving' hebben, is het niet handiger om dan 'entiteitnaam' te gebruiken als kolomnaam? Dat scheelt weer aliassen maken.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.

Pagina: 1