Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Error: Column 'profile_field_id' in from clause is ambiguous, Bardzo potrzebuję pomocy
malwin23
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.10.2005

Ostrzeżenie: (0%)
-----


Witam.
Wczoraj zakupiłem skrypt skadate 5.0 ze strony skadate.com. Niestety nie mogę się dodzwonić do obsługi technicznej. Wyskakuje mi taki komunikat:


  1. Error: COLUMN 'profile_field_id' IN FROM clause IS ambiguous
  2. IN query: "SELECT `field`.*, `match_field_name`.`name` AS `matching`, `match_field`.`match_type` AS `matching_type` FROM `skadate_profile_field` AS `field` LEFT JOIN `skadate_link_profile_field_match` AS `match_field` ON `field`.`profile_field_id`=`match_field`.`match_profile_field_id` LEFT JOIN `skadate_profile_field` AS `match_field_name` USING ( `profile_field_id` )"
  3. debug string: ""


Nie wiem co z tym zrobić. Proszę kogoś o pomoc w rozwiązaniu tego problemu!

Ten post edytował malwin23 3.02.2007, 18:42:24
Go to the top of the page
+Quote Post
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


Spróbuj końcówke zapytania zmienić w ten sposób:
  1. ON `field`.`profile_field_id`=`match_field`.`match_profile_field_id`
  2. LEFT JOIN `skadate_profile_field` AS `match_field_name`
  3. USING ( `field`.`profile_field_id` )";


Ten post edytował Cienki1980 3.02.2007, 19:54:13
Go to the top of the page
+Quote Post
spryciula
post
Post #3





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 9.12.2006

Ostrzeżenie: (0%)
-----


to oznacza, że kolumna 'profile_field_in', jest zdefiniowana niejednoznacznie, w zapytaniu sql'owym, występuje dwa razy ta sama nazwa kolumny, z dwóch tabel i silnik sql'owy, ma problem z której tabeli brać dane
Go to the top of the page
+Quote Post
malwin23
post
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.10.2005

Ostrzeżenie: (0%)
-----


Dzięki Cienki1980 za podpowiedź ale to nic nie dało wyskakuje teraz komunikat niepoprawnie zdefiniowanej składni:
  1. Error: You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near '.`profile_field_id` )' at line 4
  2. IN query: "SELECT `field`.*, `match_field_name`.`name` AS `matching`, `match_field`.`match_type` AS `matching_type` FROM `skadate_profile_field` AS `field` LEFT JOIN `skadate_link_profile_field_match` AS `match_field` ON `field`.`profile_field_id`=`match_field`.`match_profile_field_id` LEFT JOIN `skadate_profile_field` AS `match_field_name` USING ( `field`.`profile_field_id` )"
  3. debug string: ""


Tak nazwa kolumny `profile_field_id` występuje dwa razy w bazie danych jeszcze w jednej tabeli `skadate_profile_field_values`
czyli w tych dwóch tabelach:

`skadate_profile_field_values`
`skadate_profile_field`

Coś jest z tym na pewno
jak zdefiniować USING, żeby było wiadomo, że chodzi o tabelę `skadate_profile_field` (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
USING ( `profile_field_id` )

Kurczę brak wiedzy to jest bolączka hehe.

A tak przy okazji to jest cały kod tej strony:
  1. <?php
  2.  
  3. /**
  4.  * This module initializes all profile's fields attributes and values
  5.  */
  6.  
  7. $get_pr_fields_query = "SELECT `field`.*, `match_field_name`.`name` AS `matching`, `match_field`.`m
    atch_type` AS `matching_type` 
  8. FROM `".TBL_PROF_FIELD."` AS `field` 
  9. LEFT JOIN `".TBL_PROF_FIELD_MATCH_LINK."` AS `match_field` ON `field`.`profile_field_id`=`match_field`.`match_profi
    le_field_id`
  10. LEFT JOIN `".TBL_PROF_FIELD."` AS `match_field_name` USING ( `profile_field_id` )";
  11.  
  12. $_PR_FIELDS = MySQL::fetchArray( $get_pr_fields_query, 'name' );
  13.  
  14. $compiled_pr_fields_val_query = sql_compile_placeholder( "SELECT `value` FROM `".TBL_PROF_FIELD_VALUE."` WHERE 
  15. `profile_field_id`=?
  16. ORDER BY `order`" );
  17.  
  18. foreach ( $_PR_FIELDS as $all_pr_key => $all_pr_value )
  19. {
  20. if ( ( $_PR_FIELDS[$all_pr_key]['matching'] ) )
  21. {
  22. $profile_field_id = $_PR_FIELDS[$_PR_FIELDS[$all_pr_key]['matching']]['profile_field_id'];
  23. $_PR_FIELDS[$all_pr_key]['cols_count'] = $_PR_FIELDS[$_PR_FIELDS[$all_pr_key]['matching']]['cols_count'];
  24. }
  25. else 
  26. {
  27. $profile_field_id = $_PR_FIELDS[$all_pr_key]['profile_field_id'];
  28. }
  29.  
  30. $pr_fields_val_query = sql_placeholder( $compiled_pr_fields_val_query, $profile_field_id );
  31.  
  32. $_PR_FIELDS[$all_pr_key]['values'] = MySQL::fetchArray( $pr_fields_val_query, 0 );
  33. }
  34. ?>


Wysyłam Ci link Spryciulo z całym skryptem na PW. Jak mi pomożesz to zrobić to tak z 10 zł CI wyślę na konto jestem biedny teraz jak mysz polna spłókany do reszty.

Ten post edytował malwin23 3.02.2007, 20:23:25
Go to the top of the page
+Quote Post
spryciula
post
Post #5





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 9.12.2006

Ostrzeżenie: (0%)
-----


żadnej kasy (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)


a co dokładnie ten sql ma wyciągnąć z bazy i do czego to jest wykorzystywane??



jedyne co mi teraz przychodzi do głowy to:

  1. SELECT `field`.*, `match_field_name`.`name` AS `matching`, `match_field`.`match_type` AS `matching_type`
  2. FROM `skadate_profile_field` AS `field`
  3. LEFT JOIN `skadate_link_profile_field_match` AS `match_field`
  4. ON `field`.`profile_field_id`=`match_field`.`match_profile_field_id`
  5. LEFT JOIN `skadate_profile_field` AS `match_field_name`
  6. ON `field`.`profile_field_id`=`match_field_name`.`profile_field_id`



ale nie wiem, czy o to dokładnie chodzi(edit o 02:11 nie, to nie to po zainstalowaniu tego skryptu i uruchomieniu go, sieje tak gęsto błędami, że już nie wiem o co chodzi, musisz skontaktować się z supportem) .
pozdrawiam

Ten post edytował spryciula 4.02.2007, 02:14:14
Go to the top of the page
+Quote Post
malwin23
post
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.10.2005

Ostrzeżenie: (0%)
-----


Dałem ten kod co mi podałaś zamiast poprzedniego i o dziwo poszedł tylko z błędami właśnie. Mimo wszystko dzięki piękne raz jeszcze. Jakoś sobie poradzę z tym fantem:)
Buźka
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 20:56