Beitrag von Michael (450 Beiträge) am Freitag, 6.Dezember.2002, 11:05.
Teil eines Felds vergleichen?
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 6.Dezember.2002, 11:24.
Re: Teil eines Felds vergleichen?
Antworten
Beitrag von Michael (450 Beiträge) am Freitag, 6.Dezember.2002, 19:04.
Re: Teil eines Felds vergleichen?
hallo Sander,
danke, aber mit loop will ich nicht arbeiten, sondern einfach mit get - aber wenn ich die Abfrage so:
<perl>
get ["navipkt","==","$i","and","lang","=~","/$lang/","and","ui","==","$ui"],"menupunkte";
out "<h1>$titel</h1><p>$inhalt<p>";
</perl>
stelle, und angenommen $lang=dt wird nicht der Datensatz angezeigt, der "dt" im Optionsfeld hat, sondern ein beliebiger (oder mit kleinerer Id?) ,wo die anderen bedingugen stimmen...
ich will ja aber, daß ich mit der per url zu übergebenden variable $lang die sprache zwischen dt, fr und pl wechseln kann... und in den datenbanken habe ich dazu ja das optionsfeld "$lang" mit dt fr und pl eingerichtet..
Danke!
Antworten
Beitrag von H.Fehde (724 Beiträge) am Freitag, 6.Dezember.2002, 19:57. WWW: bei123.de
Re: Teil eines Felds vergleichen?
<perl>
get ["navipkt","==",$i,"&","lang","=~",$lang,"&","ui","==",$ui],"menupunkte";
out "<h1>$titel</h1><p>$inhalt<p>";
</perl>
Antworten
Beitrag von Michael (450 Beiträge) am Samstag, 7.Dezember.2002, 20:22.
Re: Teil eines Felds vergleichen?
nein, leider funktioniert es nicht.
das =~ bringt nicht den Feldteilinhalt...
Danke trotzdem, vielleicht kann Christoph helfen?
Antworten
Beitrag von Sander (8133 Beiträge) am Samstag, 7.Dezember.2002, 21:12.
Re: Teil eines Felds vergleichen?
<perl>
get ["navipkt","==","$i","and","ui","==","$ui"],"menupunkte";
if ($lang=~/fr/)
{
out "<h1>$titel</h1><p>$inhalt<p>";
}
</perl>
Sander
Antworten
Beitrag von H.Fehde (724 Beiträge) am Samstag, 7.Dezember.2002, 21:55.
Re: Teil eines Felds vergleichen?
..ach ich versteh, Du hast also aus deinem "Optionsfeld" durch Mehrfachauswahl praktisch ein "textarea"- Feld gemacht - das ist keine gute Lösung und führt dann zwangsläufig zu diesen Problemen.
Antworten
Beitrag von Michael (450 Beiträge) am Sonntag, 8.Dezember.2002, 19:25.
Re: Teil eines Felds vergleichen?
hallo,
ja, eben so ist es - aber wie anders sollte denn eine Lösung aussehen? Leider funktioniert die von Sander zuletzt angegebene auch nciht...
Ich schleife ja immer durch alle templates etc. die variable $lang durch, und die soll einfach verglichen werden und dann den richtigen Datensatz aus der DB ausgeben.. in der Theorie einfach, in der Praxis auch wenn ein Datensatz eindeutig zuzuordnen ist, aber bei DS die in zB. drei Sprachen verfügbar sein sollen, geht nicht...
Viele Grüße, Michael
Antworten
Beitrag von Friesecke (245 Beiträge) am Sonntag, 8.Dezember.2002, 20:14.
Re: Teil eines Felds vergleichen?
Hallo Michael,
Du mußt dafür sorgen, daß ein Datensatz immer eindeutig zuzuordnen ist. Andernfalls funktioniert eh nichts.
Und wieso "durch alle templates" ? Du hast doch wohl nicht für jeden Datensatz ein template ??
Wenn Du nach etwas suchst, z.B. eine Sprache, dann mußt Du das schon an die Datenbank übertragen.
Und warum "geht nicht" ?
Liefere mal einen Link, damit man sich ansehen kann, was Du eigentlich willst.
Gruß
Fri
Antworten
Beitrag von Michael (450 Beiträge) am Sonntag, 8.Dezember.2002, 20:37.
Re: Teil eines Felds vergleichen?
Hallo!
also noch einmal alles langsam, vielleicht war ich ja undeutlich.
ich habe eine seite, die in drei sprachen verfügbar ist. über den parameter $lang, der per url jeweils durchgeschleift wird, wird der entsprechende Datensatz aus der Datenbank geholt - normalerweise über get (lang eq "$lang"), "db";
nur manche datensätze sollen zB. in allen sprachen angezeigt werden können. daher habe ich in der DB ein Optionsfeld mit mehrfachauswahl dt, fr und pl geschaffen.
Wenn in diesem Optionsfeld dt und fr zB. angegeben sind, kann ja die Abfrage wie oben angezeigt, gar nicht laufen. klar. daher wollte ich die abfrage
"kriege den Datensatz der genau dem parameter $lang entspricht"
durch
"kriege den Datensatz der den parameter $lang _enthält_"
ersetzn. Nur das dieses leider nicht klappt.
url: zb. www.glettkau.de/baseportal/bbi/maintemplate&lang=dt
So..
Antworten
Beitrag von Friesecke (245 Beiträge) am Sonntag, 8.Dezember.2002, 21:28.
Re: Teil eines Felds vergleichen?
Hallo Michael,
ich hab schon kapiert, was Du machst. So wird es aber doch nichts, oder ?
Also ist die Frage, was Du erreichen willst, damit man Dir andere Vorschläge machen kann.
Du willst mit der Sprachkennzeichnung die Auswahl Deines linken Menus steuern ?
Stimmt das ?
Abhängig von Deinem Sprachkennzeichen mußt Du doch unterschiedliche Texte/Seiten/includes o.ä. aufrufen ?
Wie soll das denn gehen, wenn Du in Deinem Feld lang "dt fr en" stehen hast und bei einer Suche nach dt den selben Satz wie bei einer Suche nach fr oder en erhälst ?
Wie steuerst Du denn auf die richtige Seite, die Du ausgeben willst ?
Gruß
Fri
Antworten
Beitrag von Sander (8133 Beiträge) am Sonntag, 8.Dezember.2002, 22:56.
Re: Teil eines Felds vergleichen?
Antworten
Beitrag von H.Fehde (724 Beiträge) am Montag, 9.Dezember.2002, 01:23. WWW: bei123.de
Re: Teil eines Felds vergleichen?
wie ich das sehe, steuerst Du über lang= erst mal die Sprache des Auswahlmenüs und dann greifts Du mit i= auf irgendeinen Datensatz zu.
wenn auch der Inhalt mehrsprachig sein sein, dann mußt Du doch sowieso im Menü-Link ne entsprechende Nummer zum Datensatz mit dem Inhalt "in der Sprache" angeben.
Wenn z.B. für die Anzeige von z.B. "Presse" bei lang=dt die Id=2 ist dann ist für lang=fr Id=12 und wenn beide auf den gleichen Datensatz zugreifen sollen, dann halt ne Id, die für beide gilt Z.b. Id=22 - da seh ich eigentlich nicht, wo da das Problem sein soll - kann allerdings auch nicht erkennen, was Du in Deinem include=anzeigeinhalte noch so alles verarbeitest.
Antworten
Beitrag von Friesecke (245 Beiträge) am Montag, 9.Dezember.2002, 09:09.
Re: Teil eines Felds vergleichen?
Hallo H.Fehde,
mir scheint, i ist eine Variable, die er in seiner include verwendet. Dort hat er scheinbar allen Text, den er ausgibt wie folgt auszugeben:
usw.
Gruß
Fri
Antworten
Beitrag von Michael (450 Beiträge) am Montag, 9.Dezember.2002, 21:29.
Re: Teil eines Felds vergleichen?
hallo,
ich hab's jetzt einfach anders gelöst: jeder datensatz hat statt des lang-feldes drei felder mit den namen fr, dt und pl. je nachdem ist der inhalt dann 1 oder nix.
in der abfrage frage ich dann
get ["navipkt","==","$i","and","$lang","==","1","and","ui","==","$ui"],"menupunkte";
out "<h1>$titel</h1><p>$inhalt<p>";
und alles kalppt:-)))))
aber nochmals danke an alle, die helfen wollten.
achso, Sander - du wirst bald einen neuen Kunden für nextfloor haben - die firma, für ich ich arbeite;-))
gruß, Michael
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 9.Dezember.2002, 22:31.
Re: Teil eines Felds vergleichen?
Antworten
Beitrag von Friesecke (245 Beiträge) am Freitag, 6.Dezember.2002, 19:57.
Re: Teil eines Felds vergleichen?
Hallo Michael,
bist Du evtl. auf nem falschen trip?
Wenn Du ein Optionsfeld mit dt, fr, pl hast, dann steht in dem Datenbankfeld lang nur dt oder fr oder pl.
(Mehrfachauswahl muß doch ausgeschlossen sein, sonst kriegst Du das mit den Sprachen doch nicht hin ?).
Dann aber kannst Du nach lang==$lang abfragen.
Gruß
Fri
Antworten
Beitrag von Michael (450 Beiträge) am Samstag, 7.Dezember.2002, 20:19.
Re: Teil eines Felds vergleichen?
hallo,
nein, es ist schon richtig- sonst würde ich lang==$lang abfragen, aber es gibt manche seiten, die z.B. in allen drei Sprachen verfügbar sein sollen, und ich will nicht alles dreimal schreiben und dann bei, lang- feld die jeweilige sprache ankreuzen, sit ja unsijnnig und ressourcenverschewendung,-))
naja, ich versuche die Abfrage von H.Fehde, vielleicht klpappt's!
Antworten
Beitrag von Friesecke (245 Beiträge) am Samstag, 7.Dezember.2002, 21:27.
Re: Teil eines Felds vergleichen?
Hallo Michael,
da denkst Du vielleicht noch mal drüber nach.
Oder hast Du nur einen Text, egal für welche Sprache ??
Na also.
Die Ressourcen liegen vom Speichervolumen im Text und von der Zugriffszeit in Deiner Volltextsuche.
Noch merkst Du das nicht, hab mal 100.000 Sätze, dann sagt Dir die Wartezeit schon, was Du da machst.
Gruß
Fri
Antworten