Hallo,
danke erstmal für deine Antwort und bereits hilfreichen Tipps.
Punkt 3: habe ich etwas falsch beschreiben, aber du hast es richtig gedeutet. Habs im InstallTool gefunden udn entsprechende abgeändert, nun kann ich Änderungen an Dateien vornehmen.
Punkt 2: da bin ich nicht so ganz durchgestiegen: für die Query ist mir dies unter die Augen gekommen:
SELECTquery ( $ select_fields,
$ from_table,
$ where_clause,
$ groupBy = '',
$ orderBy = '',
$ limit = ''
)
ob dies allerdins passend ist, weiß ich nicht.
Punkt 1: habe nun die Ganzen echos mal entfernt, habe in etwa befürchtet dass dies so nicht geht.
Nun wäre ich erfreut, wenn du mir noch etwas bzgl. der Datenbankverbindung, Abfrage etc. helfen könntest.
function main($content, $conf) {
return 'Hello World!<HR>
// Datenbank verbinden
include "../zugang.php.inc";
$sql = "
SELECT platz, verein, begegnungsanzahl, sieg, unentschieden, niederlage, spielpunkte, differenz, punkte FROM tabelle_damen1 ORDER BY platz";
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error()),
}
$anzahl = mysql_num_rows($db_erg);
Test
<table class=\"table_mannschaften_80\">
<tr>
<td>Platz</td>
<td>Verein</td>
<td>Begegnungen</td>
<td>S</td>
<td>U</td>
<td>N</td>
<td>Spiele</td>
<td>+/-</td>
<td>Punkte</td>
</tr>
$anzahl = 1
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
<tr>
<td>'. $zeile['platz'] . '</td>
<td>'. $zeile['verein'] . '</td>
<td>'. $zeile['begegnungsanzahl'] . '</td>
<td>'. $zeile['sieg'] . '</td>
<td>'. $zeile['unentschieden'] . '</td>
<td>'. $zeile['niederlage'] . '</td>
<td>'. $zeile['spielpunkte'] . '</td>
<td>'. $zeile['differenz'] . '</td>
<td>'. $zeile['punkte'] . '</td>
</tr>
$anzahl+
}
</table>
mysql_free_result( $db_erg )
'.
t3lib_div::view_array($conf);
}
Du brauchst dich in einer Extension nicht um die Verbindung zur Datenbank kümmern, das geht alles über den Core. Natürlich vorausgesetzt, dass du auf die TYPO3-DB zugreifen willst und nicht auf eine externe DB. Das würde dann mit DBAL gehen.
Abfrage:
<php
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($select, $from, $where, $group, $order, $limit);
$anzahl = $GLOBALS['TYPO3_DB']->sql_num_rows($res)
while ($zeile = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
...
}
$GLOBALS['TYPO3_DB']->sql_free_result($res);
?>
Hallo,
die Inhalte sind in einer anderen DB, allerdings auf dem gleichen Server.
Meinst du dies hier? Oder muss da die Extetion DBAL isntalliert werden?
$TYPO3_CONF_VARS['EXTCONF']['dbal']['handlerCfg'] = array (
'_DEFAULT' => array (
'type' => 'native',
'config' => array(
'username' => '', // Set by default (overridden)
'password' => '', // Set by default (overridden)
'host' => '', // Set by default (overridden)
'database' => '', // Set by default (overridden)
)
),
Gruß Tobli
Hallo zusammen,
kurzer kleiner Push (auch wenn dies nicht gerne gesehen ist).
Gruß Tobli
HAllo,
ich habe nun meine ext_localconfig.php der Extetion ein wenig umgebaut. Bin ich da auf dem richtigen Wege?
<?php
if (!defined ('TYPO3_MODE')) die ('Access denied.');
$TYPO3_CONF_VARS['EXTCONF']['dbal']['handlerCfg'] = array (
'_DEFAULT' => array (
'type' => 'native',
'config' => array(
'username' => 'datenbankbenutzer',
'password' => '*****',
'host' => 'localhost',
'database' => 'typo3datenbank'
)
),
'alternativeMySQLdb' => array (
'type' => 'native',
'config' => array(
'username' => 'datenbankbenutzer',
'password' => '*****',
'host' => 'localhost',
'database' => 'extere_datenbankname',
'driver' =>'mysql'
)
),
);
$TYPO3_CONF_VARS['EXTCONF']['dbal']['table2handlerKeys'] = array (
'stadt' => 'alternativeMySQLdb'
);
t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_damen1tabelle_pi1.php', '_pi1', 'CType', 1);
?>
Gruß Tobli
Hallo,
aktuell bekomme ich leider nur eine weiße Seite im Frontend angezeigt.
Das Protokoll in Typo3 zeigt:
Core: Error handler (BE): PHP Warning: is_file(): open_basedir restriction in effect. File(/var/www/virtual/???/htdocs/<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <T3DataStructure> <meta type="array"> <langDisable>1</langDisable> </meta> <ROOT type="array"> <tx_templavoila type="array"> <title>ROOT</title> <description>Wählen Sie das HTML-Element der Seite, das Sie als übergeordnetes Container-Element der Vorlage möchten.</description> </tx_templavoila> <type>array</type> <el type="array"> <field_ueberschrift type="array"> <tx_templavoila type="array"> <title>Überschrift</title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>input</eType> <tags>h3:inner</tags> <proc type="array"> <HSC type="integer">1</HSC> <stdWrap></stdWrap> </proc> <preview></preview> <TypoScript type="NULL"></TypoScript> </tx_templavoila> <TCEforms type="array"> <label>Überschrift</label> <config type="array"> <type>input</type> <size>48</size> <eval>trim</eval> </config> </TCEforms> </field_ueberschrift> <field_textzeile1 type="array"> <tx_templavoila type="array"> <title>Text Zeile 1</title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>input</eType> <tags>span:outer</tags> <proc type="array"> <HSC type="integer">1</HSC> <stdWrap></stdWrap> </proc> <preview></preview> <TypoScript type="NULL"></TypoScript> </tx_templavoila> <TCEforms type="array"> <label>Text Zeile 1</label> <config type="array"> <type>input</type> <size>48</size> <eval>trim</eval> </config> </TCEforms> </field_textzeile1> <field_textzeile2 type="array"> <tx_templavoila type="array"> <title>Text Zeile 2</title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>input</eType> <tags>span:outer</tags> <proc type="array"> <HSC type="integer">1</HSC> <stdWrap></stdWrap> </proc> <preview></preview> <TypoScript type="NULL"></TypoScript> </tx_templavoila> <TCEforms type="array"> <label>Text Zeile 2</label> <config type="array"> <type>input</type> <size>48</size> <eval>trim</eval> </config> </TCEforms> </field_textzeile2> <field_linktext1 type="array"> <tx_templavoila type="array"> <title>Linktext 1</title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>input</eType> <tags>a:inner</tags> <proc type="array"> <HSC type="integer">1</HSC> <stdWrap></stdWrap> </proc> <preview></preview> <TypoScript type="NULL"></TypoScript> </tx_templavoila> <TCEforms type="array"> <label>Linktext 1</label> <config type="array"> <type>input</type> <size>48</size> <eval>trim</eval> </config> </TCEforms> </field_linktext1> <field_linkurl1 type="array"> <type>attr</type> <tx_templavoila type="array"> <title>Linkurl 1</title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>link</eType> <tags>a:attr:href</tags> <TypoScript> 10 = TEXT 10.typolink.parameter.current = 1 10.typolink.returnLast = url</TypoScript> <proc type="array"> <HSC type="integer">1</HSC> <stdWrap></stdWrap> </proc> <preview></preview> </tx_templavoila> <TCEforms type="array"> <label>Linkurl 1</label> <config type="array"> <type>input</type> <size>15</size> <max>256</max> <checkbox></checkbox> <eval>trim</eval> <wizards type="array"> <_PADDING type="integer">2</_PADDING> <link type="array"> <type>popup</type> <title>Link</title> <icon>link_popup.gif</icon> <script>browse_links.php?mode=wizard</script> <JSopenParams>height=300,width=500,status=0,menubar=0,scrollbars=1</JSopenParams> </link> </wizards> </config> </TCEforms> </field_linkurl1> <field_linktext2 type="array"> <tx_templavoila type="array"> <title>Linktext 2</title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>input</eType> <tags>a:inner</tags> <proc type="array"> <HSC type="integer">1</HSC> <stdWrap></stdWrap> </proc> <preview></preview> <TypoScript type="NULL"></TypoScript> </tx_templavoila> <TCEforms type="array"> <label>Linktext 2</label> <config type="array"> <type>input</type> <size>48</size> <eval>trim</eval> </config> </TCEforms> </field_linktext2> <field_linkurl2 type="array"> <type>attr</type> <tx_templavoila type="array"> <title>Linkurl 2</title> <sample_data type="array"> <numIndex index="0"></numIndex> </sample_data> <eType>link</eType> <tags>a:attr:href</tags> <TypoScript> 10 = TEXT 10.typolink.parameter.current = 1 10.typolink.returnLast = url</TypoScript> <proc type="array"> <HSC type="integer">1</HSC> <stdWrap></stdWrap> </proc> <preview></preview> </tx_templavoila> <TCEforms type="array"> <label>Linkurl 2</label> <config type="array"> <type>input</type> <size>15</size> <max>256</max> <checkbox></checkbox> <eval>trim</eval> <wizards type="array"> <_PADDING type="integer">2</_PADDING> <link type="array"> <type>popup</type> <title>Link</title> <icon>link_popup.gif</icon> <script>browse_links.php?mode=wizard</script> <JSopenParams>height=300,width=500,status=0,menubar=0,scrollbars=1</JSopenParams> </link> </wizards> </config> </TCEforms> </field_linkurl2> </el> </ROOT> </T3DataStructure>) is not within the allowed path(s): (/var/www/virtual/???/:/usr/share/php/) in /var/www/virtual/???/htdocs/t3lib/class.t3lib_befunc.php line 947
Jemand eine Idee was da schief läuft?
Gruß Tobli
HAllo,
ich verzweifle so langsam: aktuell habe ich nur die class.tx_damen1tabelle_pi1.php verändert und alle anderen Dateien der Extention unverändert gelassen, allergins bekomme ich immer eine weiße Seite ausgegeben:
<?php
...
/**
* Plugin 'Damen 1 Tabelle auslesen' for the 'damen1_tabelle' extension.
*
* @author
* @package TYPO3
* @subpackage tx_damen1tabelle
*/
class tx_damen1tabelle_pi1 extends tslib_pibase {
var $prefixId = 'tx_damen1tabelle_pi1'; // Same as class name
var $scriptRelPath = 'pi1/class.tx_damen1tabelle_pi1.php'; // Path to this script relative to the extension dir.
var $extKey = 'damen1_tabelle'; // The extension key.
var $pi_checkCHash = true;
/**
* The main method of the PlugIn
*
* @param string $content: The PlugIn content
* @param array $conf: The PlugIn configuration
* @return The content that is displayed on the website
*/
function main($content, $conf) {
$extDB = t3lib_div::makeInstance('t3lib_DB');
$extDB->debugOutput = $TYPO3_CONF_VARS['SYS']['sqlDebug'];
$extDB->connectDB('localhost', 'db-name', 'pw', 'db-user');
$res = $extDB->exec_SELECTquery('platz, verein, begegnungsanzahl, sieg,
unentschieden, niederlage, spielpunkte, differenz,
punkte', 'tabelle_damen1', NULL, 'platz');
$anzahl = $extDB->sql_num_rows($res);
$content = '<table class=\'table_mannschaften_80\'>
<tr>
<td>Platz</td>
<td>Verein</td>
<td>Begegnungen</td>
<td>S</td>
<td>U</td>
<td>N</td>
<td>Spiele</td>
<td>+/-</td>
<td>Punkte</td>
</tr>';
$anzahl = 1
while ($zeile = mysql_fetch_array( $res, MYSQL_ASSOC))
{
$content .= '<tr>
<td>'. $zeile['platz'] . '</td>
<td>'. $zeile['verein'] . '</td>
<td>'. $zeile['begegnungsanzahl'] . '</td>
<td>'. $zeile['sieg'] . '</td>
<td>'. $zeile['unentschieden'] . '</td>
<td>'. $zeile['niederlage'] . '</td>
<td>'. $zeile['spielpunkte'] . '</td>
<td>'. $zeile['differenz'] . '</td>
<td>'. $zeile['punkte'] . '</td>
</tr>';
$anzahl++;
}
$content .= '</table>';
$extDB->sql_free_result($res);
return $content;
}
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/damen1_tabelle/pi1/class.tx_damen1tabelle_pi1.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/damen1_tabelle/pi1/class.tx_damen1tabelle_pi1.php']);
}
?>
Noch irgendwelche LÖsungen vorhanden?
Gruß Tobli
Stell dein php mal richtig ein, dass du Fehlermeldungen ausgegeben bekomsmt. Dann siehst du schnell, was los ist.
Ebenso in der localconf.php deine ip mal bei devipmask eintragen und sqldebug auf 1 stellen, dann erzählt dir typo3 auch alle Fehlerdetails.
aemka schrieb
Stell dein php mal richtig ein, dass du Fehlermeldungen ausgegeben bekomsmt. Dann siehst du schnell, was los ist.
Ebenso in der localconf.php deine ip mal bei devipmask eintragen und sqldebug auf 1 stellen, dann erzählt dir typo3 auch alle Fehlerdetails.
Hallo,
in der localconfig.php in der typo3 config? Dort habe ich keinen Eintrag von devipmask und sqldebug gefunden.
Ich habe nun festgestellt, dass ich ein ; vergessen hatte. Nun klappt die Abfrage und auch die Verbindung.
Ich habe nun eine weitere Abfrage probiert, allerdings scheint hier etwas nicht zu passen.
$sql = "
SELECT id, wochentag, spielzeit, spielklasse, heimmannschaft, gastmannschaft, heimergebnis, gastergebnis FROM spielergebnisse WHERE heimmannschaft NOT LIKE '%spielfrei%' AND gastmannschaft NOT LIKE '%spielfrei%' ORDER BY spielzeit";
$res = $extDB->exec_SELECTquery('id, wochentag, spielzeit, spielklasse,
heimmannschaft, gastmannschaft, heimergebnis,
gastergebnis', 'spielergebnisse', 'heimmannschaft NOT LIKE spielfrei AND gastmannschaft NOT LIKE spielfrei', 'spielzeit');