Avatar billede menthos Nybegynder
25. maj 2004 - 01:59 Der er 18 kommentarer og
1 løsning

tvetydig mysql_query?

$query = mysql_query("SELECT * FROM `favorit`,`dating_users`  WHERE `brugernavn` = '$id'") or die(mysql_error());

hvad er der fejl i den? den bliver ved med at skrive:
Column: 'brugernavn' in where clause is ambiguous
Avatar billede rasmusbg Nybegynder
25. maj 2004 - 02:01 #1
Har du et `brugernavn`-felt i begge tabeller?
Avatar billede menthos Nybegynder
25. maj 2004 - 02:05 #2
ja..
Avatar billede coderdk Praktikant
25. maj 2004 - 02:05 #3
Normalt ville sådan en query se sådan ud:

SELECT f.*, d.* FROM favorit f INNER JOIN dating_users d ON f.brugerid = d.brugerid

Så binder man de to tabeller sammen om et bestemt fælles felt.
Din query (som jeg antager fejler med noget i stil med "brugernavn is ambiguous") river alt fra begge tabeller sådan tilfældigt blandet sammen, tror jeg ;)
Avatar billede coderdk Praktikant
25. maj 2004 - 02:06 #4
Hvis "brugernavn" er den som de skal bindes sammen med kan du bruge min, og ændre brugerid til brugernavn begge steder...
Avatar billede rasmusbg Nybegynder
25. maj 2004 - 02:07 #5
I så fald skal du angive hvilket brugernavn, der skal sammenlignes, ellers kan den stakkels database ikke finde ud af det ;o)
Avatar billede coderdk Praktikant
25. maj 2004 - 02:09 #6
Hmm ja, er ikke sikker på hvad du vil med din query...
Den kunne måske se sådan ud:

SELECT f.*, d.* FROM favorit f INNER JOIN dating_users d ON f.brugernavn = d.brugernavn AND f.brugernavn = '$id'
Avatar billede menthos Nybegynder
25. maj 2004 - 02:13 #7
jeg ska bruge alle felter fra begge tabeller og det eneste der er ens ved dem er brugernavnet...
Avatar billede menthos Nybegynder
25. maj 2004 - 02:17 #8
nu går skærmen bare i hvid istedet
Avatar billede sostack Nybegynder
25. maj 2004 - 07:22 #9
"SELECT f.*, d.* FROM `favorit` f, `dating_users` d LEFT JOIN d ON f.brugernavn=d.brugernavn WHERE f.brugernavn='$id'"

//sostack
Avatar billede jakobdo Ekspert
25. maj 2004 - 08:56 #10
Hvorfor så ikke bare lave:
SELECT * FROM `favorit`,`dating_users`
Så har du alt...
Avatar billede sostack Nybegynder
25. maj 2004 - 09:42 #11
>>jakobdo
Column: 'brugernavn' in where clause is ambiguous

//sostack
Avatar billede jakobdo Ekspert
25. maj 2004 - 09:44 #12
Da ikke når jeg ikke har nogen WHERE clause...

Han vil have alt, det får han jo med:

SELECT * FROM `favorit`,`dating_users`

Der er jo lidt tvivl om hvad det rent faktisk er menthos ønsker...
Avatar billede menthos Nybegynder
25. maj 2004 - 10:45 #13
jakobdo når jeg laver en where clause er det nok fordi jeg skal bruge den ik?!....
Avatar billede jakobdo Ekspert
25. maj 2004 - 10:48 #14
Jo, men fortæl hvad du ønsker?
Giv os f.eks. hvordan din tabel struktur er?
Jo mere info, jo lettere kan vi hjælpe!
Avatar billede menthos Nybegynder
25. maj 2004 - 10:48 #15
sostack: nu skriver den: Not unique table/alias: 'd'
Avatar billede menthos Nybegynder
25. maj 2004 - 10:51 #16
CREATE TABLE `favorit` (
  `id` int(11) NOT NULL auto_increment,
  `brugernavn` varchar(255) NOT NULL default '',
  `favorit` tinytext NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
sådan ser favorit ud
og sådan ser dating_users ud:
CREATE TABLE `dating_users` (
  `id` int(11) NOT NULL auto_increment,
  `brugernavn` tinytext NOT NULL,
  `password` tinytext NOT NULL,
  `email` tinytext NOT NULL,
  `køn` tinytext NOT NULL,
  `sex` tinytext NOT NULL,
  `søger` tinytext NOT NULL,
  `alder` int(2) NOT NULL default '0',
  `gruppe` tinytext NOT NULL,
  `gruppenr` char(3) NOT NULL default '',
  `division` tinytext NOT NULL,
  `højde` int(3) NOT NULL default '0',
  `vægt` int(3) NOT NULL default '0',
  `øjenfarve` tinytext NOT NULL,
  `hårfarve` tinytext NOT NULL,
  `kropsbygning` tinytext NOT NULL,
  `brugt` char(3) NOT NULL default 'Nej',
  `fødselsdag` date NOT NULL default '0000-00-00',
  `partnerstatus` tinytext NOT NULL,
  `alkohol` tinytext NOT NULL,
  `uddannelse` tinytext NOT NULL,
  `film` tinytext NOT NULL,
  `musik` tinytext NOT NULL,
  `interesser` tinytext NOT NULL,
  `profiltext` tinytext NOT NULL,
  `billede` tinyint(1) NOT NULL default '0',
  `billededest` varchar(255) NOT NULL default '',
  `oprettet` date NOT NULL default '0000-00-00',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=19 ;
Avatar billede jakobdo Ekspert
25. maj 2004 - 10:54 #17
Prøv SELECT favorit.*, dating_users.* FROM favorit, dating_users WHERE favorit.brugernavn = dating_users.brugernavn AND dating_users.brugernavn = 1
Avatar billede menthos Nybegynder
25. maj 2004 - 11:02 #18
det virker... svar så får du dine points
Avatar billede jakobdo Ekspert
25. maj 2004 - 11:06 #19
Svar...
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