Re: Teil eines Felds vergleichen? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Sander (8133 Beiträge) am Montag, 9.Dezember.2002, 22:31.
    Re: Teil eines Felds vergleichen?


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Michael (450 Beiträge) am Freitag, 6.Dezember.2002, 11:05.
    Teil eines Felds vergleichen?

      Hallo,

      eine hoffe ich einfache Frage:

      Wie kann ich einen eine Abfrae bauen, die überprüft, ob ein bestimmter Feldteil vertreten ist?

      Konkret: Feld $lang hat drin z.B. dt fr
      get "$lang 'enthält' fr", "db";
      

      wie soll das 'enthält' geschrieben werden?

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 6.Dezember.2002, 11:24.
    Re: Teil eines Felds vergleichen?

      sowas geht nur mit der Volltextsuche.
      oder mit der Performanceverschwendung:
      <loop code=perl>
      if ($lang=~/fr/)
      {
      out " .... ";
      }
      </loop>
      

      Sander

     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?

      normalerweise rufst du die dbs so ab:
      get "lang==$lang", "db";
      

      und wenn du mit meiner vorgeschlagenen Technik arbeiten willst, muß der datensatz, der in mehreren Sprachen da ist, auch immer die gleiche kennung haben. Alles in allem trozdem nicht wirtschaftlich:
      rid lang text
      1 de fr blaaa
      1 en it blubb
      1 pl cz lala

      Verstehst du?

      Dann kannst du auch eindeutig den DS holen mit
      get "rid==1","db";
      while(get_next"db")
      {
      if ($lang=~/fr/)
      {
       out ...
      }
      }
      


      Sander

     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:
      if i=1 -> out "aaa"
      
      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


     
 Liste der Einträge von 41851 bis 42001:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.07s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!