-
Pranešimai
28 -
Užsiregistravo
-
Lankėsi
-
Atsiliepimai
100%
Turinio tipas
Forumas
Kalendorius
Parduotuvė
Akademija
Skelbimai
gidasss2 Pranešimai
-
-
Na tai parašyk kas nepavyksta ar kažką. Kuo tau padėti? Nes jei pasidarei į vieną pusę, gali ir į kitą, manau, pusę bendravimą padaryti nesunkiai.
-
taigi temos pavadinima galima pasitaisyti :)
ir siaip gerai sako - visus errorus tikrinti google :) na nebent su anglu kalba problemeles :)
Pasikartosiu, kad google nepadeda.
-
Pirma nuoroda įvedus klaidą į google: http://www.cyberciti.biz/faq/cannot-load-mysql-extension-check-your-phpconfiguration/
Tikiuos pagelbės. :)
Ieškau susidūrusio su tuo žmogaus. Nes google nei viena nuoroda ir instrukcijos nepadėjo.
-
Sveiki, gal būt yra čia susidūrusių su šiuo reikalu. Pirkau hostex.lt virtualų dedikuotąjį serverį (CentOS) ir man reikia kažkokiu būdu įrašyti phpmyadmin. Mysql php ir panašiai ten viskas surašyta, tik gal reikia kažkaip juos paderinti, nes dabar kai įsirašiau, tai phpmyadmin gaunu errorą: Cannot load mysql extension. Please check your PHP configuration. Iškarto dėkui už bet kokią informaciją.
P.S. Naudojantis CentOS ar kitomis linuxų atmainomis aš ganėtinai žalias.
-
Sveiki, niekaip neiseina parasyt programos kuri nuskaitytu duomenis is failo ir juos atspauzdintu. Kazkaip iki galo nenuskaito duom.txt faile esanciu duomenu, nesuprantu kas cia blogai.
duom.txt failiukas:
2
4
Lukas 7
Gedas 10
Rokas 10
Adomas 12
3
Petras 5
Ona 12
Jonas 8
Mano rasyta programa:
program Bevardë2; type group=record v:string[7]; sk:integer; end; type mas=array[1..20] of group; var i,n,m:integer; Rf,Df:text; G:mas; procedure skaitom; begin Assign(Df,'duom.txt'); Reset(Df); ReadLn(Df,n); for i:=1 to n do begin ReadLn(Df,m); for i:=1 to m do ReadLn(Df,G[i].v,G[i].sk); close(Df); end; end; begin skaitom; Assign(Rf,'rez.txt'); Rewrite(Rf); for i:=1 to n do begin for i:=1 to m do WriteLn(Rf,G[i].v,G[i].sk); close(Rf); end; end.
Sukompiliaves programa, rez.txt faile gaunu atspauzdinta tik pirma grupe zmoniu ir skaiciu. Gal galetumet paziuret kas cia blogai ir ko truksta..
Nuo kada ciklas cikle abiems ciklams turi tą patį kintamąjį "i", ir nuo kada uždarome failą pačiame cikle?
Turiu omeny šitas vietas:
for i:=1 to n do
begin
ReadLn(Df,m);
for i:=1 to m do
ReadLn(Df,G.v,G.sk);
close(Df);
end;
Be to kad ir sutvarkysi tai, tai vistiek į masyvą kiekvieną grupę rašai vėl nuo pirmo indekso. Tai reiškia, kad liks gale nuskaitymo tik paskutinė duomenų grupė (šiuo atveju čia kažkokių vardų antra grupė)
-
Jei penktadienį nebaliavosiu ir pajėgsiu 9 val atsikelti, tai apsiimsiu :D
-
O jei kiekviena stotelė (manau stotelės masyvuose) turėtų dar ir informaciją iš kokurios praeitos stotelės į ją yra pigiausias kelias. Eidamas per stoteles užpildytum tuos duomenis ir lyg turėtum pažymėtą kelią nuo paskutinės stotelės link pirmos per pigiausią kelią.
-
Bevygdant šį algoritmą, mano nuomone, reikėtų kaupti kelio taškų (šiuo atveju turbūt stotelių) masyvą.
-
Viskas dabar man veikia, tik dabar jau kiek kita uzduoti darau :) Viskas tas pats kas cia buvo,tik kaip jau minejau anksciau atsiranda dar kelios grupes tu katinu ir velgi reikia is ju paimti puse greiciausiu :) virsuje atsiranda kintamasis k,kuris reiskia grupiu skaiciu.Ziurek, as dabar toje proceduroje, kur duomenis paskirsto didejimo tvarkoje, pridejau "for i:=1 to k do" ir tuomet ten kur yra n-katinu skaicius grupeje, ji jau sukuriau kaip masyva, nes kadangi kelios grupes, tai ir keli n, o ne vienas, todel dabar n bus n :) Kodai tokie:
procedure atrinkimas; begin for i:=1 to k do begin for g:=1 to n[i] do begin for j:=1 to n[i]-g do begin if (A[j].min > A[j+1].min) or (A[j].min = A[j+1].min) and (A[j].sek > A[j+1].sek ) then begin C:=A[j].min; A[j].min:=A[j+1].min; A[j+1].min:=C; Temp:=A[j].vard; A[j].vard:=A[j+1].vard; A[j+1].vard:=Temp; W:=A[j].sek; A[j].sek:=A[j+1].sek; A[j+1].sek:=W; end; end; end; end; end;
procedure Spausdinimas; begin for j:=1 to k do begin skaic[j]:=n[j] div 2; for i:=1 to skaic[j] do Writeln(Rf,A[i].vard,' ',A[i].min,' min ',A[i].sek, ' sek '); end; end;
Problema yra tame, kad duomenys visiskai nesamoningi rezultatu faile, nes isspausdinami ne taip kaip reikia, dabar parodysiu duomenu failo foto:
http://i45.tinypic.com/98857m.jpg
O cia rezultatu failo fotke:
http://i48.tinypic.com/2heg8zn.jpg
Klaida failo nuskaityme. Kiekvieną grupę nuskaitai vėl ant tų pačių indeksų, taip kad galiausiai lieka tik paskutinė grupė. Turi sugalvoti, kaip visus duomenis išsaugoti į skirtingas vietas. Tai galima daryti įvairiai. Galima kiekvienai grupei atskirą masyvą naudoti, arba, pavyzdžiui, dėti viską į vieną masyvą, tik ne vis nuo pirmo indekso saugoti, o vis toliau ir žymėtis, nuo kelinto indekso yra kita grupė. Esminė klaida tik nuskaityme, kad vieną ant kito duomenis nuskaitai ir nebeturi pirmųjų.
-
Supratau ta klaida jau-ziopla klaida :) Ziurek, dabar tik man isaiskink, kodel pas mane taip yra, kad mazejimo tvarka, o ne didejimo skaiciai isspausdinami? :) Kodas tai toks:
procedure atrinkimas; begin for g:=1 to n do begin for j:=1 to n-g do begin if (A[j].min < A[j+1].min) or (A[j].min = A[j+1].min) and (A[j].sek < A[j+1].sek ) then begin C:=A[j+1].min; A[j+1].min:=A[j].min; A[j].min:=C; W:=A[j+1].sek; A[j+1].sek:=A[j].sek; A[j].sek:=W; end; end; end; end; procedure Spausdinimas; begin skaic:=n div 2; for i:=1 to skaic do Writeln(Rf,A[i].min,' min ',A[i].sek, ' sek '); end;
Nes tu duomenis apkeiti tada, kai sekantis didesnis už buvusį. Turiu omeny šią vietą:
if (A[j].min < A[j+1].min) or (A[j].min = A[j+1].min) and (A[j].sek < A[j+1].sek ) then
A[j].min < A[j+1].min va pvz apkeis čia jei A[1].min bus mažesnis už A[2].min. Tiesiog varneles apsuk į kitą pusę ir problema išspręsta.
-
iš kur tu gauni šituos masyvus: min1 ir sek1. Juos tu spausdini, o rikiuodamas niekur kaip ir nepanaudoji, tai savaime aišku kad jų reikšmės lieka lygios nuliams. Pažiūrėk kaip aš buvau spausdinimą parašęs, ar ne taip turėtų būti?
-
procedure atrinkimas; var puse : integer; begin for g:=1 to n do //------------ 111 begin for j:=1 to n-g do //------------ 2222 begin if (A[j].min > A[j+1].min) or (A[j].min = A[j+1].min) and (A[j].sek > A[j+1].sek ) then apkeitimas(j,j+1); end; end; puse:= n div 2; Spausdinimas(puse); end;
Šitas rikiavimo būdas yra tokio principo:
Tarkime turime 5 duomenis
10 3 8 2 3
Ir mums reikia surikiuoti didėjimo tvarka. Taigi panaudosime ciklą cikle. Išorinis ciklas (pavyzdyje '//------------ 111') tarsi pasako kiek skaičių reikia tikrinti, o vidinis (//------------ 2222) perrikiuoja skaičius. Vidinio ciklo esmė perkelti didžiausią skaičių į galą paeiliui lyginant 2 skaičius. Vygdome vidinį ciklą:
10 3 8 2 3
tikrinam pirmą ir antrą narį ir jei pirmas didesnis už antrą tada sukeičiame (šiuo atveju taip ir yra):
3 10 8 2 3 (1 su 2)
dabar tikriname antrą ir trečia ir vėl apkeičiame jei antras didesnis už trečią:
3 8 10 2 3 (2 su 3)
3 8 2 10 3 (3 su 4)
3 8 2 3 10 (4 su 5)
(4 kartai)
įvykdėme vidinį ciklą, kaip matai didžiausias narys atsidūrė gale, reiškia mums nebereikia tikrinti paskutinio nario, nes mes jau žinome, kad gale yra didžiausias ir stovi ten kur jam vieta pagal sąlygą. Taigi kiek kartų įvygdėme vidinį ciklą (ta prasme pilnai įvygdėmė), tiek galime nebetikrinti paskutinių skaičių.
vygdome antrą ratą vidinio ciklo (galime nebetikrinti paskutinio skaičiaus):
3 8 2 3 10
3 8 2 3 10 (1 su 2)
3 2 8 3 10 (2 su 3)
3 2 3 8 10 (3 su 4)
(3 kartai)
2 3 3 8 10 (1 su 2)
2 3 3 8 10 (2 su 3)
(2 kartai)
2 3 3 8 10 (1 su 2)
(1 kartas)
ir viskas, kaip matai ciklų skaičius mažėja. Aišku galima kiekvieną kartą vis po 4 ciklus daryti, bet apkrausime procesorių nereikalingais veiksmais, geriau darome kodą labiau ekonomišką.
-
Užsiiminėju šiek tiek programavimu, pascalį mokykloj išmokau.
a ir b procedūroje "Apkeitimas(a,b: integer)" tėra indeksai, lyg namo adresai duomenims. Jei šeimos tarkim apsikeičia savo būstais, juk nepersineša savo adreso į naująjį būstą, o gauna adresą tokį kokį tas namas ir turėjo iki šiol.
Geriausia atskirus kodo fragmentus skaidyti į atskiras procedūras. Taip kodas tampa labiau suprantamesnis ir lengviau redaguojamas (kodas pagerėja iš programavimo kultūros pusės).
-
Pirmiausia turi pasidaryti duomenų rikiavimą, pagal tas minutes ir sekundes ir tada dalinti duomenis per pusę. (Perrašinėju dabar tau tą procedūrą, kai perrašysiu šitą postą redaguosiu ir įdėsiu savo varijantą).
procedure Apkeitimas(a,b: integer); var tarpinis : integer; begin tarpinis := A[a].min; A[a].min := A[b].min; A[b].min := tarpinis; tarpinis := A[a].sek; A[a].sek := A[b].sek; A[b].sek := tarpinis; end; procedure Spausdinimas(sk : integer); begin for i:=1 to sk do Writeln(Rf,i,'. ',A[i].min,'min. ',A[i].sek, 'sek.'); end; procedure atrinkimas; var puse : integer; begin for g:=1 to n do // kiek duomenų reikia sukeisti iš viso begin for j:=1 to n-g do //kurį sukeičiame (iš esmės didžiausią reikšmę nustumiame į patį galą kiekvienu ciklo pasikartojimu) begin if (A[j].min > A[j+1].min) or (A[j].min = A[j+1].min) and (A[j].sek > A[j+1].sek ) then Apkeitimas(j,j+1); // sukeičiame duomenis jei pirmiau esantys duomenys didesni už sekuntį end; end; puse:= n div 2; Spausdinimas(puse); end;
Paprasčiausias variantas jei gerai supratau ko reikia.
-
Jei esi žalias tai punktas:
"1. Tikrini inputą iki / ženklo (paimi pirmos trupmenos skaitiklį)"
gali kelti klausimų.
P.S. Derėtų prisiminti, kad ne visi čia vien tik persilaužę programuotojai renkasi. Mano idėja būtų, kad prieš prašant pagalbos programavime, žmogus parašytų ir kiek laiko mokosi programavimo. Tuomet būtų galima lengviau spręsti kaip su juo kalbėti.
-
Kokią biblioteką pasiūlytumėt naudoti norint duomenis siųsti į mysql (c++ programoj)? Galbūt kokių tutorialų žinote pagal kuriuos buvote tokią jungtį pasidarę?
P.S. Mano kompiliatorius: Microsoft Visual Studio 2010 :ph34r:
-
kiek esu susidures, mysql_fetch_row dirba leciau uz mysql_fetch_array, nes kazka esu pats susidures, kad su mysql_fetch_row dirbo letai, tai pakeitus i mysql_fetch_array, pasijuto skirtumas zymiai
Nemanau kad gali būti didžiulis skirtumas, nebent duomenų kiekiai yra milžiniški. Paprasčiausiai procesai gal vienas greitesnis o kitas lėtesnis bet vistiek jie labai greiti. Mano nuomonė, nesidomėjau ir nebandžiau.
-
Nors jo, gali ir su mysql_fetch_row daryti jai veikia. Aš savo metodą naudodavau, net nežinau kuris geriau, bet tikriausiai mysql_fetch_row :lol:
-
$duom = mysql_query("SELECT * FROM testas WHERE kazkas='kazkas'"); $n = 0; while ($duom = mysql_fetch_array($duom)) { $n++; $masyvas[n] = $q['name']; // o jai daugiau surasinėsi duomenų tai daryk dvimatį masyvą //$masyvas[n]['vardas'] = $q['name']; //$masyvas[n]['pavarde'] = $q['surname']; //. . . . . }
O poto panaudoti:
echo "Pirmo darbuotojo vardas: ".$masyvas[1]['vardas']; echo "Pirmo darbuotojo pavarde: ".$masyvas[1]['pavarde']; echo "Antro darbuotojo vardas: ".$masyvas[2]['vardas']; // .. . . . .. ir taip toliau
Tikiuosi klaidos kokios neįvėliau, ką tik atsibudau. ^_^
-
Ilgai galvojau apie panašų uždavinį ir man krito į akis keli atvejai
1)
1 1 1 1 1 1
1 1 0 0 0 0
1 1 0 0 0 0
Šiuo atveju matys dvi krūvas
2)
0 0 0 0 1 1
0 0 0 1 1 0
0 0 1 1 0 0
0 1 1 0 0 0
1 1 0 0 0 0
O šiuo atveju penkio krūvos.
Abejuose variantuose atsakymas yra vienetas :] Tad klysti
-
O tai palauk, kokiu tikslu atrinkti 100 ir iš jo dar 15, jei gali iškarto 15?
Nu žmogus logiškai galvojo, bet ne programavimui pritaikyta logika. Jis galvojo kad reikia atrinkti 100 pagal vienus kriterijus ir poto iš to 100 dar 15 pagal kitus kriterijus. O programavime visus kriterijus surašai iškarto ir išrenki 15 rezultatų.
pirmi kriterijai iš vienos lentelės ".DB_RATINGS."
dar kitus kriterijus iš lentelės downloads
Taip kad pats norėdamas gudriai padaryti padariau klaidą, nes čia iš skirtingų lentelių filtrus daro. My bad...
-
Čia išvis tutėtų būti vieną užklausą su table`ų jungimu. O ne penkiasdešimt užklausų ir ciklai, kurie duoda tik apkrovą.
Na tai prašom parašyk tai kodu. Žmogus sakė nelabai moka mysql, aš irgi minimaliom žiniom ir apie mysql kodo optimizavimą tikrai nieko nežinau.
-
$dow = @mysql_query("SELECT rating_item_id, rating_type, rating_datestamp, COUNT(rating_datestamp) as kiekbalsavo, COUNT(rating_datestamp) / 3 + AVG(rating_vote) as viso, AVG(rating_vote) as vidurkis from ".DB_RATINGS." WHERE rating_type='F' AND download_cat='1' AND download_submit='0' AND download_id='$rating_item_id' group by rating_item_id order by viso DESC LIMIT 0,15");
Šitą vietoj pirmosios eilutės dėk, o to kito tikrinimo nereikia ir turėtų veikti manau
EDIT: blogas šitas kodas...
-
Svetainė kur zmones ieškotų programuotojų for fun.
Programuotojų kampas
Atrašyta
Kokią programavimo kalbą nori lavinti? Kalba eina apie svetainių kūrimą ar tarkime c++?