Seite 1 von 1
Suche verfeinern
Verfasst: Di 24.Okt, 2023 07:12
von Icke
Hallo Leute,
ich wollte meine Tiersuche verfeinern stosse jedoch auf Plobleme.
ich habe da bei der Ausgabe 3 Begriffe 'lat' für lateinisch 'eng' für englisch und 'ger' für deutsch .
jetzt wird die Bedingung/Auswahl in gekürtzter Version angeteigt, das soll aber nicht sein.
Habe dazu etwas geschriebn das das umgehen sollte!?
if ( $such = "lat" ) { echo $such = "latainisch"; }
elseif ( $such = "ger") { echo $such = "deutsch"; }
else ( $such = "eng" ) { echo $such = "english"; }
komme jedoch mit den Opperatoren nicht zurecht!
kann da Jemand helfen

Re: Suche verfeinern
Verfasst: Di 24.Okt, 2023 13:25
von oxpus
= bedeutet Zuordnung
== ist der Vergleich
Korrekt wäre demnach:
Code: Alles auswählen
if ( $such == 'lat' ) { echo 'latainisch'; }
elseif ( $such == 'ger' ) { echo 'deutsch'; }
else ( $such == 'eng') { echo 'english'; }
Und dazu wird die Variable $such nicht verändert, was ansonsten passiert wäre.
Denn
echo() erzeugt ja bereits eine direkte Ausgabe, eine Varieblenzuordnung ist dabei nicht nötig.
Ansonsten, wenn $such geändert werden sollte, wäre diese Variante wohl geschickter:
Code: Alles auswählen
if ( $such == 'lat' ) { $such = 'latainisch'; }
elseif ( $such == 'ger') { $such = 'deutsch'; }
else ( $such == 'eng' ) { $such = 'english'; }
echo $such;
Alternativ ginge auch:
Code: Alles auswählen
if ( $such == 'lat' ) { $suchwort = 'latainisch'; }
elseif ( $such == 'ger') { $suchwort = 'deutsch'; }
else ( $such == 'eng' ) { $suchwort = 'english'; }
echo $suchwort;
Re: Suche verfeinern
Verfasst: Mi 25.Okt, 2023 07:39
von Icke
Guten Morgen Oxpus,
diese Variantan habe alle ich alle durch probiert, gehen jedoch nicht!
es folgt immer eine weisse Seite.
Re: Suche verfeinern
Verfasst: Mi 25.Okt, 2023 07:52
von oxpus
Bei einer weissen Seite gibt es eine Fehlermeldung, welche Dein Webserver in der error.log postet.
Vermutlich mag Dein php kein elseif sondern eher else if.
Alse else udnd if durch ein Leerzeichen getrennt.
Ansonsten bräuchte ich die Fehlermeldung aus Deiner error.log und die angegebene Zeile in dem Script.
Re: Suche verfeinern
Verfasst: Mi 25.Okt, 2023 09:12
von Icke
Hallo Oxpus,
also alles nicht so einfach mit den Fehlern!!!
Suche über
Suchwort eingeben und deutsch anklicken.
Folgeseite:
eine weisse Seite.
Das ist der Code:
<?php include($_SERVER["DOCUMENT_ROOT"].'/kopf.php');
include($_SERVER["DOCUMENT_ROOT"].'/header.php');
include($_SERVER["DOCUMENT_ROOT"].'/includes/lang/'.$lang.'/button.inc');
include($_SERVER["DOCUMENT_ROOT"].'/includes/lang/'.$lang.'/tiere.inc');
// Suchbedingungen
$s = $_REQUEST['s'];
$page = $_REQUEST['page'];
$wort = $_REQUEST['wort'];
$error = $_REQUEST['error'];
$such = $_REQUEST['such'];
echo $such;
if ( $such == 'lat' ) { $suchwort = 'latainisch'; }
elseif ( $such == 'ger') { $suchwort = 'deutsch'; }
else ( $such == 'eng' ) { $suchwort = 'english'; }
wenn ich den Code ändere
neuer Code:
<?php include($_SERVER["DOCUMENT_ROOT"].'/kopf.php');
include($_SERVER["DOCUMENT_ROOT"].'/header.php');
include($_SERVER["DOCUMENT_ROOT"].'/includes/lang/'.$lang.'/button.inc');
include($_SERVER["DOCUMENT_ROOT"].'/includes/lang/'.$lang.'/tiere.inc');
// Suchbedingungen
$s = $_REQUEST['s'];
$page = $_REQUEST['page'];
$wort = $_REQUEST['wort'];
$error = $_REQUEST['error'];
$such = $_REQUEST['such'];
echo $such;
if ( $such == 'ger' ) { $suchwort = 'deutsch'; }
das wars, Fehlermeldungen werden erst nach ca 30 min abrufbar.

Re: Suche verfeinern
Verfasst: Mi 25.Okt, 2023 09:45
von oxpus
Öhm, habe ich gemacht.
Deutsch angeklickt, "Delfin" als Suchwort eingegeben und erhalte nach Klick auf "Weiter" ein Ergebnis mit mehreren Einträgen.
Keine weiße Seite.
Und ja, ich lande auf der URL
https://www.wasserwelt.org/tiere/liste.php?s=4. Aber die lässt sich direkt nur ohne Inhalt (außer einem Banner) aufrufen.
Die Codeausschnitte helfen auch nicht weiter, da scheinbar kein Fehler vorliegt, sondern das Script liste.php einen Inhalt aus einem Aufruf benötigt, um etwas anzuzeigen.
Das kann ich so, ohne das Gesamtkonstrukt zu kennen, nicht beurteilen und analysieren.
BTW sehe ich gerade:
Latein wird mit nur einem "a" geschrieben. Also nicht Latain.
Re: Suche verfeinern
Verfasst: Do 26.Okt, 2023 07:37
von Icke
Morgens,
ich habe was ganz dämliches versucht und es klappt!?
if ( $such == 'ger' ) { $suchwort = 'deutsch'; }
if ( $such == 'lat' ) { $suchwort = 'latein'; }
if ( $such == 'eng' ) { $suchwort = 'english'; }
danke Oxpus für deine Bemühungen, achja latein geht auch!
