Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> chciałabym poprawić dodatek do joomla [PHP][inne]
--zielona--
post
Post #1





Goście







Witam. napisałam w dziale "przedszkole" bo "żłobka" nie macie wink.gif potrzebuję porady. mam zainstalowaną joomlę 1,5, w niej mam komponent ckforms a do niego jeszcze dodatek ckforms data. ckforms data pozwala na wyświetlenie na stronie wcześniej przesłanych do bazy formularzy. ckforms data wyświetla dane w postaci przejrzystej tabelki, gdzie nagłówkiem każdej kolumny jest tytuł (opis) pola z formularza. no i tu jest problem. mam bardzo długi formularz (ok 20 pytań). jak to wszystko wyświetla się na stronie to jest po prostu bałagan. potrzebuję wyświetlić tylko dwie pierwsze kolumny z tabeli (czyli dwa pierwsze pytania z mojego formularza). szukałam w kodzie tego dodatku ale naprawdę jestem zielona. zapewne trzeba nadpisać plik. tylko jak? potrzebuję taki warunek: POKAŻ KOLUMNY TABELI=2, albo JEŚLI LICZBA KOLUMN>2 POKAŻ 2. no nie wiem... jaka to by była komenda?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


możliwe że coś w stylu
  1. SELECT * FROM tabela LIMIT 20

zamiast 20, zmień na 2, ale jak to dokładnie tam jest to nie wiem


--------------------
:)
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


@up
Co ma ograniczenie ilości pobieranych wierszy do ilości pobieranych kolumn? NIC.

@topic
Czy to jest w bazie danych? Z opisu ciężko to wywnioskować, jeżeli tak to nic prostszego jak pobrać tylko dwie kolumny.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
--zielona--
post
Post #4





Goście







Cytat(Fifi209 @ 26.05.2011, 17:00:29 ) *
Czy to jest w bazie danych? Z opisu ciężko to wywnioskować, jeżeli tak to nic prostszego jak pobrać tylko dwie kolumny.



tak! wszystkie dane są w bazie danych. piszesz, że nic prostszego ale widzisz... jakby to napisać... jestem ZIELONA! czy mogłabym liczyć na jakieś wskazówki?
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Kurs MySQL lub manual i poczytaj jak wybrać konkretne kolumny. ;]


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
gac3k
post
Post #6





Grupa: Zarejestrowani
Postów: 90
Pomógł: 8
Dołączył: 28.07.2009

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


Jak chcesz dwie konkretne kolumny to masz zapytanie

  1. SELECT kolumna,kolumna2 FROM tabela


czyli zamiast gwiazdki wprowadzasz konkretne kolumny, ale musiałabyś pokazać kod bo musisz wiedzieć co podmienić.

Ten post edytował gac3k 27.05.2011, 08:32:30
Go to the top of the page
+Quote Post
--zielona--
post
Post #7





Goście







Cytat(gac3k @ 27.05.2011, 08:32:01 ) *
Jak chcesz dwie konkretne kolumny to masz zapytanie

  1. SELECT kolumna,kolumna2 FROM tabela


czyli zamiast gwiazdki wprowadzasz konkretne kolumny, ale musiałabyś pokazać kod bo musisz wiedzieć co podmienić.



ale że mam tu wkleić kod tego dodatku? jest dosyć długi admin mnie zabije...
przejrzałam bazę. mama tam takie pozycje:
-ckfields tam są wszystkie pola z wszystkich formularzy
-ckforms tam są tylko same tytuły formularzy
-ckforms1 dla formularzu 1 i odpowiednio 2,3 itd. tam są dane szczegółowe

w ckfields jest kolumna "ordering" przyjmuje ona wartości liczbowe które odpowiadają kolejnym polom danego formularza.
wychodzi na to że musiałabym wkleić polecenie select * from ckfields where.... no i właśnie żeby wybierało tylko te dane dla których ordering =1 lub 2.
cały dzień nad tym siedziałam (już nie chciałam wam głowy zawracać) ale nie wiem jak to zrobić.
a tu jest fragment z tego kodu:


/**
* CKForms load form data method
*
* Method is called by onPrepareContent method
*
* @param object The form name
* @return object
*/
function loadCkForm($name)
{
$db =& JFactory::getDBO();
$query = "SELECT * FROM #__ckforms where name='".$name."'";

$db->setQuery( $query );
$data = $db->loadObject();

return $data;
}

/**
* CKForms load fields data method
*
* Method is called by onPrepareContent method
*
* @param int The form id
* @return object
*/
function loadCkFormData($id,$start,$number,$sortfield,$sortdirection)
{
$db =& JFactory::getDBO();

$tn = "#__ckforms_".$id;
$query = ' SELECT c.* from '.$tn.' c where c.published = 1 ';
$query = $query .' order by '.$sortfield.' '.$sortdirection.' ';

$db->setQuery($query,$start*$number, $number);
$data = $db->loadObjectList();
//echo "*".$db->getErrorMsg()."*";

return $data;
}

/**
* CKForms load fields data method
*
* Method is called by onPrepareContent method
*
* @param int The form id
* @return object
*/
function getFormDataTotal($id)
{
$db =& JFactory::getDBO();

$tn = "#__ckforms_".$id;
$query = ' SELECT count(*) as nb from '.$tn.' c where c.published = 1 ';

$db->setQuery($query);
$data = $db->loadObject();

return $data->nb;
}

/**
* CKForms load fields data method
*
* Method is called by onPrepareContent method
*
* @param int The form id
* @return object
*/
function loadCkFormFields($id)
{
$db =& JFactory::getDBO();
$query = ' SELECT * from #__ckfields c where c.fid='.$id." and (c.frontdisplay is null or c.frontdisplay = '1') and published=1 order by ordering asc";

$db->setQuery($query);
$fields = $db->loadObjectList();

return $fields;
}

myślę że gdzieś w tym miejscu trzeba ten kod poprawić ale ja tam się nie znam... jak chcesz zobaczyć cały kod to mogę i cały wkleić ale proszę pomóż mi...
Go to the top of the page
+Quote Post
yevaud
post
Post #8





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


Cytat(Fifi209 @ 26.05.2011, 17:00:29 ) *
@up
Co ma ograniczenie ilości pobieranych wierszy do ilości pobieranych kolumn? NIC.

obawiam sie ze nic, ale kolezanka "zielona" kolumnami nazywa kolejne pytania w formularzu - a to mi nie brzmi jaky chodzilo o nazwy pol/kolumny smile.gif

@zielona
sproboj zmienic linie

  1. $query = ' SELECT * from #__ckfields c where c.fid='.$id." and (c.frontdisplay is null or c.frontdisplay = '1') and published=1 order by ordering asc";

na
  1. $query = ' SELECT * from #__ckfields c where c.fid='.$id." and (c.frontdisplay is null or c.frontdisplay = '1') and published=1 limit 2 order by ordering asc";


ale najlepiej to wysuplaj chociaz te 15zl i daj to komus do roboty, ktos bedzie mial na piwo, a Ty bedziesz miala dzialajace rozwiazanie
Go to the top of the page
+Quote Post
--zielona--
post
Post #9





Goście







yevaud tak masz rację - nie chodzi o kolumny z bazy danych a o kolumny zwracane przez dodatek który chcę zmienić. wybaczcie za zamieszanie ale ja naprawdę jestem zielona (a poza tym napisałam w dziale "przedszkole" prawda).
yevaud ten kod który proponujesz niestety nie działa... może masz rację że łatwiej byłoby zapłacić za pomoc ale jak o to pytałam to spece przynajmniej 200zł sobie krzyczeli (może widzieli że się nie znam i chcieli mnie naciągnąć, a może to rzeczywiście trudne). takiej kaski nie przeznaczę na to sad.gif

jakbyście mieli jeszcze jakieś pomysły jak to rozwiązać to będę wdzięczna, jeśli nic wam już nie przyjdzie do głowy to trudno - będzie bałagan na stronce...

dziękuję wszystkim za pomoc i naprawdę bardzo was podziwiam że odnajdujecie się w tych wszystkich kodach - mnie to przerasta...
Go to the top of the page
+Quote Post
--zielona--
post
Post #10





Goście







SŁUCHAJCIE!!!
ZIELONA ZROBIŁA!!!

nie wiem jak ale działa tak jak chcę
napiszę rozwiązanie bo może ktoś jeszcze będzie miał taki problem
zamieniłam
$query = ' SELECT * from #__ckfields c where c.fid='.$real_id." and (c.frontdisplay is null or c.frontdisplay = '1') "
na
$query = ' SELECT * from #__ckfields c where c.fid='.$real_id." and ordering <=2 and (c.frontdisplay is null or c.frontdisplay = '1') "

dziękuję wam bo popchnęliście mnie w odpowiednim kierunku smile.gif
następnego posta napiszę jako "pomarańczowa" hehehe
Go to the top of the page
+Quote Post
-tredi-
post
Post #11





Goście







Przeciez wystarczyło odznaczyc opcje "Widok Frontend" na NIE we wlasciwosciach danego pola formularza. Ja mam inny problem gdyż nie wyswietlają mi sie dane szczegółowe jak juz klikne np w tabeli na pierwszą pozycję z kolumny. A opcja wyswietl dane szczegółowe jest wlaczona bo w przeciwnym razie w ogóle sie nie podswietla. Ta sytuacja ma miejsce jak pracuje na serwerze lokalnym. Na zewnetrznym wykupionym jest ok, wiec moze cos z ustawieniami bazy danych?
Go to the top of the page
+Quote Post
--zielona--
post
Post #12





Goście







Cytat(tredi @ 6.06.2011, 13:23:20 ) *
Przeciez wystarczyło odznaczyc opcje "Widok Frontend" na NIE we wlasciwosciach danego pola formularza. Ja mam inny problem gdyż nie wyswietlają mi sie dane szczegółowe jak juz klikne np w tabeli na pierwszą pozycję z kolumny. A opcja wyswietl dane szczegółowe jest wlaczona bo w przeciwnym razie w ogóle sie nie podswietla. Ta sytuacja ma miejsce jak pracuje na serwerze lokalnym. Na zewnetrznym wykupionym jest ok, wiec moze cos z ustawieniami bazy danych?



no nie wystarczyło bo wtedy po kliknięciu na dane szczegółowe nie wyświetlałoby się wszystko smile.gif ale ok. śmiga tak jak chciałam...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 21:53