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: Zufall.php - Zufällige Anzeige auf fremden Seiten

    Buggyboy

    • Fördermitglied
    • Beiträge: 968
    • Geschlecht:
    Hallo!

    Ich habe noch ein altes Script aus XT-Zeiten, welches ich jetzt auf einer Word-Press Seite einsetzen möchte.
    Die Einbindung an sich hat schon funktioniert.

    Ich möchte aber noch zwei Sachen ändern:
    1. Es werden auch Artikel aus inaktiven Kategorien angezeigt, was ich aber nicht möchte.
    Frage wäre, wie kann man das unterbinden?

    2. Hätte ich gerne eine 2-3 spaltige Anzeige der Ergebnisse.
    Momentan wird alles untereinander angezeigt.

    Normal wird nur ein Artikel angezeigt.
    Ich hab es nun schon soweit, das ich auch mehr Artikel angezeigt bekomme.

    Den Ersteller des Scriptes habe ich schon angeschrieben, aber noch keine Nachricht bekommen.

    Vielleicht kann mir ja hier jemand helfen.

    Und hier das Script:

    Code: PHP  [Auswählen]
    <?php
    //Zufall 2.1
    //Autor: Dominik Habermacher (dominik@startseite.ch)//
    //Wenn Ihr Fragen, Probleme oder Vorschläge habt kommt in mein Forum://
    //http://www.startseite.ch/forums/forumdisplay.php?s=&forumid=17 //
    //Ergänzung mehrere MwSt-Sätze - Nur aktive Artikel anzeigen - Die Nullen zeigen - von//
    //Giorgio (gi@planet-guitar.net)//


    ////einstellungen////
    $db_host            = "wwwwwww.de";     // database server
    $db_user        = "blablabla";  // database username
    $db_pass            = "passwort";       // database password
    $db_name            = "datenbank4";     // database name


    $shop_adresse   = "http://www.xxxxxxxxxx.de"; //shop adresse ohne / zuletzt
    $shop_images    = "http://www.xxxxxxxxx.de/images/product_images/popup_images/"; //shop image verzeichnis mit / zuletzt

    $steuer1            = ""; // hier kann die 1ste mwst eingegeben werden, falls du keine brauchst einfach leer lassen.
    $steuer2            = ""; // Hier dann die 2te...

    ////das war’s///

      $linkID = mysql_connect("$db_host", "$db_user", "$db_pass");
      if (!$linkID) die("Keine Verbindung zur Datenbank.");
      if (mysql_select_db("$db_name", $linkID))
        echo("");
      else
        die("Fehler!");

    $result = @mysql_query("SELECT COUNT(*) FROM products WHERE products_status = \"1\"");
    $row = mysql_fetch_row($result);
    mt_srand((double)microtime()*1000000);
    $number = mt_rand(0,$row[0]-1);
    $shop_adresse .="/product_info.php?products_id=";
      $result = "SELECT products.products_id, products_description.products_name, products.products_image, products.products_price, products.products_tax_class_id, products.products_status FROM products LEFT OUTER JOIN products_description ON products.products_id = products_description.products_id WHERE products.products_status = \"1\" LIMIT $number,1";
      $resID = mysql_query($result, $linkID);
      if (!$resID) die("Fehler in der Abfrage.");
        while ($zeile = mysql_fetch_array($resID,MYSQL_BOTH))
      {
    $stsa = $zeile[4];
    if($stsa== 1){
    $preis = $zeile[3] + $zeile[3] / 100 * $steuer1;
    }elseif ($stsa == 2){
    $preis = $zeile[3] + $zeile[3] / 100 * $steuer2;
    }elseif ($stsa == 0){
    $preis = $zeile[3];
    };
    $rpreis = round($preis,2);
    $apreis = number_format($rpreis, 2, ',', '');
        echo("<body bgcolor=#DEDEDE><p align=\"center\"><a href=\"$shop_adresse$zeile[0] \" target=\"_blank\"><img src=\"$shop_images$zeile[2]\" width=\"90\" border=\"0\"></a>");
    echo("<br><a href=\"$shop_adresse$zeile[0] \" target=\"_blank\">$zeile[1] </a>");
        echo("<br>Preis: $apreis Euro</p></body>");
      }
    ?>

    Unter:

    Code: PHP  [Auswählen]
    $number,1
    Da kann man die Anzahl der erscheineneden Artikel erhöhen.

    LG
    Peter

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

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Re: Zufall.php - Zufällige Anzeige auf fremden Seiten
    Antwort #1 am: 09. Juli 2014, 10:24:14
    Hallo Peter,

    zu Deiner Frage 1. Sind denn die Produkte in der inaktiven Kategorie auf aktiv gesetzt?

    Wie auch immer:
    Um die aktive Kategorie abzufragen, müsstest Du die Abfrage um die ".TABLE_CATEGORIES." c erweitern und mit where c.categories_status='1' abfragen.

    Beste Grüße,
    Wayne

    Buggyboy

    • Fördermitglied
    • Beiträge: 968
    • Geschlecht:
    Re: Zufall.php - Zufällige Anzeige auf fremden Seiten
    Antwort #2 am: 09. Juli 2014, 11:59:53
    Hallo Wayne!

    Die Produkte sind alle auf inaktiv in den inaktiven Kategorien.

    LG
    Peter

    Buggyboy

    • Fördermitglied
    • Beiträge: 968
    • Geschlecht:
    Re: Zufall.php - Zufällige Anzeige auf fremden Seiten
    Antwort #3 am: 09. Juli 2014, 13:19:36
    Hi!

    Da ich nicht wirklich php spreche, hab ich das jetzt mal so eingetragen:

    Code: PHP  [Auswählen]
    $result = "SELECT categories_c, products.products_id, products_description.products_name, products.products_image, products.products_price FROM products, categories LEFT OUTER JOIN products_description
    ON categories_c_status=1, products.products_id = products_description.products_id LIMIT $number,10"
    ;
    Damit bekomme ich aber leider auf der Ausgabenseite nur eine Fehlermeldung:
    Fehler in der Abfrage

    LG
    peter

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Re: Zufall.php - Zufällige Anzeige auf fremden Seiten
    Antwort #4 am: 09. Juli 2014, 14:42:48
    Hi auch!

    Also, wenn die Produkte wirklich inaktiv sind und dennoch angezeigt werden, dann funktioniert Deine Abfrage nicht richtig.

    Das mit der Kategorieabfrage kannst Du Dir somit sparen.

    Beste Grüße,
    Wayne

    EDIT: Ich habe es einmal in meinem Testshop ausprobiert. Funktioniert einwandfrei. Keine inaktiven Produkte werden angezeigt.

    Buggyboy

    • Fördermitglied
    • Beiträge: 968
    • Geschlecht:
    Re: Zufall.php - Zufällige Anzeige auf fremden Seiten
    Antwort #5 am: 10. Juli 2014, 15:53:58
    Moin!

    So, nach dem Wayne mir geholfen hat, teile ich Euch nun die Änderungen hier mit, falls sich das auch jemand einbauen möchte.

    Normalerweise läuft das Script irgendwo auf einer Seite als Box oder eben als Einzelartikel.
    Ich wollte auf meiner Word-Press Seite aber mehrere Artikel angezeigt bekommen.
    Und diese sollten auch noch per Zufall ausgewählt werden.

    Und hier nun das Script, welches die Änderungen enthält:

    Code: PHP  [Auswählen]
    <?php
    //Zufall 2.0
    //Autor: Dominik Habermacher (dominik@startseite.ch)//
    //Wenn Ihr Fragen, Probleme oder Vorschläge habt kommt in mein Forum://
    //http://www.startseite.ch/forums/forumdisplay.php?s=&forumid=17 //

    ////einstellungen////
    $db_host            = "localhost.de";           // database server
    $db_user        = "benutzer";   // database username
    $db_pass            = "passwort";       // database password
    $db_name            = "datenbankname";  // database name

    $shop_adresse   = "http://www.deine-url.de"; //shop adresse ohne / zuletzt
    $shop_images    = "http://www.deine-url.de/images/product_images/popup_images/"; //shop image verzeichnis mit / zuletzt

    $steuer     = ""; // hier kann die mwst eingegeben werden, falls du keine brauchst einfach leer lassen.
    ////das war’s///

      $linkID = mysql_connect("$db_host", "$db_user", "$db_pass");
      if (!$linkID) die("Keine Verbindung zur Datenbank.");
      if (mysql_select_db("$db_name", $linkID))
        echo("");
      else
        die("Fehler!");

    $result = @mysql_query("SELECT COUNT(*) FROM products WHERE products_status = '1'");
    $row = mysql_fetch_row($result);
    mt_srand((double)microtime()*1000000);
    $number = mt_rand(0,$row[0]-1);
    $shop_adresse .="/product_info.php?products_id=";
       $result = "SELECT products.products_id, products_description.products_name, products.products_image, products.products_price FROM products LEFT OUTER JOIN products_description
    ON products.products_id = products_description.products_id  WHERE products.products_status = '1' ORDER BY RAND() LIMIT $number,5"
    ;
    $resID = mysql_query($result, $linkID);
      if (!$resID) die("Fehler in der Abfrage.");
        while ($zeile = mysql_fetch_array($resID,MYSQL_BOTH))
      {
    $preis = $zeile[3] + $zeile[3] / 100 * $steuer;
    $rpreis = round($preis,2);

        echo("<p align=\"center\"><a href=\"$shop_adresse$zeile[0] \" target=\"_blank\"><img src=\"$shop_images$zeile[2]\" width=\"100\" border=\"0\"></a>");
    echo("<br><a href=\"$shop_adresse$zeile[0] \" target=\"_blank\">$zeile[1] </a>");
        echo("<br>Preis: $rpreis Euro</p>");

      }


     ?>
    Damit werden jetzt 5 Artikel die aktive sind angezeigt und per Zufall aus der Datenbank geholt.

    Zeile 26 und 32 mußten angepaßt werden.

    Was mir jetzt noch fehlt, bzw. wo ich nicht weiterkomme, ist die Anzeige in 2 Spalten.
    Ich kann zwar html und ne Tabelle bauen, aber es hapert bei mir daran, das alles so einzutragen, das es eben auch php versteht... ;-}

    Aber ansonsten schon soweit ganz gut und ich danke Wyane für seine Denkanstösse.
    Zu sehen auf meine Page: http://www.peter-uphoff.de/?page_id=165

    In Word-Press wird das ganze so eingebaut:

    wp-content/themes/dein theme/functions.php am Ende einfügen:

    Code: PHP  [Auswählen]
    // include files via shortcode
    function include_file($atts) {
        extract(shortcode_atts(array('filepath' => 'NULL'), $atts));
        if ($filepath!='NULL' && file_exists(TEMPLATEPATH.$filepath)){
        ob_start();
        include(TEMPLATEPATH.$filepath);
        $content = ob_get_clean();
        return $content;
        }
    }
             
    add_shortcode('include', 'include_file');

    Damit können dann auf einer Word-Presse Content-Seite PHP-Scripte eingebunden werden mit:

    Code: PHP  [Auswählen]
    [include filepath='/zufall.php']

    Das wars...

    Bis peter

    web0null

    • Experte
    • Beiträge: 1.998
    Re: Zufall.php - Zufällige Anzeige auf fremden Seiten
    Antwort #6 am: 10. Juli 2014, 16:35:35
    Test das mal,

    Code: PHP  [Auswählen]
    $a = 0;
    echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">' . PHP_EOL;
    while ($zeile = mysql_fetch_array($resID,MYSQL_BOTH)) {
      $preis = $zeile[3] + $zeile[3] / 100 * $steuer;
      $rpreis = round($preis,2);
      echo $a == 0 ? '<tr>' . PHP_EOL : '';
      echo '<td>' . PHP_EOL;
      echo '<p align="center"><a href="' . $shop_adresse . $zeile[0] . '" target="_blank"><img src="' . $shop_images . $zeile[2] . '" width="100" border="0"></a>' . PHP_EOL;
      echo '<br><a href="' . $shop_adresse . $zeile[0] . '" target="_blank">' . $zeile[1] . '</a>' . PHP_EOL;
      echo '<br>Preis: ' . $rpreis . ' Euro</p>' . PHP_EOL;
      echo '</td>' . PHP_EOL;
      echo $a == 1 ? '</tr>' . PHP_EOL : '';
      $a++;
      $a = $a == 2 ? 0 : $a;
    }
    echo '</table>' . PHP_EOL;

    Gruß

    Buggyboy

    • Fördermitglied
    • Beiträge: 968
    • Geschlecht:
    Re: Zufall.php - Zufällige Anzeige auf fremden Seiten
    Antwort #7 am: 10. Juli 2014, 17:19:00
    Hi!

    Cool.
    Das hat gepaßt.
    Vielen lieben Dank auch.

    Also das Script sieht nun folgendermaßen aus:

    Code: PHP  [Auswählen]
    <?php
    //Zufall 2.0
    //Autor: Dominik Habermacher (dominik@startseite.ch)//
    //Wenn Ihr Fragen, Probleme oder Vorschläge habt kommt in mein Forum://
    //http://www.startseite.ch/forums/forumdisplay.php?s=&forumid=17 //

    ////einstellungen////
    $db_host            = "localhost.de";           // database server
    $db_user        = "username";   // database username
    $db_pass            = "passwort";       // database password
    $db_name            = "datenbank name"; // database name

    $shop_adresse   = "http://www.deine-shop-url.de"; //shop adresse ohne / zuletzt
    $shop_images    = "http://www.deine-shop-url.de/images/product_images/popup_images/"; //shop image verzeichnis mit / zuletzt

    $steuer     = ""; // hier kann die mwst eingegeben werden, falls du keine brauchst einfach leer lassen.
    ////das war’s///

      $linkID = mysql_connect("$db_host", "$db_user", "$db_pass");
      if (!$linkID) die("Keine Verbindung zur Datenbank.");
      if (mysql_select_db("$db_name", $linkID))
        echo("");
      else
        die("Fehler!");

    $result = @mysql_query("SELECT COUNT(*) FROM products WHERE products_status = '1'");
    $row = mysql_fetch_row($result);
    mt_srand((double)microtime()*1000000);
    $number = mt_rand(0,$row[0]-1);
    $shop_adresse .="/product_info.php?products_id=";
       $result = "SELECT products.products_id, products_description.products_name, products.products_image, products.products_price FROM products LEFT OUTER JOIN products_description
    ON products.products_id = products_description.products_id  WHERE products.products_status = '1' ORDER BY RAND() LIMIT $number,8"
    ;
    $resID = mysql_query($result, $linkID);
     
        $a = 0;
        echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">' . PHP_EOL;
        while ($zeile = mysql_fetch_array($resID,MYSQL_BOTH)) {
          $preis = $zeile[3] + $zeile[3] / 100 * $steuer;
          $rpreis = round($preis,2);
          echo $a == 0 ? '<tr>' . PHP_EOL : '';
          echo '<td>' . PHP_EOL;
          echo '<p align="center"><a href="' . $shop_adresse . $zeile[0] . '" target="_blank"><img src="' . $shop_images . $zeile[2] . '" width="100" border="0"></a>' . PHP_EOL;
          echo '<br><a href="' . $shop_adresse . $zeile[0] . '" target="_blank">' . $zeile[1] . '</a>' . PHP_EOL;
          echo '<br>Preis: ' . $rpreis . ' Euro</p>' . PHP_EOL;
          echo '</td>' . PHP_EOL;
          echo $a == 1 ? '</tr>' . PHP_EOL : '';
          $a++;
          $a = $a == 2 ? 0 : $a;
        }
        echo '</table>' . PHP_EOL;

     ?>

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Re: Zufall.php - Zufällige Anzeige auf fremden Seiten
    Antwort #8 am: 10. Juli 2014, 17:45:58
    @web0null
     :thumbs:

    @BuggyBoy
    Freut mich, dass nun alles passt!

    Beste Grüße,
    Waynde

    Buggyboy

    • Fördermitglied
    • Beiträge: 968
    • Geschlecht:
    Re: Zufall.php - Zufällige Anzeige auf fremden Seiten
    Antwort #9 am: 16. April 2023, 10:54:54
    Moin.

    Ich wollte jetzt das Modul mal wieder auf einer Seite einbinden, doch leider funktioniert das jetzt nicht mehr.
    Anscheinend liegt das an PHP8.

    Könnte sich jemand die Datei ansehen und evtl. PHP8 konform ändern?

    VG
    Peter
    49 Antworten
    19749 Aufrufe
    31. August 2009, 18:52:38 von koshiro
    4 Antworten
    2808 Aufrufe
    01. Oktober 2013, 13:41:36 von mollvision
    1 Antworten
    1571 Aufrufe
    05. März 2013, 23:15:21 von Alfred