Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Abkürzung in mysql richtig anzeigen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Abkürzung in mysql richtig anzeigen

    Hallo Forum,

    ich habe da ein Problem, was ich nicht alleine hinbekomme.

    Ich möchte durch einen klick auf einen Link eine pdf erstellen lassen. Dazu nutze ich mpdf. Funktioniert auch einwandfrei.

    In der php Datei habe ich diesbezüglich die Funktion $html='' in die das Template eingearbeitet wird. Klappt bisher auch gut. Nun muss ich jedoch Werte aus der Datenbank auslesen um die pdf zu erstellen. Klappt bisher auch gut.

    Jetzt habe ich jedoch das Problem, dass einige Angaben in der Datenbank als Abkürzungen stehen. Diese Abkürzungen werden in den Sprachdateien die sich lists_array_blabla nennen ausgelesen und auf der Seite dann angezeigt.

    Das Script was ich nutze ist ein gekauftes script, was mit php und tpl Dateien arbeitet. Ich habe mir das genau angeschaut wie die Programmierer das gemacht haben. Jedoch bekomme ich das irgendwie nicht hin.

    Beispiel: Ich lese aus der Datenbank den Wert z.B. Ex aus. In der PDF soll dann aber nicht Ex sonder Exklusiv stehen. Kann mir da vielleicht jemand helfen wie ich das zustande bekommen kann?

    Die Programmierer haben hierfür diesen Code in der tpl Datei genutzt:
    PHP-Code:
    {$myobj->generalPopulateArray($myobj->LANG_MASTER_ARR$myobj->getFormField('music_master'))} 
    Wenn ich das aber so kopiere und in die PHP Datei einfüge innerhalb von $html='' bekomme ich in der error_log folgenden Fehler:
    PHP-Code:
    Call to a member function generalPopulateArray() on a non-object in.... 
    Vielen Dank im voraus.


  • #2
    $myobj steht an der Stelle nicht zur Verfügung.
    Es wird vermutlich ein Templating existieren, über das Du einer Template-Variablen einen Wert zuweisen kannst.
    Auf diese Template-variabel kannst Du dann innerhalb des Templates zurückgreifen.

    Wie genau, kann ich nicht sagen, da ich nicht weiß, welches System Du verwendest.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Zitat von Arne Drews Beitrag anzeigen
      $myobj steht an der Stelle nicht zur Verfügung.
      Wie kann ich das dann anders schreiben?

      Kommentar


      • #4
        siehe Änderungen meiner ersten Antwort...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Gibt es denn keine Möglichkeiten die Abkürzung nun als richtigen Text anzuzeigen?

          Kommentar


          • #6
            Zitat von webmaster2208
            Das Script was ich nutze ist ein gekauftes script, was mit php und tpl Dateien arbeitet.
            Zitat von Arne Drews
            Es wird vermutlich ein Templating existieren, über das Du einer Template-Variablen einen Wert zuweisen kannst.
            Auf diese Template-variabel kannst Du dann innerhalb des Templates zurückgreifen.

            Wie genau, kann ich nicht sagen, da ich nicht weiß, welches System Du verwendest.
            Zitat von webmaster2208
            Beispiel: Ich lese aus der Datenbank den Wert z.B. Ex aus. In der PDF soll dann aber nicht Ex sonder Exklusiv stehen.
            Hast Du denn Zugriff auf die Übersetzungen, also daß Ex für Exklusiv stehen soll? Das muß ja irgendwo definiert sein.
            Künstliche Intelligenz hat nämlich recht wenig mit PHP zu tun.
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Ja klar. Die sind ja in dem Sprachdateien Ordner. Wie gesagt, es wird ja bereits an mehreren Stellen genutzt. Nur so wie ich das jetzt noch zusätzlich nutzen möchte um eine PDF zu erstellen, klappt es nicht es so zu programmieren wie die Entwickler das gemacht haben. Daher suche ich nun eine Alternativmöglichkeit.
              Ich gehe jetzt mal von dem Beispiel Ex weg. So sieht es in der Sprachdatei aus.

              PHP-Code:
              $LANG_LIST_ARR['master'] = array(
                      
              'NO' => 'Nein',
                      
              'J1' => 'Ja, WAVE 16 Bit unkomprimiert',
                      
              'J2' => 'Ja, WAVE 24 Bit unkomprimiert',
                      
              'J3' => 'Ja, AIFF 16 Bit unkomprimiert',        
                      
              'J4' => 'Ja, AIFF 24 Bit unkomprimiert'); 

              Kommentar


              • #8
                Ja, um z.B. "Nein" zu bekommen, mußt Du nur
                PHP-Code:
                $LANG_LIST_ARR['master']['NO'
                ziehen, oder ich verstehe Dich nicht, sorry!
                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                Kommentar


                • #9
                  Zitat von Arne Drews Beitrag anzeigen
                  Ja, um z.B. "Nein" zu bekommen, mußt Du nur
                  PHP-Code:
                  $LANG_LIST_ARR['master']['NO'
                  ziehen, oder ich verstehe Dich nicht, sorry!

                  Leider klappt auch das nicht.

                  Der Entwickler hat z.B. in den PHP Dateien wo die richtigen Texte abgerufen werden, noch diese Funktion stehen:
                  PHP-Code:
                  $transactiondetails->LANG_MASTER_ARR $LANG_LIST_ARR['master']; 
                  In der dementsprechenden TPL Datei wird es dann so abgerufen:
                  PHP-Code:
                  {$myobj->generalPopulateArray($myobj->LANG_MASTER_ARR$myobj->getFormField('music_master'))} 
                  Ich befinde mich jedoch innerhalb einer PHP Datei und muss mittels mpdf ein PDF Template erstellen. Diese soll aufgrund von jeweiligen Datenbankeinträgen erstellt werden. So sieht es die mpdf Konfiguration:

                  PHP-Code:
                                  $mpdf = new mPDF();
                                  
                  $mpdf->useOnlyCoreFonts true;    // false is default
                                  
                  $mpdf->SetProtection(array('print'));
                                  
                  $mpdf->SetTitle("Nutzungsvertrag");
                                  
                  $mpdf->SetAuthor("www.youbeats.net");
                                  
                  $mpdf->SetCreator('Nutzungsvertrag / Invoice');
                                  
                  $mpdf->SetWatermarkText("www.youbeats.net");
                                  
                  $mpdf->showWatermarkText true;
                                  
                  $mpdf->watermark_font 'DejaVuSansCondensed';
                                  
                  $mpdf->watermarkTextAlpha 0.025;
                                  
                  $mpdf->SetDisplayMode('fullpage');
                                  
                  $name 'Vertrag zu '.$row['music_title'] .$row['seller_name']. " www.youbeats.net".".pdf";
                                  
                  $html '
                                  
                                  '
                  .$row['music_master'].'
                                  

                                  '
                  .$LANG_LIST_ARR['master']['NO'].'
                                  
                                  
                                  '
                  .$LANG_LIST_ARR['master'].$row['music_master'].'
                                  
                                  '
                  ;
                                  
                  $mpdf->WriteHTML($html);
                                  
                  $mpdf->Output($name,'I');
                                  exit; 
                  Mit
                  PHP-Code:
                  '.$row['music_master'].' 
                  und
                  PHP-Code:
                  '.$LANG_LIST_ARR['master'].$row['music_master'].' 
                  wird mir die jeweilige Abkürzung ausgegeben.

                  Mit deinem Lösungsvorschlag kommt bisher nichts. error_log hat diesbezüglich auch nichts. Leider

                  Kommentar


                  • #10
                    Also ich weiß nicht, was genau Du willst!
                    PHP-Code:
                    $transactiondetails->LANG_MASTER_ARR $LANG_LIST_ARR['master']; 
                    macht nichts anderes, als das komplette Array $LANG_LIST_ARR['master'] in $transactiondetails->LANG_MASTER_ARR zu ziehen.

                    Wo ist denn nun das Problem, einfach darauf zuzugreifen:
                    PHP-Code:
                    echo $transactiondetails->LANG_MASTER_ARR['NO']; // gibt das "Nein" aus! 
                    Alternativ geht's halt auch direkt:
                    PHP-Code:
                    echo $LANG_LIST_ARR['master']['NO']; // gibt auch das "Nein" aus! 

                    EDIT:
                    PHP-Code:
                    $LANG_LIST_ARR['master'].$row['music_master']

                    /*
                        $LANG_LIST_ARR['master'] ist ein ARRAY !!!
                        was $row['music_master'] bei Dir ist, kann ich nicht sehen.
                        Wie dem auch sein ist ja schon mal der erste Teil falsch!
                    */ 
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      PHP-Code:
                      .$row['music_master'
                      gibt den Eintrag in der sql Spalte aus. Aber nur die Abkürzung.

                      Welchen ersten teil meinst du?

                      Ich habe nun deine Tipps eingetragen, bekomme aber keine Einträge hierzu.
                      PHP-Code:
                              $mpdf->watermarkTextAlpha 0.025;
                                      
                      $mpdf->SetDisplayMode('fullpage');
                                      
                      $name 'Vertrag zu '.$row['music_title'] .$row['seller_name']. " www.youbeats.net".".pdf";
                                      
                      $html '
                                      
                                      '
                      .$transactiondetails->LANG_MASTER_ARR['NO'].'  
                                      '
                      .$LANG_LIST_ARR['master']['NO'].'
                                      
                                      '
                      ;
                                      
                      $mpdf->WriteHTML($html);
                                      
                      $mpdf->Output($name,'I');
                                      exit; 
                      http://www.youbeats.net/1.png


                      Bei
                      PHP-Code:
                                      $mpdf->SetDisplayMode('fullpage');
                                      
                      $name 'Vertrag zu '.$row['music_title'] .$row['seller_name']. " www.youbeats.net".".pdf";
                                      
                      $html '
                                      
                                      
                                      '
                      .$row['music_master'].'
                                      
                                      '
                      ;
                                      
                      $mpdf->WriteHTML($html);
                                      
                      $mpdf->Output($name,'I');
                                      exit; 
                      http://www.youbeats.net/2.png
                      bekomme ich die Spalte angezeigt und muss diese Abkürzung nun aus der Sprachdatei ziehen. Klappt ja nicht.

                      Kommentar


                      • #12
                        Ja gut, dann enthält $row['music_master'] quasi den KeyName des Value, den Du aus $LANG_LIST_ARR['master'] brauchst:
                        PHP-Code:
                        $LANG_LIST_ARR['master'][ $row['music_master'] ]; 
                        , um das jetzt unschön einfach mal nur erklären zu wollen.
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          Zitat von Arne Drews Beitrag anzeigen
                          Ja gut, dann enthält $row['music_master'] quasi den KeyName des Value, den Du aus $LANG_LIST_ARR['master'] brauchst:
                          PHP-Code:
                          $LANG_LIST_ARR['master'][ $row['music_master'] ]; 
                          , um das jetzt unschön einfach mal nur erklären zu wollen.
                          Also......ich war ja schon fast aufm richtigen Weg. Ich hatte es immer mit
                          PHP-Code:
                          $LANG_LIST_ARR['master'].$row['music_master'
                          versucht.

                          Mit deiner eckigen Klammer
                          PHP-Code:
                          $LANG_LIST_ARR['master'][ $row['music_master'] ] 
                          funktioniert es nun. ABER.....das Problem lag auch noch woanders.

                          Es gibt immer zwei Ordner bei meinem Script.
                          In dem einen (voll mit PHP Dateien) sind die ganzen Dateien included und vorgegeben die mit für die jeweilige Seite eingebunden werden, in einem anderen Ordner(alles gleiche PHP Dateinamen) sind die Befehle und Funktionen die dann in TPL Dateien angezeigt werden. Ich habe wie alle anderen Sprachdateien, in diesem Fall die list_array Sprachdatei eingebunden wie sonst auch immer.
                          PHP-Code:
                          $CFG['lang']['include_files'][] = 'XXX/XXX/music/language_list_array.inc.php'
                          Jedoch wird sie nicht geladen oder die Funktion die ich für die PDF erstellt habe, kann sie nicht laden.

                          Also....habe ich
                          PHP-Code:
                                          $LANG_LIST_ARR['master'] = array(
                                              
                          'NO' => 'Nein',
                                              
                          'J1' => 'Ja, WAVE 16 Bit unkomprimiert',
                                              
                          'J2' => 'Ja, WAVE 24 Bit unkomprimiert',
                                              
                          'J3' => 'Ja, AIFF 16 Bit unkomprimiert',        
                                              
                          'J4' => 'Ja, AIFF 24 Bit unkomprimiert'); 
                          in meine Funktion kopiert und siehe da.....Mein PDF gab "NEIN" aus statt NO. So wie es sein sollte.
                          Ich habe diese Sprachliste dann an den Anfang der PHP Datei verschoben und siehe da....es gab wieder NO. Wieder falsch. Wieso wird die Sprachdatei nicht in die Funktion geladen. Muss ich das verstehen. Alle anderen Sprachverknüpfungen werden doch auch gefunden!! Ich habe diese Liste dann in die Datei kopiert wo all meine in dieser Funktion eingebundenden Sprachen geladen werden. Die Liste wird aber nicht geladen
                          Ich habe nur die Möglichkeit die Liste in die Funktion zu verbauen. Wo ist das Problem???

                          Kommentar


                          • #14
                            Wir bewegen uns in Richtung Glaskugel-Quiz.
                            Poste bitte Deine komplette Funktion und beschreib, was genau Du versucht hast.
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              Also...Beispiel Seite hallo soll geöffnet werden. Die erste Datei im Ordner X nennt sich hallo.php. Die Zweite nennt sich in Ordner Y auch hallo.php
                              In der ersten Datei wird alles included was man zur Darstellung der Seite braucht. Auch die Sprachdateien! So sieht dann ,meine erste Datei aus:
                              PHP-Code:
                              <?php
                              require_once('XXX/XXX/configs/config.inc.php');
                              require_once(
                              'XXX/XXXcommon/configs/XXXXXXt.inc.php');
                              $CFG['lang']['include_files'][] = 'XXX/XXX/music/transactionList.php';              
                              $CFG['lang']['include_files'][] = 'XXX/XXX/music/help.inc.php';
                              $CFG['lang']['include_files'][] = 'XXX/XXX/music/language_list_array.inc.php';   //<- Hier sollte die List Array abgerufen
                              $CFG['mods']['include_files'][] = 'XXX/XXX/classes/class_ListRecordsHandler.lib.php';
                              $CFG['mods']['include_files'][] = 'XXX/XXXn/classes/class_MediaHandler.lib.php';
                              $CFG['mods']['include_files'][] = 'XXX/XXX/classes/class_MusicHandler.lib.php';
                              $CFG['site']['is_module_page']='music';
                              if(isset(
                              $_REQUEST['light_window']))
                                  {
                                      
                              $CFG['html']['header'] = 'general/html_header_no_header.php';
                                      
                              $CFG['html']['footer'] = 'general/html_footer_no_footer.php';
                                      
                              $CFG['mods']['is_include_only']['html_header'] = false;
                                      
                              $CFG['html']['is_use_header'] = false;
                                      
                              $CFG['admin']['light_window_page'] = true;
                                      
                              //To show session expired content inside lightwindow if session got expired
                                      
                              $CFG['admin']['session_redirect_light_window_page'] = true;
                                  }
                              else
                                  {
                                      
                              $CFG['html']['header'] = 'XXX/XXX/html_header.php';
                                      
                              $CFG['html']['footer'] = 'XXX/XXX/html_footer.php';
                                      
                              $CFG['mods']['is_include_only']['html_header'] = false;
                                      
                              $CFG['html']['is_use_header'] = false;
                                  }
                              $CFG['admin']['calendar_page'] = true;
                              require(
                              $CFG['site']['project_path'].'XXX/XXX/application_top.inc.php');
                              if(
                              isMember())
                                  
                              $CFG['admin']['light_window_page'] = true;
                              require_once(
                              'XXX/XXX/general/listenerTransactionList.php');
                              ?>

                              In meiner zweiten Datei sind alle Funktionen. So sieht meine eine Funktion in der Datei aus, die ich brauche um die PDF zu erstellen.
                              PHP-Code:
                                      public function displayContractDetailsList($music_order_id='')
                                      {
                                          global 
                              $smartyObj;
                                          
                              $displayDetails_arr = array();
                                              
                                              
                              $sql 'SELECT .........
                              ......
                              ......
                                                              FROM '
                              .
                                              
                              $this->CFG['db']['tbl']['XXX'].' AS m LEFT JOIN '.
                                              
                              $this->CFG['db']['tbl']['XXX'].' as mp ON mp.XXX_id=m.XXX_id LEFT JOIN '.
                                              
                              $this->CFG['db']['tbl']['XXX'].' AS u ON mp.XXX_id = u.XXX_id LEFT JOIN '.
                                              
                              $this->CFG['db']['tbl']['XXX'].' AS mca ON mca.XXX_id = mp.XXX_id '.
                                              
                              ' WHERE mp.XXX_id = '.$this->CFG['XXX']['XXX'].' AND mp.XXXd = '.$this->dbObj->Param('XXX_XXX_id').
                                              
                              ' GROUP BY mp.XXX_XXX_id ';
                                                              
                                          
                              $stmt $this->dbObj->Prepare($sql);
                                          
                              $rs $this->dbObj->Execute($stmt, array($XXXX));
                                          if (!
                              $rs)
                                              
                              trigger_error($this->dbObj->ErrorNo().' '.
                                              
                              $this->dbObj->ErrorMsg(), E_USER_ERROR);
                                          
                              $displayDetails_arr['record_count'] = false;
                                          if(
                              $row $rs->FetchRow())
                                          {
                                              
                              $displayDetails_arr['record_count'] = true;
                                              
                              $displayDetails_arr['music'] = true;

                                              
                                              
                              $LANG_LIST_ARR['master'] = array(                //Musste ich jetzt hier reinkopieren
                                                  
                              'NO' => 'Nein',                                // da die LANG Datei nicht hier abgerufen                         
                                                  
                              'J1' => 'Ja, WAVE 16 Bit unkomprimiert',    //wird????
                                                  
                              'J2' => 'Ja, WAVE 24 Bit unkomprimiert',
                                                  
                              'J3' => 'Ja, AIFF 16 Bit unkomprimiert',        
                                                  
                              'J4' => 'Ja, AIFF 24 Bit unkomprimiert');



                                              
                              $mpdf = new mPDF();
                                              
                              $mpdf->useOnlyCoreFonts true;    // false is default
                                              
                              $mpdf->SetProtection(array('print'));
                                              
                              $mpdf->SetTitle("Nutzungsvertrag");
                                              
                              $mpdf->SetAuthor("www.youbeats.net");
                                              
                              $mpdf->SetCreator('Nutzungsvertrag / Contract');
                                              
                              $mpdf->SetWatermarkText("www.youbeats.net");
                                              
                              $mpdf->showWatermarkText true;
                                              
                              $mpdf->watermark_font 'DejaVuSansCondensed';
                                              
                              $mpdf->watermarkTextAlpha 0.025;
                                              
                              $mpdf->SetDisplayMode('fullpage');
                                              
                              $name 'Vertrag zu '.$row['music_title'] .$row['seller_name']. " www.youbeats.net".".pdf";
                                              
                              $html '
                                              
                                              
                                              '
                              .$LANG_LIST_ARR['master'][$row['music_master']] .'
                                              

                                              '
                              ;
                                              
                              $mpdf->WriteHTML($html);
                                              
                              $mpdf->Output($name,'I');
                                              exit;


                                              }
                                          
                              $smartyObj->assign('displayDetails_arr'$displayDetails_arr);
                                      } 
                              Diese Liste
                              PHP-Code:
                                              $LANG_LIST_ARR['master'] = array(
                                                  
                              'NO' => 'Nein',
                                                  
                              'J1' => 'Ja, WAVE 16 Bit unkomprimiert',
                                                  
                              'J2' => 'Ja, WAVE 24 Bit unkomprimiert',
                                                  
                              'J3' => 'Ja, AIFF 16 Bit unkomprimiert',        
                                                  
                              'J4' => 'Ja, AIFF 24 Bit unkomprimiert'); 
                              sollte nun eigentlich aus der
                              PHP-Code:
                              language_list_array.inc.php 
                              ausgelesen werden. Tut es aber nicht. Daher musste ich die Liste in die Funktion mit reinkopieren.

                              Kommentar

                              Lädt...
                              X