PDA

Zobacz pełną wersję : Wyświetlanie danych z bazy



azathoth
29-04-2010, 15:51
Witam,

Próbuje nauczyć się pisania własnych komponentów a już na samym początki mam problem.

Chodzi po prostu o wyświetlenie danych z bazy. Kod wygląda tak:


<?php
defined('_JEXEC') or die('Restricted access');

$db = JFactory::getDBO();
$query = 'SELECT * FROM #__categories';

$db->setQuery($query);

$list = $db->loadObjectList();

foreach ($list as $item) {
$item_title = $item->title;
echo $item_title.'<br />';
}

?>Jeśli chodzi o #__categories, #__sections czy #__modules wszystko działa dobrze i wyświetlają się dane.

Jednak jeśli wpisze np #__hello (utworzone na podstawie http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_6_-_Adding_Backend_Actions) nie wyświetla się żadna informacja.
Dodaje zrzut ekranu tej bazy z phpMyAdmin:
2501

Tak samo jest jeśli wpisze np #__users.

Po dodaniu w kodzie linijki
print_r($list);w przypadku #__hello zostaje wyświetlone:


Array ( [0] => stdClass Object ( [id] => 1 [greeting] => Hello, World! ) [1] => stdClass Object ( [id] => 2 [greeting] => Bonjour, Monde! ) [2] => stdClass Object ( [id] => 3 [greeting] => Ciao, Mondo! ) ) Proszę o pomoc jak wyświetlić dane w bazy danych np #__hello

malkowitch
29-04-2010, 18:47
W strukturze tabeli jos_hello nie masz kolumny "title" więc jak chcesz ją wyświetlić. w jos_users też jej nie ma.

Jeśli już, to możesz dla jos_hello wyświetlać kolumnę "greeting" a dla jos_users "username"

azathoth
30-04-2010, 15:26
Dzięki za wskazówkę! :) Coś mi to rozjaśniło:) Zmieniłem w phpMyAdmin w tabeli jos_hello: "greeting" na "title" i wszystkie dane ładnie się wyświetlają.

Mam jeszcze jedno pytanie: gdzie w kodzie komponentu mam wpisać "greeting" żeby dane o tej nazwie się wyświetlały? A nie tylko "title".
Jak wpiszę tak jak podałem poniżej dalej mam ten sam problem z wyświetlaniem:


<?php
defined('_JEXEC') or die('Restricted access');

$db = JFactory::getDBO();
$query = 'SELECT greeting FROM #__hello'; // w tej linijce zmieniłem "*" na "greeting"

$db->setQuery($query);

$list = $db->loadObjectList();

foreach ($list as $item) {
$item_title = $item->title;
echo $item_title.'<br />';
}


?>I w ten sposób nic nie widać :| Proszę o pomoc

azathoth
02-05-2010, 13:20
no tak... moja pomyłka


$item_title = $item->greeting;


i już wszystko gra :)