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: Meistverkaufte Artikel für Gäste

    karabey

    • Schreiberling
    • Beiträge: 320
    • Geschlecht:
    Meistverkaufte Artikel für Gäste
    am: 04. Mai 2013, 14:40:59
    Hallo,

    Bin am versuch die Meistverkaufte Artikel Gästen anzuzeigen. Die Datei stammt eigentlich von "/admin/stats_products_purchased.php" das ich geändert habe. Leider mit fehler.

    Ich habe eine Kopie der Datei erstellt und diesen in den Root Verzechniss gelegt.

    In der Datei werden die Datei eingebunden
    Code: PHP  [Auswählen]
    include ('includes/application_top.php');

    Darunter kommt noch das Smarty elemente hinzugefügt werden
    Code: PHP  [Auswählen]
    $smarty = new Smarty;

    Der Aufruf auf Admin passiert hier dazwischen um die meist Verkauften Artikel aufzurufen.
    Code: PHP  [Auswählen]
                        $rows = (isset($_GET['page']) && $_GET['page'] > 1) ? $_GET['page'] * $maxrows - $maxrows : 0;                    
                        $products_query_raw = "select p.products_id,
                                                      p.products_model,  
                                                      p.products_ordered,
                                                      p.products_quantity,
                                                      pd.products_name
                                                 from "
    . TABLE_PRODUCTS . " p,
                                                      "
    . TABLE_PRODUCTS_DESCRIPTION . " pd
                                                where pd.products_id = p.products_id
                                                  and pd.language_id = '"
    . $_SESSION['languages_id'] . "'
                                                  and p.products_ordered > 0
                                             group by pd.products_id
                                             order by p.products_ordered DESC, pd.products_name"
    ;
                        $products_split = new splitPageResults($_GET['page'], '20', $products_query_raw, $products_query_numrows, 'p.products_id');

                        $products_query = xtc_db_query($products_query_raw);
                        while ($products = xtc_db_fetch_array($products_query)) {
                          $rows++;
                          if (strlen($rows) < 2) {
                            $rows = '0' . $rows;
                          }
                       

    Am ende kommt dieser Teil um alles im Template anzuzeigen
    Code: PHP  [Auswählen]
    $smarty->assign('language', $_SESSION['language']);
    $smarty->assign('main_content', $main_content);
    $smarty->caching = 0;
    if (!defined('RM'))
            $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE.'/index.html');
    include ('includes/application_bottom.php');

    ** Bitte korrigieren falls ich falsch liege.

    Der Fehler derzeit liegt hier
    Zitat
    1064 - 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 ') as total' at line 1


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

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Re: Meistverkaufte Artikel für Gäste
    Antwort #1 am: 04. Mai 2013, 17:05:26
    Hi karabey,

    den Code sollten die Erfahreneren klären. Aber die Bestseller werden doch schon in einer Box gezeigt - auch für Gäste. Reicht das nicht aus?

    Beste Grüße,
    Wayne

    PS: Jedenfalls fehlt beim ersten Code von Dir noch ein schließende Klammer }

    karabey

    • Schreiberling
    • Beiträge: 320
    • Geschlecht:
    Re: Meistverkaufte Artikel für Gäste
    Antwort #2 am: 05. Mai 2013, 01:06:09
    Vielen Dank fürs Antworten.

    Die Bestseller Artikel je nach Kategorie den Bestseller an. Bei dem Code habe ich vor eine Dynamische Tabelle zu haben das von den gesamten Sortiment die Top Verkäufe auflistet.

    Habe nur einen fehlenden Klammer am ende der while schleife gefunden...

    karabey

    • Schreiberling
    • Beiträge: 320
    • Geschlecht:
    Re: Meistverkaufte Artikel für Gäste
    Antwort #3 am: 05. Mai 2013, 02:02:10
    Hab es mal fertig bekommen. Wird angezeigt aber 2 Probleme gibt es dennoch.

    Die erste ist das die Liste nicht im Content angezeigt wird sondern gleich nach <body> tag.
    Das zweite Problem ist das die Auflistung mit der Zahl 25 anfängt und nicht mit 1.

    Code: PHP  [Auswählen]
    <?php
    /* --------------------------------------------------------------
       $Id: stats_products_purchased.php 899 2005-04-29 02:40:57Z hhgag $  

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))

       Copyright (c) 2003 XT-Commerce
       --------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(stats_products_purchased.php,v 1.27 2002/11/18); www.oscommerce.com
       (c) 2003      nextcommerce (stats_products_purchased.php,v 1.9 2003/08/18); www.nextcommerce.org

       Released under the GNU General Public License
       --------------------------------------------------------------*/


    include ('includes/application_top.php');
    $smarty = new Smarty;
    // include boxes
    require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');
    require (DIR_WS_INCLUDES.'header.php');

    $products_query_raw =   "select p.products_id,
                                                    p.products_model,  
                                                    p.products_ordered,
                                                    pd.products_name
                                                    from "
    . TABLE_PRODUCTS . " p,
                                                    "
    . TABLE_PRODUCTS_DESCRIPTION . " pd
                                                    where pd.products_id = p.products_id
                                                    and pd.language_id = '"
    . $_SESSION['languages_id'] . "'
                                                    and p.products_ordered > 1
                                                    group by pd.products_id
                                                    order by p.products_ordered DESC, pd.products_name"
    ;
                                           

    $products_query = xtc_db_query($products_query_raw);

    echo '<table border="0" width="100%" cellspacing="2" cellpadding="2">';
      echo '<tr>';
        echo '<td>';
          echo '<table border="0" width="100%" cellspacing="0" cellpadding="2">';
            echo '<tr>';
              echo '<td>';
                echo '<table border="0" width="100%" cellspacing="0" cellpadding="0">';
                  echo '<tr>';
                    echo '<td>Meistverkaufte Artikel</td>';
                  echo '</tr>';
                echo '</table>';
              echo '</td>';
            echo '</tr>';
            echo '<tr>';
              echo '<td>';
                echo '<table border="0" width="100%" cellspacing="0" cellpadding="0">';
                  echo '<tr>';
                    echo '<td valign="top">';
                      echo '<table border="0" width="100%" cellspacing="0" cellpadding="2">';
                        echo '<tr>';
                          echo '<td></td>';
                          echo '<td>SKU</td>';
                          echo '<td>Produkt</td>';
                          echo '<td align="center">Menge</td>';
                        echo '</tr>';
                       
                                                    while ($products = xtc_db_fetch_array($products_query))
                                                    {
                                                            $rows++;
                                                            if (strlen($rows) < 1)
                                                            {
                                                                    $rows = '0' . $rows;
                                                            }
                                                           
                                                            echo '<tr>';
                                                            echo '<td>'.$rows.'</td>';
                                                            echo '<td><a href="product_info.php?products_id=' . $products['products_id'] . '"  style="color:#2d87ef">'.$products['products_model'].'</a></td>';
                                                            echo '<td>'.$products['products_name'].'</td>';                      
                                                            echo '<td align="center">'.$products['products_ordered'].'</td>';
                                                            echo '</tr>';
                                                    }
                      echo '</table>';
                    echo '</td>';
                  echo '</tr>';
                echo '</table>';
              echo '</td>';
            echo '</tr>';
          echo '</table>';
        echo '</td>';
      echo '</tr>';
    echo '</table>';

    $smarty->assign('language', $_SESSION['language']);
    $smarty->assign('main_content', $main_content);
    $smarty->caching = 0;
    if (!defined('RM'))
            $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE.'/index.html');
    include ('includes/application_bottom.php');
    ?>

    karabey

    • Schreiberling
    • Beiträge: 320
    • Geschlecht:
    Re: Meistverkaufte Artikel für Gäste
    Antwort #4 am: 05. Mai 2013, 03:15:18
    Damit alles auch richtig ist versuche ich es in Smarty zu packen. Leider mit einigen zusätzlichen Fehler.
    Dazu habe ich noch ein Array erstellt nur ich komme mit der Bindung ganz klar.

    topseller_tabelle.php
    Code: PHP  [Auswählen]
    <?php

    include ('includes/application_top.php');
    $smarty = new Smarty;
    // include boxes
    require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');
    require (DIR_WS_INCLUDES.'header.php');

    $rows++;
    if (strlen($rows) < 1)
    {
            $rows = '0' . $rows;
    }

    $products_query_raw =   "select p.products_id,
                                                    p.products_model,  
                                                    p.products_ordered,
                                                    pd.products_name
                                                    from "
    . TABLE_PRODUCTS . " p,
                                                    "
    . TABLE_PRODUCTS_DESCRIPTION . " pd
                                                    where pd.products_id = p.products_id
                                                    and pd.language_id = '"
    . $_SESSION['languages_id'] . "'
                                                    and p.products_ordered > 1
                                                    group by pd.products_id
                                                    order by p.products_ordered DESC, pd.products_name"
    ;
                                           
    $products_array[] = array (
                                                    'PRODUCTS_ID' => $products['products_id'],
                                                    'PRODUCTS_MODEL' => $products['products_model'],
                                                    'PRODUCTS_NAME' => $products['products_name'],
                                                    'PRODUCTS_ORDERED' => $products['products_ordered'],
                                                    'PRODUCTS_ROW' => $row);

    $products_query = xtc_db_query($products_query_raw);
    $products = xtc_db_fetch_array($products_query);


    // set cache ID
     if (!CacheCheck()) {
            $smarty->caching = 0;
            $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/topseller_tabelle.html');
    } else {
            $smarty->caching = 1;
            $smarty->cache_lifetime = CACHE_LIFETIME;
            $smarty->cache_modified_check = CACHE_CHECK;
            $cache_id = $_SESSION['language'];
            $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/topseller_tabelle.html', $cache_id);
    }

    $smarty->assign('language', $_SESSION['language']);
    $smarty->assign('main_content', $main_content);
    $smarty->caching = 0;
    if (!defined('RM'))
            $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE.'/index.html');
    include ('includes/application_bottom.php');
    ?>

    topseller_tabelle.html
    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="topseller_tabelle"}
    <table border="0" width="100%" cellspacing="2" cellpadding="2">
      <tr>
        <td>
          <table border="0" width="100%" cellspacing="0" cellpadding="2">
            <tr>
              <td>
                <table border="0" width="100%" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>Meistverkaufte Artikel</td>
                  </tr>
                </table>
              </td>
            </tr>
            <tr>
              <td>
                <table border="0" width="100%" cellspacing="0" cellpadding="0">
                  <tr>
                    <td valign="top">
                      <table border="0" width="100%" cellspacing="0" cellpadding="2">
                        <tr>
                          <td></td>
                          <td>SKU</td>
                          <td>Produkt</td>
                          <td align="center">Menge</td>
                        </tr>
                        {foreach name=aussen item=module_data from=$products_array}
                        <tr>
                            <td>{$PRODUCTS_ROW}</td>
                            <td><a href="product_info.php?products_id={$PRODUCTS_ID}" style="color:d87ef">{$PRODUCTS_MODEL}</a></td>
                            <td>{$PRODUCTS_NAME}</td>                      
                            <td align="center">{$PRODUCTS_ID}</td>
                        </tr>
                       {/foreach}
                      </table>
                    </td>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        </td>
      </tr>
    </table>

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.306
    • Geschlecht:
    Re: Meistverkaufte Artikel für Gäste
    Antwort #5 am: 05. Mai 2013, 10:05:16
    Code: PHP  [Auswählen]
    <td><a href="product_info.php?products_id={$PRODUCTS_ID}" style="color:d87ef">{$PRODUCTS_MODEL}</a></td>

    wenn isch sowas sehe, dann bekomme ich das grosse  :-!

    Dann aber bitte nicht wundern, wenn einige deiner Kunden im Shop nicht einkaufen können...

    Damit alles auch richtig ist versuche ich es in Smarty zu packen. Leider mit einigen zusätzlichen Fehler.
    Dazu habe ich noch ein Array erstellt nur ich komme mit der Bindung ganz klar.

    wenn das das einzige Problem wäre  :panic:

    Gruss Gerhard

    karabey

    • Schreiberling
    • Beiträge: 320
    • Geschlecht:
    Re: Meistverkaufte Artikel für Gäste
    Antwort #6 am: 05. Mai 2013, 20:41:06
    Hey GTB,

    Bin kein Programmierer, lerne es mit DIY. Lesen, lesen, lesen und versuchen.. Daher nimm mir meine Code Fehler nicht bitte übel.

    Egal wie kotz übel es ist versuche ich etwas auf die beine zu bringen für die Community anstatt NUR von anderen wie andere es zu erwarten. Ich hoffe das ihr hier als Team Verständnis dafür habt. Bis jetzt war die Erfahrung aber das die Stammleute gerne unerfahrene immer wieder auseinander nehmen.

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.306
    • Geschlecht:
    Re: Meistverkaufte Artikel für Gäste
    Antwort #7 am: 06. Mai 2013, 09:37:01
    Hallo,

    Das Grundproblem bei dieser Art, ist immer wieder, dass dadurch Sicherheitslücken enstehen. Deshalb bin ich einfach skeptisch.

    Hier ein Hinweis zu dem Problem:

    Code: PHP  [Auswählen]
    $products_query_raw =   "select p.products_id,
                                                    p.products_model,  
                                                    p.products_ordered,
                                                    pd.products_name
                                                    from "
    . TABLE_PRODUCTS . " p,
                                                    "
    . TABLE_PRODUCTS_DESCRIPTION . " pd
                                                    where pd.products_id = p.products_id
                                                    and pd.language_id = '"
    . $_SESSION['languages_id'] . "'
                                                    and p.products_ordered > 1
                                                    group by pd.products_id
                                                    order by p.products_ordered DESC, pd.products_name"
    ;
                                           
    $products_array[] = array (
                                                    'PRODUCTS_ID' => $products['products_id'],
                                                    'PRODUCTS_MODEL' => $products['products_model'],
                                                    'PRODUCTS_NAME' => $products['products_name'],
                                                    'PRODUCTS_ORDERED' => $products['products_ordered'],
                                                    'PRODUCTS_ROW' => $row);
     
    $products_query = xtc_db_query($products_query_raw);
    $products = xtc_db_fetch_array($products_query);

    Du greifst hier auf Datenbankabfragen zu, bevor diese zur Verfügung stehen.

    Der Teil hier:

    Code: PHP  [Auswählen]
    $products_query = xtc_db_query($products_query_raw);
    $products = xtc_db_fetch_array($products_query);
    [/code]

    muss ausgeführt werden, bevor das $products_array erstellt werden kann.

    Zudem erhälst du damit nur 1 Artikel, den letzten aus dem Ergebnis.

    Wenn dann muss das xtc_db_fetch_array in eine WHILE Schleife gepackt werden.

    Gruss Gerhard
    4 Antworten
    2886 Aufrufe
    11. September 2013, 12:47:51 von Harald T.
    4 Antworten
    3555 Aufrufe
    22. Dezember 2011, 23:22:20 von ThorstenK
    5 Antworten
    4348 Aufrufe
    15. Januar 2014, 11:36:10 von cschiller
    5 Antworten
    3905 Aufrufe
    07. März 2013, 12:35:18 von tacks