+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Eigenes PHP Script mit Joomla Datenbank --> 500 Status

  1. #1
    Neu an Board
    Registriert seit
    15.04.2011
    Beiträge
    4
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Eigenes PHP Script mit Joomla Datenbank --> 500 Status

    Hallo

    ich hab eine php datei artists.php, welche ich über ein form feld in einem artikel bediene.
    Eingabe ist ein Künstlername und Rückgabe ist eine Liste mit gefundenen Veröffentlichungen.

    Das ganze sieht so aus.

    Code:
    $user = JFactory::getUser();
    echo $user->get('id');
    
    $q=mysql_real_escape_string($_GET["q"]);
    $sql="Select * from jos_artistsearch where Artist like '%$q%' OR Album like '%$q%' OR Title like '%$q%'";
    $db->setQuery($sql);
    
    if ( $db->query() ) 
    {
    
    $rows = $db->loadObjectList();
    
    
    echo "<table id='rounded-corner' style='margin-left:5px;margin-top:10px;'border='0'>
    <thead>
    <tr>
    <th scope='col' class='rounded-company'>ID</th>
    <th scope='col' class='rounded-q1'>K&uuml;nstlername</th>
    <th scope='col' class='rounded-q2'>Album</th>
    <th scope='col' class='rounded-q3'>Titel</th>
    <th scope='col' class='rounded-q4'>Releasedatum</th>
    <th scope='col' class='rounded-q5'>Beschreibung</th>
    </tr></thead><tfoot>
        	<tr>
            	<td colspan='5' class='rounded-foot-left'><em>Leico-music Artist Library Copyright @2011</em></td>
            	<td class='rounded-foot-right'>&nbsp;</td>
            </tr>
        </tfoot><tbody>";
    
    forach($rows as $row)
      {
      echo "<tr>";
      echo "<td>" . $row->id . "</td>";
      echo "<td>" . $row->Artist . "</td>";
      echo "<td>" . $row->Album . "</td>";
      echo "<td>" . $row->Title . "</td>";
      echo "<td>" . $row->ReleaseDate . "</td>";
      echo "<td>" . $row->Description . "</td>";
      echo "</tr>";
      }
    echo "</tbody></table>";
    }
    
    
    ?>
    wenn ich jetzt das script MIT diesem joomla zugriff probiere kriege ich ein 500 HTTP Status code. Benutze ich die mysql connect klasse und gebe explizit benutzername usw an, funktioniert es. Es hängt also wie gesagt an dem Joomla DB Teil.

    PHP Datei liegt im Unterverzeichnis /artist im joomla ROOT.

  2. #2
    Hat hier eine Zweitwohnung Avatar von JoomDesign
    Registriert seit
    19.03.2006
    Ort
    Berlin, Deutschland
    Beiträge
    1.927
    Bedankte sich
    269
    Erhielt 594 Danksagungen
    in 511 Beiträgen

    Standard

    Du musst in deiner PHP das Framework laden:
    PHP-Code:
    // Definiere J!
    define'_JEXEC');
    define'JPATH_BASE'realpath(dirname(__FILE__).'/..' )); // relativ von deinem Script
    define'DS'DIRECTORY_SEPARATOR );
    // Lade J! Framework
    require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
    require_once ( 
    JPATH_BASE .DS.'includes'.DS.'framework.php' );
    $app = &JFactory::getApplication('site'); // oder 'administrator' eintragen

    // ab jetzt steht dir 
    $user = &JFactory::getUser(); 
    // und 
    $db    = &JFactory::getDBO(); 
    // zur Verfügung 

    Für die Abfrage mittels der Datenbank-Klasse hier mal nachschauen.
    Geändert von JoomDesign (20.04.2011 um 20:20 Uhr) Grund: Anweisung php4 sicher gemacht ;)

  3. #3
    Wohnt hier Avatar von Kubik-Rubik
    Registriert seit
    20.10.2005
    Ort
    Kubik-Rubik.de
    Beiträge
    2.736
    Bedankte sich
    177
    Erhielt 1.058 Danksagungen
    in 792 Beiträgen

    Standard

    Du greifst auf Joomla! Funktionen zu, die dir in einer externen Datei nicht zur Verfügung stehen.

    Lies das mal: http://docs.joomla.org/How_to_create...mla!_Framework

    Gruß

    Edit: Marcel war schneller...
    Joomla! Extensions by Kubik-Rubik.de
    Keine Beantwortung von Supportanfragen per PN

    Joomla! braucht Dich!

  4. #4
    Neu an Board
    Registriert seit
    15.04.2011
    Beiträge
    4
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    ähm sorry... mein fehler.. ich hab die datei oben nur "abgeschnitten" eingefügt..

    der teil oberhalb sieht so aus

    Code:
    define('_JEXEC', 1);
    define('JPATH_BASE', '../');
    define('DS', DIRECTORY_SEPARATOR);
    require_once(JPATH_BASE.DS.'includes'.DS.'defines.php');
    require_once(JPATH_BASE.DS.'includes'.DS.'framework.php');
    $mainframe = JFactory::getApplication('site');
    $mainframe->initialise();
    
    $db =& JFactory::getDBO();
    
    $user = JFactory::getUser();
    echo $user->get('id');

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein