JFactory::getDbo + pętla while
Wyniki 1 do 7 z 7

Temat: JFactory::getDbo + pętla while

  1. #1
    Debiutant
    Dołączył
    28-03-2018
    Wpisy
    6
    Punkty
    2

    Joomla! 3.6 JFactory::getDbo + pętla while

    Mam oto taki kod. Jak go przerobić by połączyć się z bazą danych za pomocą $db = JFactory::getDbo(); a nie wpisywać login i hasło. Próbowałem rożnymi poleceniami, ale nic mi nie wychodzi. W innych funkcjach normalnie pobieram wartości z pomocą JFactory::getDbo()

    Kod PHP:
    defined('_JEXEC') or die;
    class 
    MycompController extends JControllerLegacy
    {

     public function 
    test() 
    {

    $host "localhost";    /* Host name */
    $user "root";         /* User */
    $password "";         /* Password */
    $dbname "strona1";   /* Database name */

    // Create connection
    $con mysqli_connect($host$user$password,$dbname);

    // Check connection
    if (!$con) {
        die(
    "Connection failed: " mysqli_connect_error());
    }

    if(isset(
    $_POST['search'])){
        
    $search $_POST['search'];

        
    $query "SELECT * FROM k4qc8_test_type WHERE name like'%".$search."%'";
        
    $result mysqli_query($con,$query);
        
        while(
    $row mysqli_fetch_array($result) ){
            
    $response[] = array("value"=>$row['id'],"label"=>$row['name']);
        }

        echo 
    json_encode($response);
    }

    exit;
     



  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Senior moje awatar
    Dołączył
    08-01-2008
    Skąd
    Silesia
    Wpisy
    6 057
    Punkty
    188

    Domyślny

    Nawet nie chciało Ci się zerknąć na stronę dokumentacji -> https://docs.joomla.org/Selecting_data_using_JDatabase?

    Tam masz wszystko opisane oraz są podane przykłady.
    Webdeveloper do usług ;)

  4. #3
    Debiutant
    Dołączył
    28-03-2018
    Wpisy
    6
    Punkty
    2

    Domyślny

    zaglądałem...
    Nie działa
    Kod PHP:

    // Get a db connection.
    $db JFactory::getDbo();

    // Create a new query object.
    $query $db->getQuery(true);

        
        
    // Select all records from the user profile table where key begins with "custom.".
    // Order it by the ordering field.
    $query->select($db->quoteName('*');
    $query->from($db->quoteName('k4qc8_test_type'));
    $query->where($db->quoteName('name') . ' LIKE '.  $db->quote('%".$search."%'));

    // Reset the query using our newly populated query object.
    $db->setQuery($query);

    // Load the results as a list of stdClass objects (see later for more options on retrieving data).
    $results $db->loadObjectList();
        
        
        while(
    $row mysqli_fetch_array($results) ){
    exit; 
    Testowałem zapytania na pętlach foreach i działa ale na while nie chce działać, a jest mi to potrzebne do pola typu autocomplete. Co robię źle ?

  5. #4
    Debiutant
    Dołączył
    28-03-2018
    Wpisy
    6
    Punkty
    2

    Domyślny

    ktoś pomoże ?

  6. #5
    Wyga siristru awatar
    Dołączył
    28-05-2009
    Skąd
    Szczecin
    Wpisy
    3 238
    Punkty
    302

    Domyślny

    Może dla

    Kod PHP:
    $row mysqli_fetch_array($results
    potrzebujesz czegoś innego niż

    Kod PHP:
    $results $db->loadObjectList(); 
    może

    Kod PHP:
    $db->loadRow(); 
    ??
    Na Forum pomagam bezpłatnie ad maiorem Joomla gloriam
    Mimo pomocy na forum nie dajesz rady? Potrzebujesz by ekspert "zrobił to" za Ciebie?
    Napisz do mnie na PW. Argentum et Aurum nie zawsze jest konieczne ;)

  7. #6
    Bywalec danieladrianka awatar
    Dołączył
    02-01-2006
    Skąd
    Lębork
    Wpisy
    462
    Punkty
    128

    Domyślny

    $results = $db->loadObjectList();

    zwraca tablicę asocjacyjną w postaci obiektu np:
    Array (
    [0] => stdClass Object ( [id] => 1 [name] => John Smith
    [email] => johnsmith@domain.example [username] => johnsmith )
    [1] => stdClass Object ( [id] => 2 [name] => Magda Hellman
    [email] => magda_h@domain.example [username] => magdah )
    [2] => stdClass Object ( [id] => 3 [name] => Yvonne de Gaulle
    [email] => ydg@domain.example [username] => ydegaulle )
    )
    pętla "while" wykonywana jest tak długo aż zostanie spełniony warunek : "($row = mysqli_fetch_array($results) )"

    w warunku masz przypisanie do zmiennej $row tablicy asocjacyjnej ze zmiennej $results która to zawiera już tablicę asocjacyjną w postaci obiektu
    coś tu chyba nie tak?
    jaki efekt chcesz osiągnąć?

  8. #7
    Przeglądacz washingtonplx awatar
    Dołączył
    20-06-2010
    Wpisy
    68
    Punkty
    16

    Domyślny

    Podam Ci jedyne znane mi, działające rozwiązanie twojego problemu.

    Kod PHP:
    $db JFactory::getDbo(); 
                
    $query $db->getQuery(true);
                
    $query "SELECT * FROM #__test_type WHERE name like'%".$search."%'";
                
    $db->setQuery($query);
                
    $result $db->query();

    while(
    $row mysqli_fetch_array($result) ){
    // i dalej co tam masz 

Podobne tematy

  1. Phoca Download Error while saving Phoca Download Sections
    przez Siszunia na forum Rozszerzenia - problemy z obsługą, zarządzaniem
    Odpowiedzi: 3
    Ostatni post/autor: 20-12-2013, 15:26
  2. 404 Not Found error was encountered while trying to use an ErrorDocum NOWY
    przez azimo na forum Instalacja, aktualizacja, migracje
    Odpowiedzi: 2
    Ostatni post/autor: 21-08-2012, 19:56
  3. Phoca Gallery "Error while Creating Thumbnails (Error1)"
    przez lukasz3001 na forum Joomla 1.5 BŁĘDY
    Odpowiedzi: 3
    Ostatni post/autor: 30-11-2009, 19:22
  4. JFactory::getDate - data o dwie godziny do tyłu
    przez idek na forum Programowanie pod Joomla!
    Odpowiedzi: 2
    Ostatni post/autor: 29-09-2009, 00:12
  5. JFactory: data po polsku zamiast angielskiego
    przez traspie na forum Szablony, wygląd, formatowanie
    Odpowiedzi: 1
    Ostatni post/autor: 26-04-2009, 00:46

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •