Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: In whos_online.php den Firmennamen anzeigen lassen

    0815

    • Viel Schreiber
    • Beiträge: 905
    In whos_online.php den Firmennamen anzeigen lassen
    am: 13. September 2011, 10:52:37
    Moin,

    ich versuche gerade die "whos_online.php" aufzubohren und den Firmennamen anzeigen zu lassen.
    Da ich bei der Anpassung der Datenbankabfrage nicht weiterkomme, bräuchte ich da mal ein wenig Hilfe.

    Nachstehende Abfrage möchte ich gerne erweitern und zusätzlich aus der "TABLE_ADDRESS_BOOK" die Variable "entry_company" abfragen. Leider bekomme ich es nicht hin, den Code da funktionstüchtig mit einzubauen.

    Code: PHP  [Auswählen]
    $whos_online_query = xtc_db_query("select distinct ip_address, customer_id, full_name, time_entry, time_last_click, last_page_url, http_referer, session_id from " . TABLE_WHOS_ONLINE . ' order by time_last_click DESC');

    Wenn mir da jemand weiterhelfen könnte, wäre das klasse.
    Die gesamte Modifikation stelle ich dann nach einem Testlauf gerne hier zur Verfügung.

    Linkback: https://www.modified-shop.org/forum/index.php?topic=15292.0

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #1 am: 16. September 2011, 12:39:52
    Niemand da, der sich mit SQL-Abfragen auskennt?

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #2 am: 16. September 2011, 17:01:22
    Sollte eigentlich keine große Sache sein, wenn man sich mit SQL JOIN auskennt. :hust: :whistle:

    "whos_online" -> "customer_id" matchen auf "address_book" -> "customers_id", dann "entry_company" holen und fertig. :D

    Und nun noch in ein SQL-Statement packen... :-?

    Grüße

    Torsten

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #3 am: 17. September 2011, 18:52:02
    Wenn ich mich damit auskennen würde, hätte ich nicht gefragt.  :-(
    Klingt zwar alles ganz einfach, wurde mir aber nicht in die Wiege gelegt.

    [EDIT Tomcraft 17.09.2011: Full-Quote entfernt, siehe: FAQ: Full-Quotes und Groß-/Kleinschreibung - mit anderen Worten Netiquette!]

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #4 am: 17. September 2011, 19:00:02
    SQL ist auch nicht meine Stärke. :-/

    Ich wollte dir mit meinen Ausführungen das Thema nur pushen. ;-)

    Grüße

    Torsten

    franky_n

    • Experte
    • Beiträge: 4.950
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #5 am: 17. September 2011, 19:03:55
    Hallo 0815,

    ok dann wollen wir mal: ;)

    Code: PHP  [Auswählen]
    $whos_online_query = xtc_db_query("SELECT DISTINCT wo.ip_address,
                                                                               wo.customer_id,
                                                                               wo.full_name,
                                                                               wo.time_entry,
                                                                               wo.time_last_click,
                                                                               wo.last_page_url,
                                                                               wo.http_referer,
                                                                               wo.session_id,
                                                                               ab.entry_company
                                                                       FROM "
    . TABLE_WHOS_ONLINE . " AS wo
                                                                 LEFT JOIN "
    . TABLE_ADDRESS_BOOK . " AS ab
                                                                           ON (ab.customer_id = wo.customer_id)
                                                                  ORDER BY wo.time_last_click DESC');

    Müsste gehen, ist aber ungetestet... :)

    EDIT: customers_ids in customer_id geändert. Danke Torsten! :)

    Viele Grüße

    Franky

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #6 am: 17. September 2011, 19:20:45
    Ich glaube beim einen "customers_id" ist ein "s" zu viel. :-)

    In der einen Tabelle heisst es wirklich "customer_id" ohne "s".

    Grüße

    Torsten

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #7 am: 17. September 2011, 22:48:02
    Guten Abend und vielen Dank für den Lösungsvorschlag.

    Als ich den Code in Dreamweaver eingegeben habe, wurden mir ein Syntaxfehler angezeigt. Ich habe dann einige " gegen ' ausgestauscht und die Fehlermeldung war dann weg. Ich hoffe, ich hab' das so richtig gemacht:

    Code: PHP  [Auswählen]
    $whos_online_query = xtc_db_query("SELECT DISTINCT wo.ip_address,
                                                         wo.customer_id,
                                                         wo.full_name,
                                                         wo.time_entry,
                                                         wo.time_last_click,
                                                         wo.last_page_url,
                                                         wo.http_referer,
                                                         wo.session_id,
                                                         ab.entry_company
                                                         FROM "
    . TABLE_WHOS_ONLINE . ' AS wo
                                                         LEFT JOIN '
    . TABLE_ADDRESS_BOOK . ' AS ab
                                                         ON (ab.customer_id = wo.customer_id)
                                                         ORDER BY wo.time_last_click DESC'
    );

    Nach dem Hochladen der modifizierten Datei erhalte ich im Shop folgende Fehlermeldung:

    Code: PHP  [Auswählen]
    1054 - Unknown column 'ab.customer_id' in 'on clause'

    SELECT DISTINCT wo.ip_address, wo.customer_id, wo.full_name, wo.time_entry, wo.time_last_click, wo.last_page_url, wo.http_referer, wo.session_id, ab.entry_company FROM whos_online AS wo LEFT JOIN address_book AS ab ON (ab.customer_id = wo.customer_id) ORDER BY wo.time_last_click DESC

    Da ich nicht verstehe, was die ON Geschichte macht, verstehe ich leider nur Bahnhof.  ;-)

    Ich finde SQL ja irgendwie sehr interessant, aber ich vermute mal, dass die Chance die Programmiersprache kurzfristig zu lernen eher unwahrscheinlich ist?! Mir fehlt leider die Zeit um mich langfristig mit der Theorie zu beschäftigen. Sofern es allerdings ein einfaches Tutorial dafür gibt, würde ich mich über Links sehr freuen.

    BTW: Warum werde ich eigentlich über Antworten nicht per Mail benachrichtigt, obwohl ich alle Einstellungen dazu gemacht habe. Das neue Forum ist zwar schick, aber irgendwie stehe ich damit noch ein wenig auf dem Kriegsfuß.

    franky_n

    • Experte
    • Beiträge: 4.950
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #8 am: 17. September 2011, 23:04:34
    Hallo 0815,

    der Dreamweaver ist doof! :D
    Der macht wieder mal Sachen die total unnütz sind. Typische HTML aufzwing Geschichten...

    Also hier jetzt mal kurz die Verbesserung:

    Code: PHP  [Auswählen]
    $whos_online_query = xtc_db_query("SELECT DISTINCT wo.ip_address,
                                                                              wo.customer_id,
                                                                              wo.full_name,
                                                                              wo.time_entry,
                                                                              wo.time_last_click,
                                                                              wo.last_page_url,
                                                                              wo.http_referer,
                                                                              wo.session_id,
                                                                              ab.entry_company
                                                                      FROM "
    . TABLE_WHOS_ONLINE . " AS wo
                                                                LEFT JOIN "
    . TABLE_ADDRESS_BOOK . " AS ab
                                                                          ON (ab.customers_id = wo.customer_id)
                                                                 ORDER BY wo.time_last_click DESC"
    );
     

    So und das nicht mehr im Dreamweaver testen lassen sondern einfach einfügen...

    Viele Grüße

    Franky

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #9 am: 17. September 2011, 23:44:04
    Super, die Fehlermeldung ist schon mal weg.

    Der Firmenname wird dennoch noch nicht angezeigt?!
    ... ich werde jetzt aber mal in's Bett gehen und mir die Sache lieber morgen, im ausgeschlafenen Zustand ansehen.

    GN8

    franky_n

    • Experte
    • Beiträge: 4.950
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #10 am: 18. September 2011, 00:21:55
    Hallo 0815,

    naja Du musst natürlich noch irgendwo sagen das er dann auch "entry_company" ausgibt.
    Ihm per SQL zu sagen, dass er es raussuchen soll ist zwar schön aber bringt es dann nicht auf den Bildschirm! ;)
    Schau mal wie die anderen Werte alle ausgegeben werden wie z.B.: "full_name"

    Viele Grüße

    Franky

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #11 am: 18. September 2011, 13:20:17
    [...]
    naja Du musst natürlich noch irgendwo sagen das er dann auch "entry_company" ausgibt.
    [...]

    Das hatte ich, allerdings war da noch ein Fehler drin.
    So funktionierts nun, allerdings zerhaut's das Layout, bei allen Besuchern ohne Firmennname:

    Code: PHP  [Auswählen]
    <td class="dataTableContent" width="150px"><?php echo $whos_online['entry_company']; ?></td>

    Bei diesen Besuchern (Bots, Gästen, etc.) soll einfach eine leere Spalte mit 150 px Breite angezeigt werden, aber das will irgendwie nicht.

    Ich hänge mal der Übersicht wegen meine modifizierte whos_online.php an.

    0815

    • Viel Schreiber
    • Beiträge: 905
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #12 am: 18. September 2011, 13:57:09
    Juhu, den Anzeigefehler konnte ich selbst beheben ... auch ein blindes Huhn findet mal ein Korn.  ;-)

    Aktualisierte Datei in der Anlage.

    Einziger noch vorhandener "Schönheitsfehler". Wenn ein Kunden in seinem Adressbuch mehrere Adressen mit unterschiedlichen Firmennamen hat (z.B. Adresse für die Rechnungsanschrift mit "Handlampen GmbH" und der Lieferanschrift "Handlampen GmbH / Außenposten Nordpol / Iglo 1", wird dieser Kunde im "Wer ist Online" doppelt angezeigt, d.h. eine Zeile pro Firmennname.

    @franky_n
    Gibt's 'ne Möglichkeit, dass der Kunde nur einmalige, d.h. mit dem Firmennamen der Standardadresse angezeigt wird?

    Juan Carlos Silverio Gomez

    • Fördermitglied
    • Beiträge: 473
    • Geschlecht:
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #13 am: 18. September 2011, 14:46:46
    Hallo gefällt mir gut... :-) was muss man ändern (oder dazu fügen), damit die stadt oder provinz angezeigt wird ?

    Lg, Juan Carlos

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Re: In whos_online.php den Firmennamen anzeigen lassen
    Antwort #14 am: 18. September 2011, 15:39:02
    Du musst dazu eigentlich nur noch das SQL-Statement von Franky erweitern um die entsprechenden "ab.xyz" Spalten, da der Grundstein ja schon durch den JOIN der beiden Tabellen gelegt ist!

    Grüße

    Torsten
    1 Antworten
    1949 Aufrufe
    21. April 2014, 09:40:12 von karsta.de
    0 Antworten
    2074 Aufrufe
    01. Juni 2011, 14:24:22 von Plexus
    3 Antworten
    2802 Aufrufe
    02. März 2013, 11:27:20 von bald geloescht...
    2 Antworten
    2769 Aufrufe
    02. August 2011, 10:53:18 von Cube
               
    anything