Beiträge von diltigug

    Hallo marX,

    mir fehlt einfach Grundwissen in Bezug auf Klassen und deren Anwendung. Und alles was ich dazu lese, verstehe ich im Moment nicht wirklich. Ziemlich frustrierend.

    Ich habe es mal mit Deinem Code probiert, habe aber jetzt z. B. überhaupt keine Ahnung, wie ich die Daten denn damit ausgeben kann.

    Mir ist klar, das das Forum hier kein PHP-Grundkurs sein kann, aber vielleicht kannst Du mir ja doch nochmal weiterhelfen?

    Hier mal mein bisherigen Code im Zusammenhang:

    Ich würde die Tabellen so gerne in dem Blog ausgeben, wäre ein echter Mehrwert für unser Büro-Intranet.

    Gruß, diltigug

    Als erstes würde ich mal mit Prepared Statements arbeiten, statt irgendwelche Werte direkt in die Query zu tippen. Siehe hier:
    WordPress Coding Standards « WordPress Codex
    (Abschnitt "Formatting SQL statements")
    Möglicherweise behebt das bereits das Problem, da hier Escaping und Quoting der Daten die WPDB-Klasse für dich übernimmt und so eine mögliche Fehlerquelle ausgeschlossen wird.


    Prepared Statements ? in die Query zu tippen ? WP-DB-Klasse nutzen ?

    So langsam komme ich da als Hobby-WPler doch ins schwitzen :???:.
    Aber egal, ich werde trotz meiner beschränkten Englischkenntnisse mal mit dem Codex-Link beschäftigen. Auf den ersten Blick wird da der SQL-String irgendwie so übergeben (Bsp. aus dem WP Codex):

    Zitat

    $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_title = %s WHERE ID = %d", $var, $id ) );

    Das habe ich bisher nicht so gemacht. Demnach sähe die Abfrage ungefähr so aus:

    Code
    $wpdb->query( $wpdb->prepare( "SELECT $wpdb-> * FROM mitarbeiter WHERE ort='büro' ORDER BY lastname firstname ASC ) );

    richtig? Wenn ja, werde ich damit nachher mal rumspielen. Mein SQL-String wird ja auch noch durch eine if-Abfrage zusammengesetzt. Aber ich glaub, das bekomme ich hin.
    Bin jetzt aber erstmal weg, melde mich auf jeden Fall nochmal, ob es klappt.
    Jedenfalls schon jetzt mal danke für diesen Super-Support von Euch.
    Ich glaube, ohne dieses Forum wären meine autodidaktischen Fähigkeiten schon lange an ihre Grenzen gestossen.

    diltigug

    Warum enthält der Spaltenname Umlaute? Welche Zeichencodierung ist für die MySQL-Verbindung vorgesehen?
    Editing wp-config.php « WordPress Codex

    Enthält er eigentlich nicht die colum heisst "ort" und aus der soll er mir alle Einträge rausholen die "Büro" enthalten. Oder steh´ da gerade auf dem Schlauch?

    Das mit der Zeichencodierung ist interessant, z. Zt. sieht die wp-config bei mir so aus:

    Zitat

    define('DB_CHARSET', 'utf8');
    define('DB_COLLATE', '');

    Muss ich bei DB_COLLATE vielleicht was definieren?

    Wenn ich mir die WP-Tabellen in php-myadmin anschaue so stehen unter Kollation unterschiedliche einträge: latin1_general_ci, latin1_german1_ci, utf8_general_ci und die letzte Zeile:

    Zitat


    23 Tabellen Gesamt 10.612 MyISAM latin1_german1_ci 1,3 MiB 18,4 KiB

    Rein aus dem Bauch raus, sollte man das nicht vereinheitlichen?

    Guten Morgen,

    Wo ist denn der Tabellenname abgeblieben?

    SQL
    SELECT * FROM  WHERE ort=’büro’ ORDER BY lastname firstname ASC


    Ups, da habe ich nicht aufgepasst und hatte tatsächlich eine falschen Variablennamen erwischt.:oops:
    Aber leider war das nicht die Lösung des Problems.

    Die Variablen sind am Anfang des Skripts definiert.

    Ich habe heute den sql-String direkt in phpmyadmin eingegeben und ich glaube das bringt mich der Lösung näher:

    Zitat

    MySQL meldet:
    #1054 - Unknown column '’büro’' in 'where clause'

    Es gibt anscheinend ein Problem mit den Umlauten in der where-Klausel, was ich allerdings nicht verstehe, weil ich, wie schon gesagt, die Klausel mit der selben column in einer anderen Anwendung mit der selben DB auch verwende. Und dort funkt sie ganz normal.
    Die Datenbank hat als Kollation latin1_general_ci, ich habe sowohl das Feld, als auch die gesamte DB versuchsweise mal auf [FONT=Verdana]utf8_general_ci und auf [/FONT][FONT=Verdana]utf8_unicode_ci umgestellt.
    Geholfen hat´s nicht.
    :confused:

    [/FONT]

    ich schiebe gerade ziemlichen Frust, ein SQL-String wird in meinem Blog nicht verarbeitet und ich finde partout nicht den Fehler:
    Hier der String (mit echo ausgegeben):

    SQL
    SELECT * FROM  WHERE ort=’büro’ ORDER BY lastname firstname ASC

    Hier wie er im skript angegeben ist:

    PHP
    $sql = "SELECT * FROM ".$tabellenname." WHERE ort='büro'";
    if($_GET['masort'] == 1)
        {$sql.=" ORDER BY lastname firstname ASC";}
    elseif($_GET['masort'] == 2)
        {$sql.=" ORDER BY firstname lastname ASC";}
    else
        {$sql.=" ORDER BY lastname firstname ASC";}

    Hier die Fehlermeldung:

    Code
    Warning:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/wordpress/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code on line 32

    Hier der Hinweis vom mysql_error():

    Zitat

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘WHERE ort=’büro’ ORDER BY lastname firstname ASC’ at line 1

    Die MySQL server version kann nicht der Fehler sein, genau die selbe Syntax funktioniert in einer anderen Anwendung auf dem selben Server, ausserdem:
    Auf einer anderen Seite mit einer anderen Abfrage an die selbe DB-Tabelle gibt es keine Probleme.

    Auf dem Blog läuft Exec-PHP

    Kann mir irgendjemand sagen, wo das Problem liegt?

    Danke im voraus,
    diltigug

    P.S. werde erst morgen reagieren, habe für heute die Nase voll

    Argh, es funkt, es funkt, es funkt...

    ...mir kommen die :cry:, :mrgreen:.

    Danke für Eure Geduld, vor allem marX.

    Schönen Abend noch,
    diltigug

    P.S. bis auf das meine SQL-Abfragen, die vorher einwandfrei funktionierten, jetzt irgendwie spinnen.

    Aber ich glaub, das schau ich mir später genauer an.

    Hurra, es kommt wieder Hoffnung auf :-D.

    Jetzt muss ich nur noch wissen, wie die Syntax mit dem true genau aussehen muss, so ungefähr?:

    PHP
    $link = mysql_connect("localhost", $user, $pass, true);
    mysql_select_db($data, $link);

    und am Ende vom Skript ein

    PHP
    mysql_close();

    ?
    Schliesse ich damit nicht evtl. auch die WP-DB-Verbindung?

    Kurz vor´m Ziel, ich spür´s...

    diltigug

    Deaktivier mal testweise das Kategorie-Widget. Wenn das nur teilweise geladen wird, dann hat das vielleicht irgendwelche Probleme.


    Probiert, die anderen Widgets erscheinen trotzdem nicht.


    Ich habe inzwischen mal eine neue statische Seite angelegt und mit php nur ein einfachen echo-Befehl ausgeführt: Sidebar ist korrekt und komplett.

    Dann habe ich eine Datenbankverbindung ergänzt und ein Ergebnis ohne weitere Formatierungen ausgegeben: Sidebar wird gestört.

    Verändern von Variablennamen der DB-Verbindung: keine Auswirkung, Sidebar wird gestört.

    Ist der Wunsch Daten aus einer anderen DB einzulesen eigentlich so ungewöhnlich? Bin ich eigentlich der Einzige, der hiermit ein Problem hat?

    Zwischenbericht:

    Hab´ jetzt mal die Widgets durchgetestet. Von den Verwendenten sind 4 Stück betroffen:
    Seiten-, Links- und Tag-Widget erscheinen gar nicht und beim Kategorie-Widget erscheint nur der Titel und eine unvollständige Liste im Code.

    Während das Kategorie-Widget unvollständig ist, scheinen die anderen beiden gar nicht geladen zu werden, da darunterliegende Widgets nachrücken.

    Die von mir erstellten Widgets scheinen keinen Einfluss zu mehmen, ich habe sie mal deaktiviert, keine Änderung bei den anderen Widgets. Es handelt sich um eins mit Code von wetter.com und eins, was den rss-feed eines microblogs (Asaph) einliest. Die werden nicht gestört und scheinen nicht zu stören.

    Zum Theme ist mir noch eingefallen das es auf dem deutschen Default-Theme basiert, welches mit der WP-Version 2.2.3 rausgekommen ist.
    Allerding, inzwischen habe ich noch das classic-Theme getestet, auch hier treten die Fehler auf. Womit man wohl das Theme als Ursache ausschliessen kann.

    :-?
    diltigug

    Fehler 1: In XHTML werden alle Attributname klein geschrieben, also "onload" statt "onLoad".


    Super, dann habe ich den endlich auch mal weg.


    Die anderen beiden sind wahrscheinlich "leere" Listen, also <ul> ohne <li> als Inhalt. Dürfte kein Problem sein.


    Das sind m. E. die leeren, bzw. unvollständig generierten Listen der Sidebarwidgets.


    Ansonsten hab ich aber auch keine Idee mehr. Die Sidebar nutzt Widgets, oder statisch? Wenn statisch dann poste doch mal bitte den Inhalt der sidebar.php. Vielleicht findet sich da was.

    Wenn die Seite älter ist, welche WP-Version läuft da? Eine aktuelle oder eine ältere? Vielleicht behebt ja ein WP-Update das Problem.


    Das Theme, bzw. die Sidebar benutzt widgets und basiert auf dem deutschen default-Theme, mit dem der Fehler übrigens auch auftritt (ein drittes habe ich noch nicht getestet). Die Version ist derzeit noch 2.5.1.

    Schon blöd, kann es eventuell an meinem php-code liegen? Meine php-Kenntnisse gehen ungefähr soweit wie ein "Jetzt lerne ich php"-Anfängerbuch.
    Ich werde nochmal ein anderes Theme ausprobieren, meld mich wieder.

    Danke erstmal,
    Gruß,
    diltigug

    so, da bin ich wieder

    Puh, das war jetzt ein Stück Arbeit.
    Von 440 Errors runter auf 3, leider immer noch ohne Erfolg :-?:

    Der Erste Fehler ist einer, den ich schon immer hatte, der aber noch nie Probleme bereitet hat.
    Die anderen beiden liegen genau in dem Bereich der Sidebar, wo WP anscheinend keinen vollständigen Code auswirft.

    Hat vielleicht noch einer ´ne Idee, warum das nicht funkt?

    Bin für jeden Tipp dankbar,
    diltigug

    Sind die Widgets im HTML-Code sichtbar, d.h. ist es vielleicht ein Anzeige-Problem, oder tauchen die dort auch nicht auf? Ist der HTML-Code valide, oder könnten Markup-Fehler das Problem verursachen?

    Im Quelltext tauchen die fehlenden Teile auch nicht auf.
    Das mit der Validität des eingefügten Codes könnte ein Ansatz sein (Der Code kommt aus einer alten Seite, wo noch nicht so drauf geachtet wurde).
    Werde ich mal durcharbeiten.

    Melde mich nochmal, wenn ich das gerichtet habe.

    Danke erstmal.

    Hallo,

    ich habe eine statische Seite erstellt, in die ich per php eine Tabelle aus einer externe DB einlese, was auch soweit gut funktioniert. Bis auf das die Sidebarwidgets teilweise ausgeblendet werden. Nur auf der statischen Seite, ansonsten wird die Sidebar im Blog korrekt angezeigt.

    Leider kann ich keinen Link angeben, weil der Blog nicht öffentlich ist.
    Ich hänge mal zwei Screenshots mit Soll- und Ist-Zustand der Sidebar.

    Vielleicht kann mir trotzdem jemand einen Tipp geben, woran das liegen kann, das die Sidebar so verstümmelt wird.

    Danke im voraus,
    diltigug

    Hallo riddim,

    vielen Dank für Deinen Beitrag.

    Meine single.php funktioniert von der Standardfunktionalität genau so wie sie soll. Vielleicht habe ich das nicht deutlich genug gemacht.
    Es sind nur folgende Dinge, die ich oben schon beschrieben hatte, die ich gerne anpassen würde:

    1. mir gefällt nicht, das das Sprungziel der Funktion den Text so knirsch unter den oberen Browserfensterrand setzt. Sprich, ich möchte an dieser Stelle im Text automatisch etwas Platz eingefügt bekommen so das der Text optisch etwas unterhalb des Fensterrandes beginnt bzw. fortgesetzt wird.

    2. ich hätte gern, das nach dem more-tag, vor der Weiterführung des Textes ein Link eingefügt wird, mit dem man zur vorherigen Seite zurück kommt.

    Und folgendes funktioniert halt noch nicht, wie ich es mir vorstelle:
    1. In dem Beitrag wird ein (more…) ausgegeben, das ich da natürlich nicht haben möchte.
    2. Der gewünschte Freiraum fehlt noch.
    3. Der Link(-platzhalter) verschwindet unter dem oberen Browserrand.

    Mir geht es nicht um die Grundfunktionalitäten, sondern um die o. g. Punkte.
    Anzuschauen gibt´s das hier.

    Gruß,
    diltigug

    Hallo,

    ich bin´s mal wieder. :mrgreen: oder besser :-?

    Wenn ich einen mit der more-Funktion geteilten Titel anklicke um den ganzen Artikel zu lesen, dann springt die Ansicht gleich an die Stelle wo der Artikel fortgesetzt wird. So weit, so gut.

    Zwei Dinge möchte ich jetzt machen:

    1. mir gefällt nicht, das das Sprungziel der Funktion den Text so knirsch unter den oberen Browserfensterrand setzt. Sprich, ich möchte an dieser Stelle im Text automatisch etwas Platz eingefügt bekommen so das der Text optisch etwas unterhalb des Fensterrandes beginnt bzw. fortgesetzt wird.
    Ich habe schon versucht mit margin was zu erreichen, aber ich weiß nicht so recht wie, bzw. wo ich da angreifen soll.

    2. ich hätte gern, das nach dem more-tag, vor der Weiterführung des Textes ein Link eingefügt wird, mit dem man zur vorherigen Seite zurück kommt.

    Mir ist klar, das sowohl Freiraum, als auch Link beim normalen Artikelaufruf dann mitten im Text zu sehen sind. Das wäre aber erstmal egal, bzw. vielleicht dann die nächste Aufgabe :wink:. Eins nach dem anderen.

    hier meine single.php dazu:

    Folgendes funktioniert jetzt noch nicht:
    1. In dem Beitrag wird ein (more…) ausgegeben, das ich da natürlich nicht haben möchte.
    2. Der gewünschte Freiraum fehlt noch.
    2. Der Link(-platzhalter) verschwindet unter dem oberen Browserrand.

    Ich hoffe, ich habe das hier nicht zu kompliziert gemacht und jemand weiß eine Lösung.

    Gruß,
    diltigug