[SAMMELTHREAD] Kleine Coding Fragen

  • UNION ist ja nicht in der Lage, die Tabellen logisch zu verknüpfen und wäre hier eigentlich nicht dienlich. Mein erster Gedanke wäre die Tabelle B an Tabelle A LEFT JOINen und dann mittels COALESCE erst die Einträge aus B und wenn diese NULL sind eben die aus A zu nehmen. Kann später, wenn ich am PC bin mal ein Beispiel schreiben.


    /edit:
    So in etwa machen wir das auf der Arbeit, wenn wir potentiell invalide Dimensionen ranmatchen und im Falle einer fehlenden Referenz den Ursprungswert beibehalten wollen.

    SQL
    SELECT tabA.id, COALESCE(tabB.farbe, tabA.farbe), COALESCE(tabB.preis, tabA.preis)
    FROM tabA
    LEFT JOIN tabB ON tabB.user = 'test' AND tabB.id = tabA.id

    Wir haben auf der Arbeit nur Microsoft SQL, sollte aber auch in MySQL funktionieren. Dadurch, dass du im Endeffekt nur den einen Join hast, bist du so performant unterwegs, wie es geht.

    Einmal editiert, zuletzt von Ternary ()

  • Wieso hat das CSS kein Effekt auf mein HTML? Weder sind die Icons zentriert noch ist die Hintergrundfarbe schwarz.


    Code:

    Code
    <div class="social-network">
                    <a target="_blank" title="find us on Facebook" href="http://www.facebook.com/PLACEHOLDER"><img alt="follow me on facebook" src="//login.create.net/images/icons/user/facebook_40x40.png" border=0></a>
                    <a target="_blank" title="follow me on instagram" href="http://www.instagram.com/PLACEHOLDER"><img alt="follow me on instagram" src="https://c866088.ssl.cf3.rackcdn.com/assets/instagram40x40.png" border=0></a>
                    <a target="_blank" title="follow me on twitter" href="http://www.twitter.com/PLACEHOLDER"><img alt="follow me on twitter" src="//login.create.net/images/icons/user/twitter_40x40.png" border=0></a>
    		</div>


    CSS:


    Code
    .social-network {
        background-color: black;
        color:black;
        text-align: center;
    }

    Bild:
    Bildschirmfoto 2018-05-06 um 11.45.52.png



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Ehh, das funktioniert so :)


    Steht noch mehr in deinem Dokument?


    Was ist wenn du F12 drückst, sind in der Konsole Errors?

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ja klar eine ganze Website :D
    Wenn ich F12 drücke passiert nichts, ich schreibe das in einem Online Editor von one.com


    Wenn ich direkt in HTML Zentriere geht es, aber da funktioniert es nicht mit der Hintergrundfarbe.



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Dann liegt es an deinem Dokument bzw dem restlichen CSS...


    Kannst du uns evtl einen Link zu der Website schicken oder mir per PN? Dann kann ich das auflösen und hier schreiben, wieso es nicht geklappt hat.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • UNION ist ja nicht in der Lage, die Tabellen logisch zu verknüpfen und wäre hier eigentlich nicht dienlich. Mein erster Gedanke wäre die Tabelle B an Tabelle A LEFT JOINen und dann mittels COALESCE erst die Einträge aus B und wenn diese NULL sind eben die aus A zu nehmen. Kann später, wenn ich am PC bin mal ein Beispiel schreiben.


    /edit:
    So in etwa machen wir das auf der Arbeit, wenn wir potentiell invalide Dimensionen ranmatchen und im Falle einer fehlenden Referenz den Ursprungswert beibehalten wollen.

    SQL
    SELECT tabA.id, COALESCE(tabB.farbe, tabA.farbe), COALESCE(tabB.preis, tabA.preis)
    FROM tabA
    LEFT JOIN tabB ON tabB.user = 'test' AND tabB.id = tabA.id

    Wir haben auf der Arbeit nur Microsoft SQL, sollte aber auch in MySQL funktionieren. Dadurch, dass du im Endeffekt nur den einen Join hast, bist du so performant unterwegs, wie es geht.

    So hatte ich es schon, folgte aber nicht zum richtigen Ergebnis. Problem entstand hiermit beim einbeziehen der Benutzerid, da dann nur Ergebnisse angezeigt wurden bei welchen diese existierte.

  • Wäre sehr dankbar über ein paar Denkanstöße, meistens war es bei mir so, dass sobald ich den Benutzer abgefragt habe nur noch die Daten angezeigt wurden, welche er bearbeitet hatte und nicht alle weiteren.

    Nur als kleiner Hinweis wie man die Tabelle anpassen könnte wie ich persönlich solche Änderungen handhabe, vielleicht ist es für dich so auch praktischer:


    aenderungs_id id farbe preis modified user
    1 1 NULL 13,50 2018-05-06 12:00:00 Devine_
    2 2 Blau 14 2018-05-06 12:00:00 Devine_
    3 1 Gruen 13,50 2018-05-06 12:10:00 Syno
    4 1 Gruen 15 2018-05-06 12:13:00 Syno



    Dann kannst du anhand von Modified entweder den kleinsten Abfragen, welcher der "initial" wäre oder den größten, der dann die aktuellen Daten hält. Desweiteren hast du aber auch alle Änderungen dokumentiert und könntest auf einen gewissen Zeitpunkt zurückspringen o.Ä.

  • So hatte ich es schon, folgte aber nicht zum richtigen Ergebnis. Problem entstand hiermit beim einbeziehen der Benutzerid, da dann nur Ergebnisse angezeigt wurden bei welchen diese existierte.

    Hab ich was falsch verstanden? So wie ich das verstanden hatte, willst du doch sowas hier, oder nicht?


  • Es gibt noch eine weitere Tabelle User & jedesmal wenn ich diese mit eingebunden habe, wurden nur noch Daten angezeigt, bei welchem der Benutzer Eingaben gemacht hatte.


    @SynonymousZ
    Schaue ich mir später mal an, bin gerade Mobil unterwegs. Leider besteht aber keine Option die bestehenden Tabellen anzupassen.

  • Es gibt noch eine weitere Tabelle User & jedesmal wenn ich diese mit eingebunden habe, wurden nur noch Daten angezeigt, bei welchem der Benutzer Eingaben gemacht hatte.


    @SynonymousZ
    Schaue ich mir später mal an, bin gerade Mobil unterwegs. Leider besteht aber keine Option die bestehenden Tabellen anzupassen.

    Kannst du mir das Schema dieser Tabelle geben? Dann finden wir da sicher ne Lösung.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Lade ich die gerne später hoch. Aber theoretisch müsstest du nur die User Spalte in „userid“ benennen eine weitere Tabelle C (User) hinzufügen für mit dem Primärschlüssel „userid“ und dann Joinen. Also sowas:






    SQL
    SELECT tabA.id, COALESCE(tabB.farbe, tabA.farbe), COALESCE(tabB.preis, tabA.preis)
    FROM tabA
    LEFT JOIN tabB ON
     tabB.id = tabA.id
    LEFT JOIN tabC ON
     TabB.userid = tabC.id
    Where
     TabC.name = „Test“

    Ergebnis müsste dann sein alle Daten aus Tabelle A & aus Tabelle B mit den Änderungen, aber nicht doppelt und dementsprechend nur die eigenen.



    # Edit
    Ach gerade gesehen das du den Benutzer dort schon abprüfst. Ist ja im Endeffekt das selbe wie geschrieben & dementsprechend auch die Lösung. Sorry

  • Also, wenn du in der tabB nur die Nutzer-ID stehen hast, ist der performanteste Weg immer, erst die Nutzer-ID im Programmablauf herauszufinden und dann eben auf die ID zu suchen.
    Notfalls geht auch das hier:

    SQL
    SELECT tabA.id, COALESCE(tabB.farbe, tabA.farbe) AS farbe, COALESCE(tabB.preis, tabA.preis) AS preis
    FROM tabA
    LEFT JOIN tabB ON tabB.id = tabA.id AND (SELECT tabC.name FROM tabC WHERE tabC.id = tabB.userid) = 'Test'

    Das Subselect ist aber halt inperformant, weil du an jeden einzelnen Eintrag in tabB noch die UserID matchen musst. Wenn du die vorher schon kennst, kannst du dir das halt sparen.

  • Morgen,


    ich wollte einmal fragen ob hier jemand ein gutes Tutorial kennt, in dem erklärt wird wie man bei der Programmierung von Android APPs globale Datenbanken nutzt/ein bindet? :)


    MfG
    (Am Handy verfasst)


    Edit:
    Und kennt jemand eine Möglichkeit aus einer Tabelle (keine Datenbank, eine reine HTML Tabelle) einer externen Seite die Daten zu kopieren?

    Einmal editiert, zuletzt von Pytroxis ()

  • Sowas wie in deinem Edit hab ich schonmal gemacht.
    Einfach einen GET-Request auf die Seite machen, jetzt hast du den HTML- Code und dn musst du halt nurnoch auslesen anhand des Table tags oder ids die auf der Seite verwendet wurden.
    Ich hab das ganze mit Node.js, Axios und ner Library die HTML zu einen Javascript Objekt mapped gemacht.
    Vll gibt dir das ja eine kleine Hilfestellung

  • Da muss ich mir mal etwas einfallen lasen aber bis hier hin schon einmal vielen Dank :)

    Ist der Aufbau der Tabelle immer gleich? Wenn ja guck dir mal xpath an.

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

  • Ist der Aufbau der Tabelle immer gleich? Wenn ja guck dir mal xpath an.

    Danke für den Tipp, werde es mir mal anschauen.
    Werde dann versuchen, es in eine Datenbank zu speichern um es später in der Android APP abzufragen :)


    Edit:
    @Developer und auch gerne jeder andere, wie kann ich effektiv xPath (oder eine andere Möglichkeit) in Java (am besten bezogen auf Android) die Daten der Tabelle abrufen und nutzen?
    Vielleicht liegt es an mir, allerdings finde ich keine praktisches Tutorial :c

    Einmal editiert, zuletzt von Pytroxis ()

  • Zum Thema globale Datenbanken kannst du dir mal CoachDB oder Firebase anschauen, die Datenbanken kannst du direkt verbinden mit einer Android APP.


    State of the Art benutzt du für Datenbanken wie MySQL, Oracle etc... immer REST-Schnittstellen dazwischen, da die Verbindungsdaten geleakt werden können.
    Falls du dennoch zum Beispiel eine MySQL Datenbank verbinden möchtest mit der Android APP (direkt) erstelle ein User, welcher nur Leserechte besitzt auf bestimmte Tabellen. Hierfür musst du den JDBC Driver einbinden in Android.


    Zur zweiten Frage hierzu nutze ich gerne auch eine REST-Schnittstelle, via php und file_get_content kannst du externe Seiten auslesen und mit den String-Methoden kannst du dann die Daten extrahieren.


    https://stackoverflow.com/ques…from-html-table-using-php


    direkt in der android-app
    https://stackoverflow.com/ques…/android-parse-html-table



    hierzu musst du erstmal mit einer Reader-Funktion den Inhalt der Seite auslesen beispiel findest du hier


    https://stackoverflow.com/ques…tents-of-a-url-in-android



    Ich hoffe das hat dir weitergeholfen falls du noch fragen hast kannst du sie mir gerne stellen.

  • Beitrag von Pytroxis ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Bin ein Idiot ().
  • Zum Thema globale Datenbanken kannst du dir mal CoachDB oder Firebase anschauen, die Datenbanken kannst du direkt verbinden mit einer Android APP.

    Vielen dank für deine Empfehlungen.
    Welches davon würdest du denn bevorzugen?
    Finde persönlich CouchDB besser aufgrund dessen, dass man es auf seinem eigenem Server laufen lassen kann und die gleichzeitigen Verbindungen nicht limitiert sind wie bei Firebase.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen