Právě je 29 bře 2024 15:18

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 4 ] 
Autor Zpráva
 Předmět příspěvku: PrestaShop - Výpis všech produktů do tabulky (nekompatibilní s php 7)
PříspěvekNapsal: 01 úno 2019 12:33 
C4 zákazník

Registrován:
05 lis 2015 20:12
Příspěvky:
64
Ahoj,

níže přikládám php skript, který jednoduše vypíše tabulku všech produktů v e-shopu i počtem ks na skladě. Funguje v PHP v 5. Zaboha se mi nedaří přijít na to, jak to udělat pro verzi 7. Prosím tímto někoho zdatnějšího, než jsem já, o úpravu.
Moc díky!!!

Na řádku 12 stačí vyplnit přístupy k SQL databázi, na 13. a 38. řádku jméno databáze.

Kód:
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta name="robots" content="noindex,nofollow" />
    <title>Stav skladu</title>
  </head>

<h1>Skladové zásoby</h1>

<?php
$pripoj = mysql_connect('server', 'jmeno', 'heslo');
MySQL_Select_Db(databaze) or Die(MySQL_Error());
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $pripoj);

$dotaz = "SELECT\n"
    . "    p.id_product,\n"
    . "    pa.reference,\n"
    . "    pa.upc,\n"
    . "    pa.price,\n"
    . "    pai.id_image,\n"
    . "    pl.name,\n"
    . "    GROUP_CONCAT(DISTINCT(pal.name) SEPARATOR \", \") as combination,\n"
    . "    pq.quantity\n"
    . "FROM ps_product p\n"
    . "LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product)\n"
    . "LEFT JOIN ps_stock_available pq ON (p.id_product = pq.id_product AND pa.id_product_attribute = pq.id_product_attribute)\n"
    . "LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)\n"
    . "LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute)\n"
    . "LEFT JOIN ps_attribute_lang pal ON (pac.id_attribute = pal.id_attribute)\n"
    . "LEFT JOIN ps_product_attribute_image pai on(pa.id_product_attribute = pai.id_product_attribute)\n"
    . "WHERE pl.id_lang = 3\n"
    . "AND pal.id_lang = 3\n"
    . "GROUP BY pa.reference\n"
    . "ORDER BY p.id_product, pac.id_attribute"; 

$vysledek = MySQL_Query($dotaz);   
MySQL_DB_Query("databaze", $dotaz, $pripoj);
?>

<table style="width: 920px; height: 54px;" border="1">
      <tbody>
      <tr>
          <td>ID produktu
          </td>
          <td>Jméno produktu
          </td>
          <td>Kód produktu
          </td>
          <td>Kombinace
          </td>
          <td>Množství
          </td>
        </tr>
        <tr>
<?php       
while ($zaznam = MySQL_Fetch_Array($vysledek)){
$id_product=$zaznam["id_product"];
$reference=$zaznam["reference"];
$kombinace=$zaznam["combination"];
$quantity=$zaznam["quantity"];
$jmeno=$zaznam["name"];
$atribut=$zaznam["required"];
echo ("<td>" . $id_product . "</td><td>" . $jmeno . "</td><td>" . $reference . "</td><td>" . $kombinace . "</td><td>" . $quantity . "</td></tr>");
}
?>
      </tbody>
    </table>
   


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Výpis všech produktů do tabulky (nekompatibilní s php 7)
PříspěvekNapsal: 04 úno 2019 11:18 
C4 podpora
C4 podpora

Registrován:
30 čer 2009 08:14
Příspěvky:
8492
Dobrý den,

PHP 7 již nepodporuje starší PHP rozšíření mysql, a proto nefungují funkce mysql_connect(), mysql_query() atd. Takže skript budete muset předělat na novější rozšíření MySQLi nebo PDO_MYSQL.

_________________
Radek Plašil
Webhosting C4
https://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Výpis všech produktů do tabulky (nekompatibilní s php 7)
PříspěvekNapsal: 05 úno 2019 11:01 
Uživatelský avatar

Registrován:
03 bře 2011 22:21
Příspěvky:
640
Lepší je importovat config.inc.php a pak využít tříd PrestaShopu, jako:

Db::getInstance()->execute('SQL dotaz k vykonání');

Kód je plný příkladů k následování.

_________________
M4 Vše v jednom SEO - snadný a na funkce bohatý SEO plugin
https://www.presta-addons.com


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Výpis všech produktů do tabulky (nekompatibilní s php 7)
PříspěvekNapsal: 05 úno 2019 16:55 
C4 zákazník

Registrován:
05 lis 2015 20:12
Příspěvky:
64
Podařilo se mi to vygooglit a malinko poupravit. Takže kdo si chce nechat zobrazit tabulku všech aktivních produktů se skladovými zásobami a včetně kombinací, pak stačí níže uvedený skript dát do nově vytvořeného souboru např. sklad.php v root. Na řádku 12 prosím doplnit svoje přístupy k SQL databázi a serveru.

Kód:
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta name="robots" content="noindex,nofollow" />
    <title>Stav skladu</title>
  </head>

<strong>Skladové zásoby aktivních produktů</strong>

<?php
$pripoj = mysqli_connect('sqlserver', 'user', 'password','database');
mysqli_query($pripoj,"SET NAMES UTF8");

$dotaz = "SELECT\n"
    . "    p.active,\n"
    . "    p.id_product,\n"
    . "    pa.reference,\n"
    . "    pa.upc,\n"
    . "    pa.price,\n"
    . "    pai.id_image,\n"
    . "    pl.name,\n"
    . "    GROUP_CONCAT(DISTINCT(pal.name) SEPARATOR \", \") as combination,\n"
    . "    pq.quantity\n"
    . "FROM ps_product p\n"
    . "LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product)\n"
    . "LEFT JOIN ps_stock_available pq ON (p.id_product = pq.id_product AND pa.id_product_attribute = pq.id_product_attribute)\n"
    . "LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)\n"
    . "LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute)\n"
    . "LEFT JOIN ps_attribute_lang pal ON (pac.id_attribute = pal.id_attribute)\n"
    . "LEFT JOIN ps_product_attribute_image pai on(pa.id_product_attribute = pai.id_product_attribute)\n"
    . "WHERE pl.id_lang = 3\n"
    . "AND pal.id_lang = 3\n"
    . "GROUP BY pa.reference\n"
    . "ORDER BY p.id_product, pac.id_attribute"; 

$vysledek = mysqli_query($pripoj,$dotaz);
?>

<table style="width: 920px; height: 54px;" border="1">
      <tbody>
      <tr>
          <td>ID produktu
          </td>
          <td>Jméno produktu
          </td>
          <td>Varianta
          </td>
          <td>Kód produktu
          </td>
          <td>Množství
          </td>
        </tr>
        <tr>
<?php       
while ($zaznam = MySQLi_Fetch_Array($vysledek)){
$id_product=$zaznam["id_product"];
$reference=$zaznam["reference"];
$kombinace=$zaznam["combination"];
$quantity=$zaznam["quantity"];
$jmeno=$zaznam["name"];
$atribut=$zaznam["required"];
$aktivni=$zaznam["active"];

if($aktivni == 1) { //Omezení jen na aktivní produkty
echo ("<td>" . $id_product . "</td><td>" . $jmeno . "</td><td>" . $kombinace . "</td><td>" . $reference . "</td><td>" . $quantity . "</td></tr>");
}
}
?>

      </tbody>
    </table>


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 4 ] 

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
PrestaShop partneři

Seznam všech partnerů

PrestaShop Hosting
Návody pro C4

© 2009-2024 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz