Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Problem mit Filter

Eingetragen von andreaszdw (20)
am 26.01.2015 - 06:46 Uhr in
  • Views
  • Drupal 7.x

In views versuche ich folgendes:

Wenn ich die Filter einzeln benutze klappt es, aber beide verknüpft mit "or" leider nicht.

Weiß jemand, was ich falsch mache?

Andreas

‹ [gelöst]Datei Feld funktioniert nicht mehr Problem mit Filter ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Was bedeutet "klappt

Eingetragen von montviso (2189)
am 26.01.2015 - 07:42 Uhr

Was bedeutet "klappt nicht"?
Kommen zu viel oder zu wenig Datensätze?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Klappt nicht

Eingetragen von andreaszdw (20)
am 26.01.2015 - 07:43 Uhr

Es kommt gar nichts mehr.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schon seltsam. Hast Du

Eingetragen von montviso (2189)
am 26.01.2015 - 07:49 Uhr

Schon seltsam.
Hast Du eingestellt, daß Dir der SQL-Befehl angezeigt wird, den die View generiert?

  • Anmelden oder Registrieren um Kommentare zu schreiben

SQL

Eingetragen von andreaszdw (20)
am 26.01.2015 - 08:06 Uhr

Nein, wo kann ich das denn einstellen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Damit müßte es

Eingetragen von montviso (2189)
am 26.01.2015 - 08:16 Uhr

Damit müßte es gehen:
http://www.inmotionhosting.com/support/edu/drupal-7/views-module-tutoria...

Dann unter der Ansicht, wo Du Deine View editieren kanns auf Preview / Vorschau

  • Anmelden oder Registrieren um Kommentare zu schreiben

admin/structure/views/setting

Eingetragen von maen (547)
am 26.01.2015 - 08:20 Uhr

admin/structure/views/settings

Show SQl Query

  • Anmelden oder Registrieren um Kommentare zu schreiben

SQL Query

Eingetragen von andreaszdw (20)
am 26.01.2015 - 08:23 Uhr

Das kommt dabei rum:

SELECT node.sticky AS node_sticky, node.created AS node_created, node.nid AS nid
FROM
{node} node
INNER JOIN {field_data_field_mannschaft} field_data_field_mannschaft ON node.nid = field_data_field_mannschaft.entity_id AND (field_data_field_mannschaft.entity_type = 'node' AND field_data_field_mannschaft.deleted = '0')
INNER JOIN {field_data_field_inhaltsseite} field_data_field_inhaltsseite ON node.nid = field_data_field_inhaltsseite.entity_id AND (field_data_field_inhaltsseite.entity_type = 'node' AND field_data_field_inhaltsseite.deleted = '0')
WHERE (( (node.type IN  ('artikel_bwo')) AND (field_data_field_inhaltsseite.field_inhaltsseite_value = 'Fussball') )OR( (node.type IN  ('spielbericht')) AND (field_data_field_mannschaft.field_mannschaft_value = 'Erste') ))
ORDER BY node_sticky DESC, node_created DESC
LIMIT 10 OFFSET 0

  • Anmelden oder Registrieren um Kommentare zu schreiben

kleiner Einwurf:

Eingetragen von ronald (3857)
am 26.01.2015 - 08:41 Uhr

Da du nach Texten suchst, bist du sicher, dass diese Schreibweise in exakt dieser Form überall vorhanden ist?

Bedenke, Fußball ist nicht Fussball und auch nicht fussball oder fußball. Das sind vier verschiedene Werte.
Auch Erste und erste oder gar 1 oder 1. sind vier unterschiedliche Werte.
Steht gar noch ein Leerzeichen am Anfang oder Ende, gibt es noch mehr Kombinationen.

Entweder du stellst eine Like-Abfrage ein, oder du benutzt für diese Felder Taxonomies.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ronald hat zwar recht

Eingetragen von maen (547)
am 26.01.2015 - 08:44 Uhr

was die Taxonomie Geschichtet betrifft, aber jetzt deine Abfrage betreffend:

Erkenne kein Problem. Die WHERE Clause ist in Ordnung.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, der Selectbefehl sieht OK

Eingetragen von montviso (2189)
am 26.01.2015 - 08:48 Uhr

Ja, der Selectbefehl sieht OK aus.
Und Du bist ganz sicher, daß die Abfragen, die mit OR verknüpft sind, für sich funktionieren?
Geh doch mal sukzessive vor und lösche einen Filter nach dem anderen.
Also zuerst Mannschaft ='Erste' u.s.w.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da bin ich mir sehr sicher,

Eingetragen von andreaszdw (20)
am 26.01.2015 - 08:55 Uhr

Da bin ich mir sehr sicher, da die einzelnen Abfragen funktionieren? Nur wenn ich die eine Abfrage und die andere Abfrage mit "or" verknüpfe, wird nichts mehr angezeigt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nimm doch trotzdem mal Filter

Eingetragen von montviso (2189)
am 26.01.2015 - 09:27 Uhr

Nimm doch trotzdem mal Filter für Filter einzeln weg, damit man einschränken kann, welcher Ärger macht.
Also zuerst den auf Fussball, dann auf Erste.
Die OR Verknüpfung aber stehen lassen.
So daß die Abfrage lautet "Ist entweder von dem einen oder vom anderen Typ".

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn der Filter nur Erste ist

Eingetragen von andreaszdw (20)
am 26.01.2015 - 09:45 Uhr

Wenn der Filter nur Erste ist funktioniert es, wenn nur Fussball ist, funktioniert es auch, sobald beide mit or verknüpft sind, funktioniert es nicht mehr.

Funktioniert:

SELECT node.sticky AS node_sticky, node.created AS node_created, node.nid AS nid
FROM
{node} node
INNER JOIN {field_data_field_inhaltsseite} field_data_field_inhaltsseite ON node.nid = field_data_field_inhaltsseite.entity_id AND (field_data_field_inhaltsseite.entity_type = 'node' AND field_data_field_inhaltsseite.deleted = '0')
WHERE (( (field_data_field_inhaltsseite.field_inhaltsseite_value = 'Fussball') ))
ORDER BY node_sticky DESC, node_created DESC
LIMIT 10 OFFSET 0

Funktioniert:

SELECT node.sticky AS node_sticky, node.created AS node_created, node.nid AS nid
FROM
{node} node
INNER JOIN {field_data_field_mannschaft} field_data_field_mannschaft ON node.nid = field_data_field_mannschaft.entity_id AND (field_data_field_mannschaft.entity_type = 'node' AND field_data_field_mannschaft.deleted = '0')
WHERE (( (field_data_field_mannschaft.field_mannschaft_value = 'Erste') ))
ORDER BY node_sticky DESC, node_created DESC
LIMIT 10 OFFSET 0

Funktioniert nicht:

SELECT node.sticky AS node_sticky, node.created AS node_created, node.nid AS nid
FROM
{node} node
INNER JOIN {field_data_field_mannschaft} field_data_field_mannschaft ON node.nid = field_data_field_mannschaft.entity_id AND (field_data_field_mannschaft.entity_type = 'node' AND field_data_field_mannschaft.deleted = '0')
INNER JOIN {field_data_field_inhaltsseite} field_data_field_inhaltsseite ON node.nid = field_data_field_inhaltsseite.entity_id AND (field_data_field_inhaltsseite.entity_type = 'node' AND field_data_field_inhaltsseite.deleted = '0')
WHERE (( (field_data_field_mannschaft.field_mannschaft_value = 'Erste') OR (field_data_field_inhaltsseite.field_inhaltsseite_value = 'Fussball') ))
ORDER BY node_sticky DESC, node_created DESC
LIMIT 10 OFFSET 0

  • Anmelden oder Registrieren um Kommentare zu schreiben

Poste doch mal die Seite, wie

Eingetragen von leda.ch (977)
am 26.01.2015 - 09:59 Uhr

Poste doch mal die Seite, wie Du das mit den AND/ORs eingibst in Views. Man muss die Teile nämlich einrücken, damit eine Art Klammern (für die logische Auswertung) gesetzt werden.
Mir kommt es vor, also ob jetzt AND und OR auf gleicher Ebene sind.

  • Anmelden oder Registrieren um Kommentare zu schreiben

(Kein Betreff)

Eingetragen von andreaszdw (20)
am 26.01.2015 - 10:10 Uhr

  • Anmelden oder Registrieren um Kommentare zu schreiben

Was ich nicht verstehe, wo im

Eingetragen von montviso (2189)
am 26.01.2015 - 10:14 Uhr

Was ich nicht verstehe, wo im Select die Inner Joins her kommen, die mit And verbunden sind.

Ich habe gerade mal bei mir nachgeschaut und eine vorhandene View mit "OR" minimal angepasst, um Deinen Fall nachzubauen.
Das steht folgendes:

SELECT node.created AS node_created, node.nid AS nid
FROM
{node} node
WHERE (( (node.status = '1') AND (node.type IN  ('page')) AND (node.title LIKE '%seo%' ESCAPE '\\') )OR( (node.title LIKE '%drupal%' ESCAPE '\\') AND (node.type IN  ('blog')) ))
ORDER BY node_created DESC
LIMIT 10 OFFSET 0

Also entweder sei der Inhaltstyp Page und der Titel enthält SEO und der Node ist veröffentlicht oder der Inhaltstyp ist Blog und der Titel enthält Drupal.

Bei mir funktioniert das wunderbar.
Drupal und Views-Modul sind aktuell.

Welche Versionen hast Du?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Diese View funktioniert

Eingetragen von wla (9461)
am 26.01.2015 - 10:23 Uhr

Diese View funktioniert nicht, da nicht beide Felder im gleichen Datensatz vorkommen. Es gibt also keinen Datensatz, für den beide INNER JOINS zutreffen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie kriege ich denn die INNER

Eingetragen von andreaszdw (20)
am 26.01.2015 - 10:25 Uhr

Wie kriege ich denn die INNER JOINS weg?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja wla, das meine ich

Eingetragen von montviso (2189)
am 26.01.2015 - 10:26 Uhr

Ja wla,
das meine ich ja.
Aber warum baut die View den Inner Join überhaupt ein?
Bei meiner Test-View gibt es nur den Where-Bereich.
Aber die Filter-Gruppen-Einstellung sieht genaus aus.
Da kann ich bei Andreas Einstellungen keinen Fehler sehen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Andreas, ist die View

Eingetragen von montviso (2189)
am 26.01.2015 - 10:38 Uhr

Andreas, ist die View ansonsten ganz einfach gestrickt?
Oder gibt es CONTEXTUAL FILTERS, RELATIONSHIPS?

Und noch mal die Frage nach den Programm Versionen von Drupal und View.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Version Drupal ist 7.34 -

Eingetragen von andreaszdw (20)
am 26.01.2015 - 10:47 Uhr

Version Drupal ist 7.34 - Views ist 7.x-3.8

Keine CONTEXTUAL FILTERS, keine RELATIONSHIPS

  • Anmelden oder Registrieren um Kommentare zu schreiben

Tja gleiche Version, wie bei

Eingetragen von montviso (2189)
am 26.01.2015 - 10:58 Uhr

Tja gleiche Version, wie bei mir...

Ich habe hier einen Export von der View erstellt.
Kannst ja mal bei Dir einen Export machen (View Liste -> Bei der entsprechenden View auf Export gehen).

Falls es dort schon mehrere Ansichten gibt, würde ich empfehlen, noch mal eine neue ganz einfachere View mit den obigen Einstellungen zu machen.
Sonst wird der Export so umfangreich.

$view = new view();
$view->name = 'test';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'test';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'test';
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Zurücksetzen';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['items_per_page'] = '10';
$handler->display->display_options['pager']['options']['tags']['first'] = '« erste Seite';
$handler->display->display_options['pager']['options']['tags']['previous'] = '‹ vorherige Seite';
$handler->display->display_options['pager']['options']['tags']['next'] = 'nächste Seite ›';
$handler->display->display_options['pager']['options']['tags']['last'] = 'letzte Seite »';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'node';
/* Feld: Inhalt: Titel */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
/* Sort criterion: Inhalt: Post date */
$handler->display->display_options['sorts']['created']['id'] = 'created';
$handler->display->display_options['sorts']['created']['table'] = 'node';
$handler->display->display_options['sorts']['created']['field'] = 'created';
$handler->display->display_options['sorts']['created']['order'] = 'DESC';
$handler->display->display_options['filter_groups']['operator'] = 'OR';
$handler->display->display_options['filter_groups']['groups'] = array(
  1 => 'AND',
  2 => 'AND',
);
/* Filter criterion: Inhalt: Veröffentlicht */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filter criterion: Inhalt: Typ */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'page' => 'page',
);
$handler->display->display_options['filters']['type']['group'] = 1;
/* Filter criterion: Inhalt: Titel */
$handler->display->display_options['filters']['title_1']['id'] = 'title_1';
$handler->display->display_options['filters']['title_1']['table'] = 'node';
$handler->display->display_options['filters']['title_1']['field'] = 'title';
$handler->display->display_options['filters']['title_1']['operator'] = 'contains';
$handler->display->display_options['filters']['title_1']['value'] = 'seo';
$handler->display->display_options['filters']['title_1']['group'] = 1;
/* Filter criterion: Inhalt: Titel */
$handler->display->display_options['filters']['title']['id'] = 'title';
$handler->display->display_options['filters']['title']['table'] = 'node';
$handler->display->display_options['filters']['title']['field'] = 'title';
$handler->display->display_options['filters']['title']['operator'] = 'contains';
$handler->display->display_options['filters']['title']['value'] = 'drupal';
$handler->display->display_options['filters']['title']['group'] = 2;
/* Filter criterion: Inhalt: Typ */
$handler->display->display_options['filters']['type_1']['id'] = 'type_1';
$handler->display->display_options['filters']['type_1']['table'] = 'node';
$handler->display->display_options['filters']['type_1']['field'] = 'type';
$handler->display->display_options['filters']['type_1']['value'] = array(
  'blog' => 'blog',
);
$handler->display->display_options['filters']['type_1']['group'] = 2;

/* Display: Page */
$handler = $view->new_display('page', 'Page', 'page');
$handler->display->display_options['path'] = 'test';
$translatables['test'] = array(
  t('Master'),
  t('test'),
  t('more'),
  t('Apply'),
  t('Zurücksetzen'),
  t('Sort by'),
  t('Asc'),
  t('Desc'),
  t('Items per page'),
  t('- All -'),
  t('Offset'),
  t('« erste Seite'),
  t('‹ vorherige Seite'),
  t('nächste Seite ›'),
  t('letzte Seite »'),
  t('Page'),
);

  • Anmelden oder Registrieren um Kommentare zu schreiben

@montvisoDu filters nach dem

Eingetragen von wla (9461)
am 26.01.2015 - 11:58 Uhr

@montviso
Du filterst nach dem Titel, der immer vorkommt. Die Datenfelder, die oben angeführt werden, kommen aber nur im speziellen Inhaltstyp vor. Die liegen in eigenen Tabellen und müssen mit INNER JOIN angebunden werden. Das ist der Unterschied.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hast Recht,

Eingetragen von montviso (2189)
am 26.01.2015 - 12:39 Uhr

Hast Recht, Werner...Gedankenfehler meinerseits.

Aber wenn ich das nachbaue mit einer Abfrage auf ein eindeutiges Feld des einen Inhaltstypen, dann wird ein Left Joint gebaut und kein Inner join.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mit LEFT JOIN sollte das

Eingetragen von wla (9461)
am 26.01.2015 - 13:08 Uhr

Mit LEFT JOIN sollte das funktionieren. Ich denke, da ist noch irgendeine Randbedingung, die Views veranlaßt, einen INNER JOIN zu nehmen und das ist das Problem.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
Weiter

Neue Kommentare

  • Rollen
    vor 3 Tagen 12 Stunden
  • Inzwischen sind wir bei
    vor 2 Wochen 6 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Wochen 22 Stunden
  • melde mich mal wieder, da ich
    vor 9 Wochen 5 Tagen
  • Hey danke
    vor 9 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 11 Wochen 1 Tag
  • In der entsprechenden View
    vor 11 Wochen 1 Tag

Statistik

Beiträge im Forum: 250237
Registrierte User: 20466

Neue User:

  • StevenEness
  • ocvk2810
  • marouane.blel

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 21 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association