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 Jürgen (614 Beiträge) am Mittwoch, 20.Februar.2019, 19:43.
    @ Perl VOLLPROFIS - DataTable

      Hallo bpler,

      ja mich gibts noch ;-)
      Hab ein kleines... NEIN... ein rießen Problem.

      Ich hab eine bpDatenbank aufgesetzt (vor ca. 3 Jahren) die per DataTable https://datatables.net/ über ein generiertes Ajax File die Daten(per pb) zur Verfügung stellt.

      DataTable bekommt von mir geliefert so z.B.:

      {
        "data": [
      ["6","Duo Sommerreifen","BRIDGESTONE","215/65 R16 98V Dueler HP Sport DOT2014","1","1","89","Halle1 A2","S32","Buttons"],
      ["8","Duo Sommerreifen","HANKOOK","205/65 R16C 107T Radial RA28 DOT2014","1","1","89","Halle1 A2","S34","Buttons"],
      ["10","Duo Sommerreifen","MICHELIN","195/65 R15 91T Energy Saver DOT2009","1","1","60","Halle1 A2","S36","Buttons"],
      
      ....
      ]
      }
      

      Sooo... jetzt sind aber über 3000 Datensätze in der Datenbank... und es dauert ewig lange die Daten in DataTable einzulesen. (ich dachte, es werden nie mehr als 500 Datensätze werden). Tja...???? Mist.... :-(
      Ich darf gar nich dran denken, wenn es mal 30000 Datensätze werden (DANN, bricht eh der Server die Laufzeit des bp-script ab) o_O

      Also, das ganze auf "Server-side processing" umbasteln...
      Aaaaber nur wie??? Ja, PHP und sql hab ich schon verstanden... nur wie mache ich das in perl(baseportal DB/template)????
      Hier das ganze in Server-side processing auf DataTable https://datatables.net/manual/server-side

      Da gibts nun zwei Sachen(Templates) "Sent parameters" und "Returned data" die umgesetzt werden MÜSSEN :-(
      Im Moment... bin ich nur am überlegen... aaaber wie???

      Hier ein Beispiel mit einer SQL DB - https://coderexample.com/demo/datatable-demo-server-side-in-phpmysql-and-ajax/

      Wenn jemand für mich einen ANSATZ hat... vielen Dank!

      Gruß
      Jugii


    Ihre Antwort:

    Name: EMail: EMail bei Antwort? WWW:
    Titel:
    Text:

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Jürgen (614 Beiträge) am Mittwoch, 20.Februar.2019, 19:43.
    @ Perl VOLLPROFIS - DataTable

      Hallo bpler,

      ja mich gibts noch ;-)
      Hab ein kleines... NEIN... ein rießen Problem.

      Ich hab eine bpDatenbank aufgesetzt (vor ca. 3 Jahren) die per DataTable https://datatables.net/ über ein generiertes Ajax File die Daten(per pb) zur Verfügung stellt.

      DataTable bekommt von mir geliefert so z.B.:

      {
        "data": [
      ["6","Duo Sommerreifen","BRIDGESTONE","215/65 R16 98V Dueler HP Sport DOT2014","1","1","89","Halle1 A2","S32","Buttons"],
      ["8","Duo Sommerreifen","HANKOOK","205/65 R16C 107T Radial RA28 DOT2014","1","1","89","Halle1 A2","S34","Buttons"],
      ["10","Duo Sommerreifen","MICHELIN","195/65 R15 91T Energy Saver DOT2009","1","1","60","Halle1 A2","S36","Buttons"],
      
      ....
      ]
      }
      

      Sooo... jetzt sind aber über 3000 Datensätze in der Datenbank... und es dauert ewig lange die Daten in DataTable einzulesen. (ich dachte, es werden nie mehr als 500 Datensätze werden). Tja...???? Mist.... :-(
      Ich darf gar nich dran denken, wenn es mal 30000 Datensätze werden (DANN, bricht eh der Server die Laufzeit des bp-script ab) o_O

      Also, das ganze auf "Server-side processing" umbasteln...
      Aaaaber nur wie??? Ja, PHP und sql hab ich schon verstanden... nur wie mache ich das in perl(baseportal DB/template)????
      Hier das ganze in Server-side processing auf DataTable https://datatables.net/manual/server-side

      Da gibts nun zwei Sachen(Templates) "Sent parameters" und "Returned data" die umgesetzt werden MÜSSEN :-(
      Im Moment... bin ich nur am überlegen... aaaber wie???

      Hier ein Beispiel mit einer SQL DB - https://coderexample.com/demo/datatable-demo-server-side-in-phpmysql-and-ajax/

      Wenn jemand für mich einen ANSATZ hat... vielen Dank!

      Gruß
      Jugii

     Antworten

    Beitrag von Peter (316 Beiträge) am Samstag, 23.Februar.2019, 15:11.
    Re: @ Perl VOLLPROFIS - DataTable

      also mal vorab ...
      dein Anliegen ist so, wie wenn einer beim Metzger nach veganen Rezepten frägt.

      Also besser wärs du würdest mit deinem Problem zum DataTable-Forum gehn.

      Zum Thema:
      Daten von 2 Server zusammenzulaufen lassen geht natürlich z.B. über einen CORS-Zugriff.
      Ist kompliziert und einer der beiden Server muß gezielt mitspielen.
      Das ist aber immer nur ne schlechte Lösung für kleine Daten.

      Wenn es eh deine Daten sind, da speicher sie doch gleich bei DataTable ab.
      Dafür sind die ja schließlich da.

      Zu deinem Daten-Format.
      {"data": ...}
      
      Das gibts in perl meines Wissens nicht.

      my $data als Referenz auf 2dim anonymArray [[...],[...],[...]]
      
      würde hingegen viel Sinn machen.

      Da könntest du dann mit
      my $zeilen=@$data;    # ---- die Anzahl der Zeilen auslesen
      
      oder mit
      foreach $data(@$data){print "$$data[0] $$data[1] ...<br>";} # ---- feld1, feld2, ....
      die Zeilen ausgeben oder in deine DB speichern.

      Vieleicht hab ich geholfen.

     Antworten

    Beitrag von Jugii (3 Beiträge) am Mittwoch, 27.Februar.2019, 22:52.
    Re: Re: @ Perl VOLLPROFIS - DataTable

      Hallo Peter,

      sorry... wusste, dass es sehr vegan schwammig war :-)
      Nur mir fehlte komplett der Ansatz... wie was jetzt...?????????????????????

      Hatte mir gedacht, vieleicht hat ja jemand schon mit DataTable und baseportal rumgebastelt... wieso dann das Rad neu erfinden??

      Anscheind hat noch keiner damit Erfahrung gesammelt... auch gut;-)

      Bin ganz gut dabei und klappt schon ganz recht fezig und schnell per Server-side processing.
      Teile auch dann das ganze, wenn es fertig ist hier im Forum/BIB!! ;-)

      Ich bin kein Perl Vollprofiii.. NEIN!! :-)

      Es gibt da bei der Blätterfunktion noch Probleme...
      Ich frag mal Sander, ob er nee Lösung für mich hat ;-)
      Guckst Du, wenn es dich interessiert.

      Gruß
      Jugii

     Antworten

    Beitrag von Sander (8074 Beiträge) am Samstag, 23.Februar.2019, 16:26.
    Re: @ Perl VOLLPROFIS - DataTable

      du kannst das mit Datatable schon weiterhin so nutzen, wie du es aktuell tust. Nur musst du auf das automatische Blättern verzichten, da DataTables selbst eine MysqlAnfrage zusammen baut. Das haut hier also nicht hin.
      Also weiterhin deine Daten in json liefern, diesmal aber mit Limit und dann die Blätterfunktion selbst dazu bauen.

     Antworten

    Beitrag von Jugii (3 Beiträge) am Mittwoch, 27.Februar.2019, 23:08.
    Re: Re: @ Perl VOLLPROFIS - DataTable

      Hey hey Sander,

      klappt ganz gut bis jetzt mit DataTable Server-side processing und baseportal ;-)
      Es geht doch!! ;-)

      Nur hab ich probleme mit der Blätterfunktion.
      Ist so.. ich hab z.B 523 Datensätze in der DB drinn... Blätterfunktion mit 10ner Schritten eingestellt.

      Das JSON/AJAX sieht z.B. so aus

      out "{\"draw\": $draw,\"recordsTotal\": $anz_all,\"recordsFiltered\": $filter,\"data\": [";
      
      ...
      out <<EOF;
      ["6","Duo Sommerreifen","BRIDGESTONE","215/65 R16 98V Dueler HP Sport DOT2014","1","1","89","Halle1 A2","S32","Buttons"],
      ["8","Duo Sommerreifen","HANKOOK","205/65 R16C 107T Radial RA28 DOT2014","1","1","89","Halle1 A2","S34","Buttons"],
      ["10","Duo Sommerreifen","MICHELIN","195/65 R15 91T Energy Saver DOT2009","1","1","60","Halle1 A2","S36","Buttons"],
      EOF
      
      ...
      out "]}";


      In der letzten Ausgabezeile, liegt der Hund begraben.... es darf dann kein ,(Komma) mehr sein!!
      Habs mit:

      $i="1";
      

      while(get_next("datatable"))
      {
      $count=$i++;
      if ($count eq $stop){$comma="";}else{$comma=",";}
      

      etc. versucht... hmmm???
      Ja, es klappt schon... sobald ich nur 10, 20, 30... 500 Datensätze habe mit nem 10ner Schritt.

      Sobald ich z.B. nur 13 Treffer hab wird's schwierig...


      Hast Du nee Idee für mich??

      Gruß
      Jugii

     Antworten

    Beitrag von Jugii (3 Beiträge) am Mittwoch, 27.Februar.2019, 23:29.
    Re: Re: Re: @ Perl VOLLPROFIS - DataTable

      Ach ja Sander.. hab ich vergessen...

      nee unelegante Lösung ist...
      alle Datensätze mit nem Komma zu versehen!
      und den letzten Datensatz nach dem while einfach mit:
      out "[\"\",\"\",\"\",\"\",\"\",\"\",\"\"]";
      
      anzugeben ;-)

      Das klappt hervorragend!!!

      ;-)

     Antworten

    Beitrag von Peter (316 Beiträge) am Donnerstag, 28.Februar.2019, 07:26.
    Re: Re: Re: Re: @ Perl VOLLPROFIS - DataTable

      schreib doch die ganze while-Schleife in einen String (z.B.: $myStr)
      nach der Schleife machst du mit 'chop($myStr);' das letzte Komma weg
      dann den String ausgeben, fertig.

     Antworten

    Beitrag von Sander (8074 Beiträge) am Donnerstag, 28.Februar.2019, 15:08.
    Re: Re: Re: Re: @ Perl VOLLPROFIS - DataTable

      aber ganz eigentlich macht man sowas sauber mit einem Array (in Perl Liste)

      while(...){
            push @ausgabe, '["6","Duo Sommerreifen","BRIDGESTONE","215/65 R16 98V Dueler HP Sport DOT2014","1","1","89","Halle1 A2","S32","Buttons"]';
      }
      

      out "{\"draw\": $draw,\"recordsTotal\": $anz_all,\"recordsFiltered\": $filter,\"data\": [";
      out join ",", @ausgabe;
      out "]}";
      


      ungefähr klar?

     Antworten


     
 Liste der ersten 150 Einträge:Einklappen Zur Eingabe 
 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.53s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!