Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konkretne id zamiast wczytywanego
Forum PHP.pl > Forum > PHP
parsi
Posiadam w kodzie $id_section , co pobiera wszystkie sekcje artykułów i wyświetla w module:

  1. function get_jf_correspondance([b]$id_section[/b]) {
  2. $db=& JFactory::getDBO();
  3. $document =& JFactory::getDocument();
  4.  
  5. // On vérifie si JoomFish est déjŕ installé
  6. $query="SHOW TABLE STATUS LIKE '%_jf_content'";
  7. $db ->setQuery($query);
  8. $nb_table= $db ->loadObjectList();
  9.  
  10. //Si Joomfish n'est pas installé...
  11. if(empty($nb_table)) return "";
  12.  
  13. $query='
  14. SELECT value FROM #__jf_content AS jf
  15. INNER JOIN #__languages AS lang
  16. ON jf.language_id = lang.id
  17. WHERE lang.code="'.$document->language.'"
  18. AND jf.reference_id='[b]$id_section[/b]'
  19. AND jf.reference_field = "title"
  20. AND jf.reference_table="sections"
  21. ';
  22. $db ->setQuery($query);
  23. $lang= $db ->loadObjectList();
  24.  
  25. return $lang[0]->value;


Chciałbym przerobić kod w ten sposób, aby moduł pobierał tylko sekcję o id=2. Zmieniam kod w ten sposób:

  1. function get_jf_correspondance([b]id_section="2"[/b]) {
  2. $db=& JFactory::getDBO();
  3. $document =& JFactory::getDocument();
  4.  
  5. // On vérifie si JoomFish est déjŕ installé
  6. $query="SHOW TABLE STATUS LIKE '%_jf_content'";
  7. $db ->setQuery($query);
  8. $nb_table= $db ->loadObjectList();
  9.  
  10. //Si Joomfish n'est pas installé...
  11. if(empty($nb_table)) return "";
  12.  
  13. $query='
  14. SELECT value FROM #__jf_content AS jf
  15. INNER JOIN #__languages AS lang
  16. ON jf.language_id = lang.id
  17. WHERE lang.code="'.$document->language.'"
  18. AND jf.reference_id='[b]2[/b]'
  19. AND jf.reference_field = "title"
  20. AND jf.reference_table="sections"
  21. ';
  22. $db ->setQuery($query);
  23. $lang= $db ->loadObjectList();
  24.  
  25. return $lang[0]->value;


Wyskakuje błąd na stronie. Prosiłbym o nakierowanie, w jaki sposób zmienić tę funkcję w zmienną o stałym id=2.
b4rt3kk
Zmień linijkę:

  1. AND jf.reference_id="2"


A tu błędu nie wyrzuca?

  1. AND jf.reference_id='$id_section'


Powinno być:

  1. AND jf.reference_id="'.$id_section.'"
CuteOne
  1. function get_jf_correspondance() {
  2.  
  3. $id_section=2;
  4. $db=& JFactory::getDBO();
  5. $document =& JFactory::getDocument();
  6.  
  7. // On vérifie si JoomFish est déjŕ installé
  8. $query="SHOW TABLE STATUS LIKE '%_jf_content'";
  9. $db ->setQuery($query);
  10. $nb_table= $db ->loadObjectList();
  11.  
  12. //Si Joomfish n'est pas installé...
  13. if(empty($nb_table)) return "";
  14.  
  15. $query="
  16. SELECT value FROM #__jf_content AS jf
  17. INNER JOIN #__languages AS lang
  18. ON jf.language_id = lang.id
  19. WHERE lang.code='".$document->language."'
  20. AND jf.reference_id='".$id_section."'
  21. AND jf.reference_field = 'title'
  22. AND jf.reference_table='sections'
  23. ";
  24. $db ->setQuery($query);
  25. $lang= $db ->loadObjectList();
  26.  
  27. return $lang[0]->value;
  28. }
  29. $a = get_jf_correspondance();
parsi
Zrobiłem tak jak napisałeś CuteOne i niestety nadal w module wyświetlają mi się dwie sekcje: z id=1 i id=2. Link do strony: http://hobbycafe.pl/ Chodzi o moduł po prawej stronie o nazwie "SeCatordion".

Zrobiłem też takim sposobem:

  1. function get_jf_correspondance() {
  2.  
  3. $id_section=2;
  4. $db=& JFactory::getDBO();
  5. $document =& JFactory::getDocument();
  6.  
  7. // On vérifie si JoomFish est déjŕ installé
  8. $query="SHOW TABLE STATUS LIKE '%_jf_content'";
  9. $db ->setQuery($query);
  10. $nb_table= $db ->loadObjectList();
  11.  
  12. //Si Joomfish n'est pas installé...
  13. if(empty($nb_table)) return "";
  14.  
  15. $query="
  16. SELECT value FROM #__jf_content AS jf
  17. INNER JOIN #__languages AS lang
  18. ON jf.language_id = lang.id
  19. WHERE lang.code='".$document->language."'
  20. AND jf.reference_id='2'
  21. AND jf.reference_field = 'title'
  22. AND jf.reference_table='sections'
  23. ";
  24. $db ->setQuery($query);
  25. $lang= $db ->loadObjectList();
  26.  
  27. return $lang[0]->value;
  28. }
  29. $a = get_jf_correspondance();


ale również nie działa...
nospor
Pobierasz dane z dwóch tabel, ale w żaden sposób ich ze sobą nie łączysz. Tak więc naturalne jest, ze w wyniku otrzymujesz iloczyn skalarny obu tabel.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.