Zufälligen HTML-Code aus der Datenbank wieder geben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zufälligen HTML-Code aus der Datenbank wieder geben

    Hallo all,

    hier mal mein problem.

    Ich habe mir ein script geschrieben welches in einer Tabelle in der Datenbank einen HTML-Code ablegt.

    Dies währe hier: werbung_bannerwerbung

    Nun möchte ich diesen wieder auslesen, bisdahin funktioniert das auch alles.
    Nur sobalt ich

    Quellcode

    1. echo $werbung_text;
    durch

    Quellcode

    1. echo $werbung_text[$zufall];
    ersetze damit mir ein zufälliger Banner angezeigt wird fangen die probleme an. denn es wird anstelle des gesamten code nur ein beliebiges zeichen aus dem code wieder gegeben.

    hier mal die Funktion:

    Quellcode

    1. function werbung_bar() {
    2. $domain = Bannerwerbung::get_textdomain();
    3. $bannerwerbung = get_option( 'werbung_bannerwerbung' );
    4. echo '<div id="werbung-bar"><p class="werbung-bar">';
    5. foreach ( $bannerwerbung as $werbung => $werbungtext )
    6. {
    7. $werbung_text = stripslashes($werbungtext);
    8. }
    9. mt_srand((double)microtime()*100000);
    10. $zufall=mt_rand(0,count($werbung_text));
    11. echo $werbung_text[$zufall];
    12. echo '</p></div>';
    13. }
    Alles anzeigen
    Lieb grüßt
    Marcel


    Die Erfahrung ist wie die Sonne, sie lässt die Blüten welken, aber die Früchte reifen. - Salvador Dalí

    | Der Gedankenplanet | Design-Maker.com | Branchen der Region |
  • Das war ja auch meine erste Idee.

    Bloß das möchte auch nicht so wie ich.

    Quellcode

    1. function werbung_bar() {
    2. global $wpdb;
    3. $zufall = $wpdb->get_col("SELECT * FROM {$wpdb->prefix}_options WHERE werbung_bannerwerbung");
    4. echo '<div id="werbung-bar"><p class="werbung-bar">';
    5. mt_srand((double)microtime()*100000);
    6. $zufall=mt_rand(0,count($werbungtext));
    7. echo $werbungtext[$zufall];
    8. echo '</p></div>';
    9. }
    Lieb grüßt
    Marcel


    Die Erfahrung ist wie die Sonne, sie lässt die Blüten welken, aber die Früchte reifen. - Salvador Dalí

    | Der Gedankenplanet | Design-Maker.com | Branchen der Region |
  • So habe es nun mal versucht aber leider ohne erfolg.

    Zur besserem Verständnis hier mal noch die erläuterungen:

    {$wpdb->prefix}_options = Das ist die Tabelle
    werbung_bannerwerbung = Das ist die Zeile
    werbungtext = Das ist der Inhalt

    Quellcode

    1. function werbung_bar() {
    2. global $wpdb;
    3. echo '<div id="werbung-bar"><p class="werbung-bar">';
    4. $zufall = mysql_query("SELECT {$wpdb->prefix}_options FROM 'werbung_bannerwerbung', 'werbungtext' ORDER BY RAND() LIMIT 1");
    5. echo $zufall;
    6. echo '</p></div>';
    7. }


    und wo liegt nun das Problem.
    Lieb grüßt
    Marcel


    Die Erfahrung ist wie die Sonne, sie lässt die Blüten welken, aber die Früchte reifen. - Salvador Dalí

    | Der Gedankenplanet | Design-Maker.com | Branchen der Region |
  • Ui jui jui ....


    Zur allgemeinen Syntax:

    Quellcode

    1. SELECT spalte1, spalte2 ... FROM tabelle WHERE spalte = 'wert';


    Du hast dort so einiges vertauscht.

    Und beim auslesen benötigst du zu dem query noch einen fetch cursor.
    Insert, Update sowie Delete benötigen nur den Query.

    Für eine Ergebniszeile wird diese Syntax reichen.

    Quellcode

    1. $qry = mysql_query($sql);
    2. $res = mysql_fetch_assoc($qry);


    $res wäre in dem Fall ein Array mit den Daten z.B $res['spalte1']

    Für mehrere Spalten musst du das Array selber befüllen. Mit der von dir benutzten while Schleife.

    Quellcode

    1. $qry = mysql_query($sql);
    2. while($res = mysql_fetch_assoc($qry)){
    3. $daten[] = $res;
    4. }

    $daten wäre in dem Fall ein Mehrdimensionales Array mit allen Ergebniszeilen.


    Aber ich würde dir vorschlagen ein Tutorial anzugucken, da es doch an ein paar Dingen hapert.
    Guck mal ins Literaturverzeichnis, dort werden nicht nur Bücher vorgestellt.
    PHP Literatur
  • So nun habe ich mir das mal ein wenig angeschaut und nun habe ich das Problem das immer die 1 hinter Limit ausgegeben wird, anstelle vom inhalt.

    Quellcode

    1. function werbung_bar() {
    2. global $wpdb;
    3. $domain = Bannerwerbung::get_textdomain();
    4. $bannerwerbung = get_option( 'werbung_bannerwerbung' );
    5. $sql = "SELECT 'werbung_bannerwerbung' AS 'werbungstext' FROM wp_1_options ORDER BY RAND() LIMIT 1";
    6. $result = $wpdb->query($sql);
    7. if (!$result) {
    8. die('Der Query konnte nicht ausgeführt werden: '.$wpdb->error);
    9. }
    10. echo '<div id="werbung-bar"><p class="werbung-bar">'."\n";
    11. echo stripslashes($result)."\n";
    12. echo '</p></div>'."\n";
    13. return true;
    14. }
    Alles anzeigen
    Lieb grüßt
    Marcel


    Die Erfahrung ist wie die Sonne, sie lässt die Blüten welken, aber die Früchte reifen. - Salvador Dalí

    | Der Gedankenplanet | Design-Maker.com | Branchen der Region |
  • "DesignMaker" schrieb:

    {$wpdb->prefix}_options = Das ist die Tabelle
    werbung_bannerwerbung = Das ist die Zeile
    werbungtext = Das ist der Inhalt


    Wie heißt die Tabelle?
    Hast du eine eigene - oder verwendest du die Wordpress options Tabelle.
    Die options Tabelle bei wordpress hat ein festes Layout. Damit wäre der Rest deines SQL Queries falsch. Außerdem würde die Wordpress Funktion "get_option" ausreichen.

    Quellcode

    1. `wp_options` (
    2. `option_id` bigint(20) NOT NULL auto_increment,
    3. `blog_id` int(11) NOT NULL default '0',
    4. `option_name` varchar(64) NOT NULL default '',
    5. `option_value` longtext NOT NULL,
    6. `autoload` varchar(20) NOT NULL default 'yes',
    7. PRIMARY KEY (`option_id`,`blog_id`,`option_name`),
    8. KEY `option_name` (`option_name`)
    9. )


    Sollte der option_name wiederum "werbung_bannerwerbung" sein, dann macht weder das darüber Iterieren noch das Sortieren Sinn. Dann es kann (in einem blog) nur einen Eintrag mit option_name ='bannerwerbung' geben. Denn der Schlüssel ist unique.

    Die Frage ist also welchen Inhalt hat die Variable. Vielleicht ein serialisiertes Array?
  • Also ich verwende die options tabele von Wordpress.

    Dort habe ich dann den Schlüßel werbung_bannerwerbung angelegt. Diesen möchte ich nun wieder auslesen und nur einen Teil des inhaltes wieder geben.

    Das ist der derzeitige Inhalt:

    Quellcode

    1. a:4:{s:5:"Arcor";s:180:"<a href=\"http://www.zanox-affiliate.de/ppc/?11916703C2141134682T\"><img src=\"http://www.zanox-affiliate.de/ppv/?11916703C2141134682\" width=\"468\" height=\"60 alt=\"Arcor\"></a>";}


    Ich möchte also immer nur

    Quellcode

    1. <a href=\"http://www.zanox-affiliate.de/ppc/?11916703C2141134682T\"><img src=\"http://www.zanox-affiliate.de/ppv/?11916703C2141134682\" width=\"468\" height=\"60 alt=\"Arcor\"></a>


    Im ACP klappt das ja auch supper, denn da lasse ich ja alles auslesen, nur eben im Blog klappt das nicht, denn da möchte ich ja immer ein anderen Banner angezeigt bekommen.

    Noch zur erklährung.

    Quellcode

    1. $werbung = s:5:"Arcor";
    2. $webetext = s:180:"<a href=\"http://www.zanox-affiliate.de/ppc/?11916703C2141134682T\"><img src=\"http://www.zanox-affiliate.de/ppv/?11916703C2141134682\" width=\"468\" height=\"60 alt=\"Arcor\"></a>";


    Im Grunde möchte ich also immer nur $webetext auslesen und dies zufällig.
    Lieb grüßt
    Marcel


    Die Erfahrung ist wie die Sonne, sie lässt die Blüten welken, aber die Früchte reifen. - Salvador Dalí

    | Der Gedankenplanet | Design-Maker.com | Branchen der Region |
  • Da ist echt der wurm drinne.

    Ambesten wir woll sein noch mal vom neuen anzufangen.

    Warning: unserialize() expects parameter 1 to be string, array given in .... on line 37

    Warning: shuffle() expects parameter 1 to be array, boolean given in .... on line 37

    Warning: array_shift() [function.array-shift]: The argument should be an array in .... on line 37
    Lieb grüßt
    Marcel


    Die Erfahrung ist wie die Sonne, sie lässt die Blüten welken, aber die Früchte reifen. - Salvador Dalí

    | Der Gedankenplanet | Design-Maker.com | Branchen der Region |
  • Ersteinmal Danke für die Hilfe, denn ohne diese währe ich nicht weiter gekommen und nun funktioniert es auch entlich so wie es soll.

    ich muste den Code nur noch etwas abändern und so sieht er nun aus.

    Quellcode

    1. function werbung_bar() {
    2. $bannerwerbung = get_option('werbung_bannerwerbung');
    3. shuffle($bannerwerbung);
    4. $bannerwerbung = array_shift($bannerwerbung);
    5. echo stripslashes(sprintf('<div id="werbung-bar"><p class="werbung-bar">%s</p></div>', $bannerwerbung));
    6. }


    Ich werde dich auch dankent erwähnen.
    Lieb grüßt
    Marcel


    Die Erfahrung ist wie die Sonne, sie lässt die Blüten welken, aber die Früchte reifen. - Salvador Dalí

    | Der Gedankenplanet | Design-Maker.com | Branchen der Region |