Re: HELP!! Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen - 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 (32 Beiträge) am Dienstag, 17.Dezember.2002, 19:39.
    Re: HELP!! Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      ach da liegt das Problem....
      na das geht einfach zu lösen:
      $var=~s/ /\\ /g;
      get "feld==$var"....
      

      Sander


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Ernst (6 Beiträge) am Montag, 9.Dezember.2002, 18:49.
    Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hallo,
      ich habe folgendes Problem: Ich möchte eine Datenbank "Titel" aufbauen, in der neben den Feldern Autor, Buchtitel, auch eine Fachbezeichnung erfasst werden soll. Diese soll aber nicht ausgeschrieben erfasst werden, sondern als Kürzel, z.B. bell 1 (für Belletristik: allgemein), bell 2 (für Belletristik: Krimis), gesch 1 (für Geschichte: Deutsche Geschichte) etc.

      Diese Fachbezeichnungen - stell ich mir mal so vor - würde ich gerne in einer eigenen Datenbank - Name "Fach" - verwalten, die eigentlich nur aus den beiden Feldern "Fachgebiet" und "Fachkuerzel" bestehen sollte.
      Datensätze in dieser Datenbank sähen dann z.B. so aus:
      ---------
      Fachgebiet: Belletristik allgemein
      Fachkuerzel: bell 1
      ----------
      Fachgebiet: Belletristik Krimis
      Fachkuerzel: bell 2
      ----------
      Fachgebiet: Geschichte: Deutsche Geschichte
      Fachkuerzel: gesch 1
      ----------

      Frage: Wie kann ich jetzt erreichen, dass bei der Datenbankausgabe eines Datensatzes aus der Titeldatenbank anstelle des Fachkürzels das Fachgebiet angezeigt wird? Geht das überhaupt?

      Vielen Dank & Grüße

      Ernst

     Antworten

    Beitrag von Friesecke (245 Beiträge) am Montag, 9.Dezember.2002, 19:39.
    Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hallo Ernst,

      geht. Steht in der Doku unter verschachtelten get`s irgendwo.
      Mußt mal schauen.
      Gruß
      Fri

     Antworten

    Beitrag von Michael (450 Beiträge) am Mittwoch, 11.Dezember.2002, 08:31.
    Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      hallo,
      angenommen, in der DB Titel heißt das Kuerzel-Feld "Kuerzel":


      get "Fachkurzuel==$Kkuerzel","Fach";
      out "$Fachgebiet";
      


      Michal

     Antworten

    Beitrag von Ernst (14 Beiträge) am Freitag, 13.Dezember.2002, 14:55.
    Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hallo Michael etc.,

      vielen Dank fuer Eure Hilfe. Habe jetzt ein Template gebastelt, das auch prinzipiell funktioniert:

      --------

      <perl>
      get "Id==*", "titel"; 
      out "<a href=http://baseportal.de/cgi-bin/baseportal.pl?htx=/xyz/detail&Id=$_id>$Autor:</a><br>";
      out "$Buchtitel<br>";
      get "Kuerzel==$Fachkuerzel", "fach";
      out "$Fachgebiet<p>";
      </perl>
      

      ---------

      Ich erhalte so aber nur den ersten Datensatz der Datenbank "titel". Kann mir vielleicht jemand
      kurz sagen, wie ich *alle" Datensätze erhalte?

      Danke, Grüße & ein schönes Wochenende

      Ernst

     Antworten

    Beitrag von Ernst (14 Beiträge) am Montag, 16.Dezember.2002, 09:42.
    Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hallo,

      ich nochmal. Könnte mir vielleicht jemand n Tipp geben!
      - Das u.g. Template, das ich gebastelt habe, funktioniert prinzipiell.

      --------

      <perl>
      get "Id==*", "titel";
      out "<a href=http://baseportal.de/cgi-bin/baseportal.pl?htx=/xyz/detail&Id=$_id>$Autor:</a>
      
      ";
      out "$Buchtitel<br>";
      get "Kuerzel==$Fachkuerzel", "fach";
      out "$Fachgebiet<p>";
      </perl>
      

      ---------

      Ich erhalte so aber *nur den ersten* Datensatz der Datenbank "titel". Kann mir vielleicht jemand
      kurz sagen, wie ich *alle" Datensätze erhalte?

      Vielen Dank& Grüße
      Ernst

     Antworten

    Beitrag von Friesecke (245 Beiträge) am Montag, 16.Dezember.2002, 10:03.
    Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hallo Ernst,

      mit get_next - s. Doku
      Gruß
      Fri

     Antworten

    Beitrag von Ernst (14 Beiträge) am Montag, 16.Dezember.2002, 13:41.
    Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hi,
      erst Mal vielen Dank fuer Deinen Hinweis. Habe den Code jetzt ff. korrigiert:

      ----
      <perl>
      get "Id==*", "titel"; 
      while(get_next("titel"))
      {
      out "<a href=
      http://baseportal.de/cgi-bin/baseportal.pl?htx=/test/detail_titel&Id=$_id>$Autor:</a><br>";
      out "$Buchtitel<br>";
      out "Fachgebiet: $Kuerzel = ";
      get "Kuerzel==$Fachkuerzel", "fach";
      out "$Fachgebiet<p>";
      }
      </perl>
      
      ------------------

      Heraus kommt jetzt:

      -----------
      Mann, Golo:
      Deutsche Geschichte seit 1945
      Fachgebiet: gesch 8 = Geschichte. Deutschland. 1945 -

      Maier, Gerd:
      Lehrbuch der chemischen Technik
      Fachgebiet: chet 4 =
      [ Fehler: Feld (Kuerzel) in nicht vorhanden

      Ursache: Das Feld Kuerzel wurde in der Datenbank nicht definiert. Vielleicht haben Sie sich bei der Abfrage auch nur verschrieben?

      Lösungen: 1. Korrigieren Sie Ihre Abfrage. 2. Gehen Sie in Ihren privaten Bereich (Anmelden), wählen Sie die entsprechende Datenbank aus, klicken Sie auf 'Felder' und fügen Sie das gewünschte Feld hinzu. ]
      Geschichte. Deutschland. 1945 -
      ---------
      Kann mir jemand nochmal n Tipp geben, wie ich diesen letzten Fehler behebe, dass also auch bei den Sätzen 2,3 etc. nach dem Kürzle das fachgebiet ausgegebn wird.

      Danke fuer die Hilfe und sorry wenn ich nerve - ist aber wichtig für mich ...

      Ernst

     Antworten

    Beitrag von Friesecke (245 Beiträge) am Montag, 16.Dezember.2002, 16:23.
    Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hallo Ernst,

      meinst Du in der vorletzten Zeile nicht
      get "Fachkuerzel==$Kuerzel", "fach"; ???
      
      sonst ist Fachkuerzel doch nicht definiert.
      Gruß
      Fri

     Antworten

    Beitrag von Ernst (14 Beiträge) am Montag, 16.Dezember.2002, 16:56.
    Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hi,
      uch denke, dass die vorletzte Zeile eigentlich schon okay ist, denn beim ersten Titel bewirkt sie ja die Anzeige so, wie ich sie möchte:
      ---------
      Mann, Golo:
      Deutsche Geschichte seit 1945
      Fachgebiet: gesch 8 = Geschichte. Deutschland. 1945
      ---------

      Wenn ich den Code ändere in:
      ---------
      <perl>
      get "Id==*", "titel"; 
      while(get_next("titel"))
      {
      out "<a href=http://baseportal.de/cgi-bin/baseportal.pl?htx=/test/detail_titel&Id=$_id>$Autor:</a><br>";
      out "$Buchtitel<br>";
      out "Fachgebiet: $Kuerzel = ";
      get "Fachkuerzel==$Kuerzel", "fach";
      out "$Fachgebiet<p>";
      }
      </perl>
      
      ---------
      erhalt ich wieder ne Anzeige ohne das Fachgebiet:

      Mann, Golo:
      Deutsche Geschichte seit 1945
      Fachgebiet: gesch 8 =

      Maier, Gerd:
      Lehrbuch der chemischen Technik
      Fachgebiet: chet 4 =

      ---
      Mein Problem ist, dass er die Umsetzung nur beim ersten
      Satz richtig vornimmt.

      Viele Grüße

      Ernst

     Antworten

    Beitrag von Friesecke (245 Beiträge) am Montag, 16.Dezember.2002, 17:10.
    Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hallo Ernst,

      Du weißt doch, wie das Datenbankfeld in fach heißt:

      Kuerzel oder Fachkuerzel ?

      Wenn Fachkuerzel : dann scheinbar o.k., aber Fachgebiet nicht gefunden.
      Wenn Kuerzel, wo wird dann $Fachkuerzel definiert ??
      Klär erst mal das.
      Es kann noch ein Problem der doppelten Verwendung des Felds Kuerzel sein.
      Gruß
      Fri

     Antworten

    Beitrag von Ernst (14 Beiträge) am Dienstag, 17.Dezember.2002, 14:40.
    HELP!! Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hi,
      das Datenbankfeld in fach heisst Fachkuerzel.
      - Aber ich glaub ich geb's auf!! Hab jetzt alles mögliche ausprobiert und entweder hab ich nur die Kurzbezeichnung (Kuerzel = Fachkuerzel) angezeigt bekommen oder beim ersten ausgegeben Datensatz alles (also Kurzbezeichnung + Fachgebiet)so wies sein sollte aber bei den restlichen Datensätzen anstelle des Fachgebiets nur Fehlermeldungen. Kann einer der CRACKs sich mal erbarmen !!!!

      Gruesse

      Ernst

     Antworten

    Beitrag von Friesecke (245 Beiträge) am Dienstag, 17.Dezember.2002, 17:02.
    Re: HELP!! Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hallo Ernst,

      wenn Dein Datenbankfeld Fachkuerzel heißt, mußt Du auch
      get "Fachkuerzel==$Kuerzel" schreiben und nichts anderes.
      
      Dann kommt keine Fehlermeldung, aber auch keine Ausgabe des Fachgebiets. Dies ist auch kein Wunder.
      Dann mußt Du auch Fachgebiet ausgeben, also out "$Fachgebiet <br>"; und nicht out "$Fachgebiet<p>";. Fachgebiet<p> ist nicht definiert.
      Dazu muß man aber nicht CRACK sein.
      Gruß
      Fri

     Antworten

    Beitrag von Sander (8133 Beiträge) am Dienstag, 17.Dezember.2002, 17:33.
    Re: HELP!! Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      >>Dann mußt Du auch Fachgebiet ausgeben, also out "$Fachgebiet <br>"; und nicht out "$Fachgebiet<p>";. Fachgebiet<p> ist nicht definiert.
      

      wenn $Fachgebiet in der db drin ist wird es auch mit
      out "$Fachgebiet<p>"; ausgegeben
      
      perl merkt schon, wo eine Var zu ende ist, da braucht es kein leerzeichen. ;-) Probleme gibts nur, wenn ein weiteres Wort ohne leerzeichen dranhängt.

      Aber warum nach dem ersten loop die anzeige versagt, bzw ein error kommt, kann ich auch nicht sagen...

      Am besten postest du mal deine komplette struktur der dbs mit einem beispiel

      Sander

     Antworten

    Beitrag von Friesecke (245 Beiträge) am Dienstag, 17.Dezember.2002, 18:24.
    Re: HELP!! Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      Hallo Sander,

      da hast Du recht. Sorry. Ich bin mir lieber immer bewußt, daß leer = Trennzeichen ist bzw. sein kann.
      Und letztlich liegt da wohl doch der casus belli.
      Er hat Fachkürzel mit Leerzeichen wie "gesch 8", etc.

      Wenn $var = "gesch 8"; ist,
      dann findet
      get "feld==$var" 
      
      nicht den Satz.
      Wegen des Leerzeichens.
      Er muß dann eben "gesch8" nehmen.
      Gruß
      Fri

     Antworten

    Beitrag von Sander (32 Beiträge) am Dienstag, 17.Dezember.2002, 19:39.
    Re: HELP!! Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung ersetzen

      ach da liegt das Problem....
      na das geht einfach zu lösen:
      $var=~s/ /\\ /g;
      get "feld==$var"....
      

      Sander

     Antworten

    Beitrag von Ernst (14 Beiträge) am Mittwoch, 18.Dezember.2002, 11:22.
    Re: HELP!! Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung erse

      Vielen Dank Euch allen für Eure Hilfe!!!
      Das Skript funktioniert jetzt soweit und
      liefert mir auch zu jedem Titel das zugehörige Fachkürzel und Fachgebiet - super!

      <perl>
      get "Id==*", "titel";
      while(get_next("titel"))
      {
      out "$Autor:<br>";
      out "$Buchtitel<br>";
      out "Fachgebiet: $Kuerzel = ";
      get "Fachkuerzel==$Kuerzel", "fach";
      out "$Fachgebiet<p>";
      }
      </perl>
      

      Eine Bitte - trau mich ja schon fast nicht mehr zu fragen :-( - hätt ich allerdings noch. Sander, könntest Du mir konkret sagen, wo/wie ich Dein Codschnipsel

      $var=~s/ /\\ /g;
      get "feld==$var"....
      

      in den oben aufgefuehrten Code einbaue, dass auch z.B. gesch 8 funktioniert? Dann wär's perfekt!!

      Vielen, vielen Dank
      & Grüße
      

      Ernst

     Antworten

    Beitrag von Friesecke (245 Beiträge) am Mittwoch, 18.Dezember.2002, 11:48.
    Re: HELP!! Re: Datenbankausgabe: Kurzbenennund duch ausführliche Benennung erse

      Hallo Ernst,

      Dein Kuerzel ist eingetragen mit gesch 8, etc.
      zwischen out "Fachgebiet $Kuerzel ...
      und dem get mußt Du einfügen

      $Kuerzel=~s/ /\\ /g;
      

      Aber das ist jedesmal suchen+ersetzen. Das vermeidest Du mit gesch8 ohne Leerzeichen.
      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.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!