[gelöst] Anzeige von Daten aus externer Datenbank mit Views
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 20.09.2018 - 14:47 Uhr in
Hi liebe Community,
ich versuche aus einer externen Datenbank, bestehend aus einer Tabelle mit zwei Spalten, Daten auszulesen und mit Views anzuzeigen. Die Datenbank heißt 'abfragetest' und die Tabelle 'PPKS'. Die Spalten der Tabelle heißen 'ppk_Name' und 'ppk_Nummer'.
Hierzu habe ich die Settings.php um folgendes ergänzt:
<?php
$databases['external']['default'] = array (
'database' => 'abfragetest',
'username' => 'der Nutzername',
'password' => 'das Passwort',
'prefix' => '',
'host' => 'localhost',
'port' => '3306',
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
'driver' => 'mysql',
);
?>
, die .module
<?php
function klausuren_views_api() {
return array(
'api' => 3,
);
}
?>
und die .views.inc
<?php
function klausuren_views_data() {
$data = array();
$data['PPKS']['table']['group'] = t('PPKS');
$data['PPKS']['table']['provider'] = 'klausuren';
$data['PPKS']['table']['base'] = array(
'title' => t('PPKS'),
'help' => t('Zeigt PPKS an!'),
'database' => 'external',
'weight' => -10,
);
$data['PPKS']['ppk_Name'] = array(
'title' => t('Name'),
'help' => t('Name'),
'database' => 'external',
'field' => array(
'id' => 'standard',
),
);
$data['PPKS']['ppk_Nummer'] = array(
'title' => t('Nummer'),
'help' => t('Nummer'),
'database' => 'external',
'field' => array(
'id' => 'numeric',
),
);
return $data;
}
?>
angelegt.
Dabei erhalte ich einen SQL-Fehler:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM PPKS PPKS LIMIT 11 OFFSET 0' at line 1: SELECT FROM {PPKS} PPKS LIMIT 11 OFFSET 0; Array ( )
Während dem Versuch das Problem zu lösen habe ich versucht die Spalten sowohl im Code als auch in der Datenbank 'ppk_Name' mit 'plain_text_field' und 'ppk_Nummer' mit 'numeric_field' wie es im Beispiel auf hook_views_api() ist zu benennen. Damit funktioniert der Code. Mit jedem beliebigen anderen Bezeichnung funktioniert er nicht.
Wo liegt mein Fehler?
Viele Dank für eure Hilfe!! :)
- Anmelden oder Registrieren um Kommentare zu schreiben
Hi,du hast ja schon selbst
am 23.09.2018 - 09:42 Uhr
Hi,
du hast ja schon selbst beschrieben, wo der Fehler liegt.
numeric_field ist weder ein Feld noch ein Feld Bezeichner.
Es ist ein Meta Schema Feld das Drupal kennt und wird auf ein (Integer Decimal) Feld in der Datenbank gemappt.
https://api.drupal.org/api/drupal/includes%21database%21schema.inc/7.x
MfG
Robert