41

(12 replies, posted in (x)HTML ir CSS)

Pradejau ir as po biski css dometis.. klausimas yra kaip man ideti nuoroda i paveiksliuka su div'u logo1?
svetaines testinis adresas yra http://b.nereal.us/
iejus i vidu irgi taip pat kreivai gaunasi su logo2. kai ziuri per firebug'a man kazkodel uzejus ant mineto div'o nuspalvina visa nuoroda per visa ploti, kaip padaryti kad butu tik ant paveiksliuko..
dar beda yra pirmajame puslapyje kai narsykle pasidarai Restore (ne per visa langa-maximize) ir resizini, nukerta paveiksliuko apacia.

42

(10 replies, posted in PHP)

zygi, as jeigu suprasciau dokumentacija, tada man gal viskas ir aisku butu. as nesu objektinio programuotojo asas. as nesuprantu klasiu ar masyvu. As zinau kaip padaryti viena ar kita. o kol man naujoviu niekas neisaiskins logiskai kas prie ko, tol as netobulesiu..

43

(10 replies, posted in PHP)

zygis wrote:

XML formavimas tai super :D Net neskaityk apie jokius ten DOMDocument :D

zygis, as su DOM'ais jau susiduriau, bet kiekvienas naujas daiktas nuvilia jeigu nera kam isaiskinti iki galo.

$product = $objDOM->getElementsByTagName("product");
  echo "<table>";
  echo "<tr><th scope='col'>Nr.</th><th scope='col'>Pavadinimas</th><th scope=\"col\">Cat.NR</th><th scope='col'>Gamintojas</th><th scope=\"col\">Likutis</th><th scope=\"col\">Kaina Zl.</th><th scope=\"col\">Foto</td></tr>";
  $nr=0;
  foreach( $product as $value )
  { $nr++;
    $names = $value->getElementsByTagName("name");
    $name  = $names->item(0)->nodeValue;

    $cat_nrs = $value->getElementsByTagName("catalogue_number");
    $cat_nr  = $cat_nrs->item(0)->nodeValue;
    
    $prods = $value->getElementsByTagName("producer");
    $prod  = $prods->item(0)->nodeValue;
    
    $counts = $value->getElementsByTagName("storehouse_counter");
    $count  = $counts->item(0)->nodeValue;

44

(10 replies, posted in PHP)

o kaip man ji naudoti?

$kaina=round(trim($linearray[5]),2);
$pavadinimas = preg_replace("/[^ \w]+/", "", $linearray[1]);
$_xml .="\t<product>\r\n";   // buvo ikrautas  i <product id=\"" . trim($linearray[2]) . "\"
$_xml .="\t\t<name>".trim($pavadinimas)."</name>\r\n";
$_xml .="\t\t<catalogue_number>".trim($linearray[0])."</catalogue_number>\r\n";
$_xml .="\t\t<storehouse_counter>".trim($likutis)."</storehouse_counter>\r\n";
$_xml .="\t\t<price>".$kaina."</price>\r\n";
$_xml .="\t</product>\r\n";

tai siulai pavadinima perrasyti taip $pavadinimas = "<![CDATA[" . $linearray[1] . "]]>"; ?

45

(10 replies, posted in PHP)

zygis wrote:

http://www.w3schools.com/xml/xml_cdata.asp va ko tau reikia

o tada gal placiau? ar man viska ideti i cdata?
xml'a kuriau neveltui, man reikia jo kad sinchronizuotusi prekes, su cdata paims man kitas eshopas?

46

(10 replies, posted in PHP)

man reikia kuriant xml'a visus sustrus simbolius ismesti, nes klaidas meta..
palikti tik situs: raides, lietuviskas spec raides, skaicius, taska, pabraukima, tarpa.

gal galit kazkas uzrasyt? nes kiek bandziau tai arba ne ta nukerpa, arba be tarpu palieka ir lietuvybiu..

sunku buvo pasakyti kad reikejo tarp galutiniu skliaustu aprasyti select'a as tmp?
ar tu ant tiek sustras kad to nesugebejai pats parasyti?
RTFM lengviausia..

skuelas wrote:

O tu paskaityk is eiles uzklausa ka bandai padaryt ir pamatysi kad nesamone gaunasi.
http://dev.mysql.com/doc/refman/5.0/en/update.html

as suprantu kad visi sustri duoda pasiskaityti dokumentacija, bet as ja zinau ir man mano uzklausa nesikerta su elementaria logika.
Gal gali paaiskinti ka blogai darau ir kaip to isvengti?

Turiu tokia uzklausa, man jos rezultatus reikia paupdatinti su nauja_kaina='0.00'

SELECT 
ROUND(l.likutis,3) as likutis, p.pragma_kodas as kodas, p.id as id, p.title as title, p.kaina as kaina, p.nauja_kaina as nauja_kaina, p.manufacturer as manufacturer
FROM plyteles_db.products AS p
LEFT JOIN (

SELECT SUM( lik.likutis ) AS likutis, lik.kodas AS kodas
FROM plyteles_lik.likuciai lik
GROUP BY kodas
) AS l ON l.kodas = p.pragma_kodas
WHERE p.nauja_kaina != ''
AND p.pragma_kodas != ''
AND p.visible =1
AND (
l.likutis <1
OR l.likutis IS NULL
)

as rasau taip:

UPDATE plyteles_db.products SET nauja_kaina = '0.00' WHERE id IN (
SELECT p.id AS id
FROM plyteles_db.products AS p
LEFT JOIN (

SELECT SUM( lik.likutis ) AS likutis, lik.kodas AS kodas
FROM plyteles_lik.likuciai lik
GROUP BY kodas
) AS l ON l.kodas = p.pragma_kodas
WHERE p.nauja_kaina != ''
AND p.pragma_kodas != ''
AND p.visible =1
AND (
l.likutis <1
OR l.likutis IS NULL
)
)

ir pareina

MySQL atsakymas: ?
#1093 - You can't specify target table 'products' for update in FROM clause

Gal galit kas nors istaisyti mano update'a kad viskas tiktu? :)

YES, man pavyko :) pasakykit ar viskas teisinga :)

SELECT likutis, kodas, p.id, p.title, p.kaina, p.nauja_kaina,p.manufacturer,  from (
SELECT likutis, kodas
FROM (
SELECT SUM( l.likutis ) AS likutis, l.kodas AS kodas
FROM plyteles_lik.likuciai l
GROUP BY kodas
) AS table1
WHERE likutis<1
ORDER BY likutis) as laikina
left join plyteles_db.products p on
kodas=p.pragma_kodas
Where p.visible=1
and p.nauja_kaina!=0.00

Sveiki,

turiu tokia beda, kad nemoku ishsilupti reikiamu duomenu, su logika viskas ok, tik aprasyti taisyklingai nemoku..
Man reikia is dvieju mysql duomenu baziu jas sukergus islupti visas prekes kurios turi pozymi akcijine (t.y. nauja_kaina!='0.00') ir jos likutis yra <1
Likucius reikia susumuoti pagal kodus nes gali buti skirtinguose padaliniuose, visible reiskia kad preke matoma, t.y. aktyvi.

kolkas galvojau kad pasiseks man taip padaryti..

SELECT 
p.id as ID,
p.pragma_kodas as kodas,
p.title as Title,
sum(l.likutis) as Likutis
FROM plyteles_lik.likuciai l
LEFT JOIN plyteles_db.products p
on p.pragma_kodas=l.kodas WHERE p.nauja_kaina!='0.00' 
and p.visible=1 and l.likutis<1
GROUP BY l.kodas;

bet man ismeta nesusumuotas reiksmes ir gaunu tik 2 eilutes..
Tada bandau as tik su viena db pasirikiuoti ir viskas veikia (t.y. geri, teisingi duomenys):

SELECT * FROM (
    SELECT sum(l.likutis) AS likuciu_suma,
    l.kodas AS Lkodas FROM plyteles_lik.likuciai l
    GROUP BY l.kodas) AS laikina
WHERE likuciu_suma<1

kaip sujungti tas dvi db kad gauti man taip reikiamas prekes su likuciu <1 ir matomas ir nauja_kaina!=0.00?

minde wrote:
majklas wrote:

galejot is karto parasyti kad galima taip pasiziureti connectionus.. nors set_connection darba turetu names padaryti.. bullshitas totalus..

Galėjai iš karto parašyt, kad nemoki pasižiūrėt kokios koduotės nustatytos. Būtūmėm pasakę, kur žiūrėt (-;

taigi is karto viska ir nupastinau, tik klausimas kodel atidarant prisijungima nusimusa tas names nustatymas? ir jungiasi kaip latin1.. zodziu sudu sudas tas mysql'as :D

radau dziaugsma...

$slektaz="show variables where variable_name like '%character%'";
echo $kurva["Variable_name"] . "|" . $kurva["Value"] . "|\n";

ir pamaciau kad puse connectionu yra latin1..
tai va dasidejau viena eilute prie SET'su:

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET character_set_connection = utf8');

galejot is karto parasyti kad galima taip pasiziureti connectionus.. nors set_connection darba turetu names padaryti.. bullshitas totalus..

minde wrote:

Tu pasidaryk savo script'ą, kuris atvaizduoja duomenis iš DB, kuris naudoja SET NAMES 'utf8', ir kuris siunčia utf8 antraštę.

Jeigu tu žuųri per PMA, tai tu turi išsiaiškinti, kaip tiksliai jis atvaizduoja duomenis. Pavyzdžiui kokią susijungimo koduotę naudoja PMA?

Tavo atveju galioja standartinės utf8 taisyklės:
1) susijungimas su db utf8 (set names);
2) visi naudojami failai (tiek php scriptai, tiek csv) turi būti utf8 koduotėje;
3) duomenys turi būti utf8 koduotėje;
4) db stulpeliai turi būti utf8 koduotėje;

Kažkur padarius klaidą ar neteisingai įvertinus koduotę automatiškai gali viskas susigadinti.

Ieškant klaidos reikia viską patikrinti taip pat jeigu nerandi bėdos nepamiršk parašyt kokią OS naudoji, kokias MySQL/PMA/PHP versijas naudoji.

keisciausia kad š raides atvaizduoja, visu kitu ne.. :(
http://likuciai.1000plyteliu.lt/php.php <- visa info is phpinfo..
man speju importo metu kazkaip suvelia tas reiksmes ir importuoja ne pagal set names utf8

include 'library/config.php';
include 'library/opendb.php';
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
...

...

                echo "0>".$linearray[0]."    1>".$linearray[1]."    2>".$linearray[2]."    3>".$linearray[3]."    4>".$linearray[4]."<br/><br/>";

$query = "INSERT into $likuciai_tbl (pavadinimas,kodas,matas,likutis,modifikuota,modifikavo,padalinys,unikalumas)
        VALUES('$linearray[2]','$linearray[1]','$linearray[3]','$linearray[4]',NOW(),'$aktyvus_vartotojas','$padalinys','$kuriam_unikaluma');";
@mysql_query($query);
    echo "<br/>".$query."<br/>";

                            
if ($linearray[0]==""){ $tuscios++;}
    elseif ($reiksmiu_sk!='5'){ die('<script language="javascript">alert("Blogai suformuotas CSV! Patikrink stulpelių skaičių.")</script>'); } 
        else{                
    $i_prekes ="INSERT IGNORE INTO prekes (pavadinimas, kodas, matas) 
            VALUES ( '$linearray[2]', '$linearray[1]', '$linearray[3]');";
            $ivedam_i_prekes=mysql_query($i_prekes);
        if ($ivedam_i_prekes) {echo "įvedimas į prekių sąrašą sėkmingas!<br/>";}
                        }

viska sumeta normaliai:
http://likuciai.1000plyteliu.lt/Capture2.JPG

minde wrote:
majklas wrote:

kaip matote su LT simboliais.. taciau kai uzklausiu paimti is DB irasus, man visos lt raides virsta ? (klaustukais) pvz: "MAHON 1 grind? plytel?s 33.3x33.3    WM459    0.11    kv m" DB irasas irgi su klaustukais

O tu nepamiršai, kad atvaizduojant duomenis kažkokioje programoje turi būti siunčiamos ut8 antraštės?

jeigu galima kazkaip placiau ir aiskiau :)
as atvaizduoju nasykleje, PMA kuriame yra <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> kaip ir mano puslapyje.. bet visviena rodo ? ? ? vietoj ąčęėšų..
as gal ta csv faila kazkaip kreivai sumeikinau.. nors per notepad++ rodo encoding -> UTF-8 (per paprasta notepad verciau is ansi i UTF8 saugodamas, ne kitaip is excelio csv buna ansi koduoteje..)

Sveiki,

jau dasimusiau ieskodamas slieku... CSV koduote UTF8, pries bet kokia uzklausa atsidarius DB as imetu eilutes

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');

FireFoxas ismeta importavus CSV

įvedimas į prekių sąrašą sėkmingas!
Padalinys: VC
0>Viln 1>WM459 2>MAHON 1 grindų plytelės 33.3x33.3 3>kv m 4>0.11000
įvedimas į prekių sąrašą sėkmingas!
Rasta 1525 įrašų *.csv faile. Tuščių 0

kaip matote su LT simboliais.. taciau kai uzklausiu paimti is DB irasus, man visos lt raides virsta ? (klaustukais) pvz: "MAHON 1 grind? plytel?s 33.3x33.3    WM459    0.11    kv m" DB irasas irgi su klaustukais, nors:

--
-- Table structure for table `likuciai`
--

CREATE TABLE IF NOT EXISTS `likuciai` (
  `pavadinimas` varchar(80) collate utf8_lithuanian_ci NOT NULL,
  `kodas` varchar(30) collate utf8_lithuanian_ci NOT NULL,
  `matas` varchar(15) collate utf8_lithuanian_ci NOT NULL,
  `likutis` float NOT NULL,
  `modifikuota` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `modifikavo` varchar(35) collate utf8_lithuanian_ci NOT NULL,
  `padalinys` varchar(35) collate utf8_lithuanian_ci NOT NULL,
  `unikalumas` varchar(25) collate utf8_lithuanian_ci NOT NULL,
  PRIMARY KEY  (`unikalumas`),
  KEY `pavadinimas` (`pavadinimas`,`modifikuota`),
  KEY `kodas` (`kodas`),
  KEY `padalinys` (`padalinys`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_lithuanian_ci;

HELP nes jau baigesi viltys.. :(

minde wrote:

Pats pirminis blogis yra tas, kad iš pradžių yra surašomi duomenys į DB, o paskui galvojama, kaip iš jų išgeneruoti ataskaitas.

Reikia dirbti taip, kad iš pradžių sužinai, kokių ataskaitų reikės, ir tada galvoji, kokiu formatu laikyti duomenis DB, ar kaip juos apdoroti, kad nekiltų didelių problemų.

Antras blogis, tai yra vistik ir žinių trūkumas. Patikėk, man tikrai nesunku rašyti tokias užklausas, bet aš nematau tikslo to daryt. Turi pats ieškoti būdų, aš padedu suprasti bent jau kuria linke reikėtų orientuotis. Jeigu aš tau pateiksiu gatavą užklausą, tai po savaitės tu ateisi su analogiška bėda, nes nebūsi išmokęs pasigaminti tai ko reikia.

Kaip išspręsi abu šiuos blogius nereikės eiti į jokį forumą ir ieškoti pagalbos (-; nes nebus jokių problemų.

Aciu uz pamokslus, taciau ka daryti kai dirbi visai nesusijes su programinimu, o tik laisvalaikiu darai taip kad lengviau butu paciam dirbti.
Antra, as tikrai nezinojau kokiu ataskaitu reikes sefui, nes apie jas pradzioje nebuvo jokios kalbos..
OK, stengsiuosi kurtis lentute ir importuoti kas kazkiek laiko atnaujintas reiksmes ir poto jas tik atvaizduoti.. :(
cia jau zinau kad uzsi***siu ir kad per s**na mauta bus, bet..

zodziu supratau kad kazkas blogai ir kad palengvinti gyvenima, reikia kazka galvoti apie pati principa :(
gal tada kurtis lentute kurioje butu tos reiksmes ir tada kas kazkiek laiko ja atnaujinti? duomenys keistusi kas puse menesio

minde wrote:

Nu aš ant pirštų pas tave suskaičiuoju 4 vid_savinkainas, vadinasi jas sudėjęs ir padalinęs iš 4 gausi vidurkį. Ar tu čia ne apie tai?

tai taip, TACIAU
kadangi naudoju MAX IF tai man tu reiksmiu kuriu nera neima, ima 0
tarkim ta pati preke bus 2 is 4 padaliniu, o ja skaiciuos pagal ifus
0 + 2.5 + 0 + 569 , bet esme kad reikia dalinti is 2 o ne is 4 :)

minde wrote:
majklas wrote:

o kaip tada AVG istraukti is tu sumu?
as susipliusuoju ir is kur zinoti ar is 4 ar is 2 dalinti?

Na manau tikrai supliusavęs stulpelius žinosi, kiek ten tų stulpelių buvo, ar 2 ar 4.

kaip man zinoti kiek yra Vid_savikainu jeigu jas tiesiog sudeda? ir is kitk reikia dalinti ta Visa_savikaina? AVG netinka, count nezinau kaip aprasyti..
kodas:

SELECT pavadinimas, kodas, matas,
MC_likutis + UB_likutis + KA_likutis + VC_likutis AS Visi_likuciai,
MC_Vid_savikaina + UB_Vid_savikaina + KA_Vid_savikaina + VC_Vid_savikaina AS Visa_savikaina
FROM (SELECT 
   p.pavadinimas AS pavadinimas,
   p.kodas AS kodas,
   l.matas AS matas,
   MAX(IF(l.padalinys = 'MC', l.likutis, '0')) AS MC_likutis,
   MAX(IF(a.padalinys = 'MC', a.Vid_savikaina, '0')) AS MC_Vid_savikaina,
   
   MAX(IF(l.padalinys = 'UB', l.likutis, '0')) AS UB_likutis,
   MAX(IF(a.padalinys = 'UB', a.Vid_savikaina, '0')) AS UB_Vid_savikaina,
   
   MAX(IF(l.padalinys = 'KA', l.likutis, '0')) AS KA_likutis,
   MAX(IF(a.padalinys = 'KA', a.Vid_savikaina, '0')) AS KA_Vid_savikaina,
   
   MAX(IF(l.padalinys = 'VC', l.likutis, '0')) AS VC_likutis,
   MAX(IF(a.padalinys = 'VC', a.Vid_savikaina, '0')) AS VC_Vid_savikaina
   
FROM prekes p 
LEFT OUTER JOIN 
apyvarta a on p.kodas=a.kodas 
LEFT OUTER JOIN
likuciai l on p.kodas=l.kodas
GROUP BY p.kodas ) AS LAIKINA