Warning: count(): Parameter must be an array or an object that implements Countable in /home/pasokime/domains/mysql.lt/public_html/forumas/include/parser.php on line 820

Topic: Sudėtis

Niekaip nesigauna:

UPDATE lentele SET taskai=taskai+0.1 WHERE nickas=Min2liz

Ko tik nebandžiau, bet kai žirniai į sieną. Neveikia. Nesudeda skaičių. Kas buvo susidūrę su skaičiavimu?

Re: Sudėtis

Neradau tokio dalyko vadovėlyje. Aš tai išimčiau į php kintamąjį, sudėčiau ir pamerkčiau į duombazę atgal.

Re: Sudėtis

Bandziau ir taip daryti, ir taip nesigauna.

$sql = mysql_fetch_assoc(mysql_query("SELECT taskai FROM lentele WHERE nickas=Min2liz"));
$taskai = $sql['taskai'] + 0.01;
mysql_query("UPDATE lentele SET taskai=$taskai WHERE nickas=Min2liz");

Ir nieko ...


Warning: count(): Parameter must be an array or an object that implements Countable in /home/pasokime/domains/mysql.lt/public_html/forumas/include/parser.php on line 820

4

Re: Sudėtis

Gal laukas "taskai" yra sveikojo tipo ("integer") ir todel negali pridėti trupmeninio skaičiaus? Ar padarytas prisijungimas prie duomenų bazės?

Aš tai per PHP daryciau (čia $prisijungimas - prisijungimas prie duomenų bazės, kuris turėtų būti su duomenų baze atliekamų PHP veiksmų pradžioje). Bet netikrinau, gal ir klaidų čia privėliau.

$uzklausa="SELECT taskai FROM lentele WHERE nickas=Min2liz";
$rezultatas=mysql_query($uzklausa, $prisijungimas);
$uzrasas=mysql_fetch_object($rezultatas);
$taskai= $uzrasas->taskai + 0.01;
$uzklausa="UPDATE lentele SET taskai={$taskai} WHERE nickas=Min2liz";
mysql_query($uzklausa, $prisijungimas);

Mintys - blogas apie gyvenimą, politiką, ekonomiką, kultūrą, mokslą ir kitką.
Adventure Lietuva - kompiuteriniai žaidimai, kurie yra meno forma.
Pasaulio šalių himnai - įrašai, žodžiai ir jų vertimai, informacija.

Re: Sudėtis

Min2liz wrote:

Niekaip nesigauna:

UPDATE lentele SET taskai=taskai+0.1 WHERE nickas=Min2liz

Ko tik nebandžiau, bet kai žirniai į sieną. Neveikia. Nesudeda skaičių. Kas buvo susidūrę su skaičiavimu?

O tai kodėl kai rašot "neveikia" neparašot kokias klaidas rodo, kokį rezultatą rodo ar kitus simptomus iš kurių sprendžiate, kad kažkad neveikia?

Pvz.:

mysql> SELECT 1 + 1.1;
+---------+
| 1 + 1.1 |
+---------+
|     2.1 |
+---------+
1 row in set (0.01 sec)

Viskas veikia.

Pabandyk pažiūrėt:
a) ar stulpelis taškai yra realaus tipo (t.y. ar jame galima laikyti realius skaičius);
b) ar jau tame stulpelyje yra kokia nors reikšmė (0, 1, 2.5 ir pan.);
c) ar yra iš vis įrašų atitinkančių tavo WHERE salygą;

Re: Sudėtis

DY wrote:

Ar padarytas prisijungimas prie duomenų bazės?

Patylėsiu

DY wrote:

$uzklausa="SELECT taskai FROM lentele WHERE nickas=Min2liz";
$rezultatas=mysql_query($uzklausa, $prisijungimas);
$uzrasas=mysql_fetch_object($rezultatas);
$taskai= $uzrasas->taskai + 0.01;
$uzklausa="UPDATE lentele SET taskai={$taskai} WHERE nickas=Min2liz";
mysql_query($uzklausa, $prisijungimas);

Pasakyk kuo dabar taip skiriasi nuo mano parašymo, išskyrus kad pas tave dvigubai eilučių.

minde wrote:

O tai kodėl kai rašot "neveikia" neparašot kokias klaidas rodo, kokį rezultatą rodo ar kitus simptomus iš kurių sprendžiate, kad kažkad neveikia?

Esmė ta ir yra kad visiškai jokios klaidos nemeta.

minde wrote:

b) ar jau tame stulpelyje yra kokia nors reikšmė (0, 1, 2.5 ir pan.);

Tai juk rašau UPDATE, tai reiškias gali būti. Default nustatytas 0

minde wrote:

c) ar yra iš vis įrašų atitinkančių tavo WHERE salygą;

Jei nebūtų salygos kam tada daryčiau WHERE?

Neįsižeiskit bet toks įspūdis susidarė kad visišku debilu laikot. Ir atsakinėjat kaip užsiciklinę neatkreipiat į patį klausimą. Manau galit rakinti temą, nes su tokiais atsakymais toli nenueisiu. Dėkui už tai kad ir ką parašėt.

7 (edited by DY 2006-11-18 21:09:23)

Re: Sudėtis

"Pasakyk kuo dabar taip skiriasi nuo mano parašymo, išskyrus kad pas tave dvigubai eilučių." - pažymėjau $prisijungimas , kad atkreipčiau dėmesį, kad reikia prisijungti prie duomenų bazės norint per PHP ją pasiekti. Kaip turbūt pastebėtum perskaitęs kitas temas, čia lankosi įvairūs žmonės - kai kas dar ką tik instaliavęs MySQL būna ir bando pagal instrukcijas kažką padaryti, kiti pavyzdžiui yra programavę su kitom programavimo kalbom, bet tik pradeda su PHP, dar kiti jau daugiau moka - vien iš nicko nesuprasi, kiek tas žmogus žino apie MySQL ar PHP todėl natūralu, kad žmonės primena ir atrodo savaime suprantamus dalykus, nes jei kažkas tik pradeda su MySQL/PHP dirbti tai jam tie dalykai nebus savaime suprantami. Ir pradedantieji tai ne debilai.

Mintys - blogas apie gyvenimą, politiką, ekonomiką, kultūrą, mokslą ir kitką.
Adventure Lietuva - kompiuteriniai žaidimai, kurie yra meno forma.
Pasaulio šalių himnai - įrašai, žodžiai ir jų vertimai, informacija.

Re: Sudėtis

Niekas dėl nieko neįsižeidinėja. Problema tame, kad taip kaip tu uždavei klausima tikrai galima buvo spręsti, kad esi dar naujokas dirbamas su duombazėm. Jeigu tarkim aš ilgai užtrukęs prie kažkokios bėdos bandyčiau ieškoti pagalbos tai pateikčiau truputį daugiau duomenų:
- lentelės struktūrą;
- pradinių duomenų samplą;
- tų pačių duomenų samplą po užklausos;
- viską, ka pagražino MySQL'as vykdant užklausą;
- mysql versiją;

Min2liz wrote:

Esmė ta ir yra kad visiškai jokios klaidos nemeta.

Esmė, kad to nepaminėjai klausime. Taip pat esmė, kad ne vien klaidas pagražina užklausos. Gali pagražinti tarkim, kad užklausa pakeitė 0 eilučių, kad būtų pakankamai informatyvu ir padėtų

Min2liz wrote:

Tai juk rašau UPDATE, tai reiškias gali būti. Default nustatytas 0

Jeigu tu pateikei UPDATE užklausą, tai man dar tikrai neaišku, kokios yra default reikšmės, kiek yra įrašu lentelėje, ir kokios yra stulpelių reikšmės (niekas juk netrukdo turėti NULL reikšmę stulpelyje, kai jo DEFAULT reikšmė yra 0, turint omenyje, kad nenurodei stulpelio tipo).

Min2liz wrote:

Jei nebūtų salygos kam tada daryčiau WHERE?

Aš klausiau ar tuo menu, kai vykdei užklausą lentelėje buvo įrašų atitinkančių WHERE sąlygą. To klausiau, nes klausimas buvo skurdžiai suformuluotas. Tokiais atvejais iš žmonių tenka visą informaciją išgaudinėti papildomai.

Min2liz wrote:

Neįsižeiskit bet toks įspūdis susidarė kad visišku debilu laikot. Ir atsakinėjat kaip užsiciklinę neatkreipiat į patį klausimą. Manau galit rakinti temą, nes su tokiais atsakymais toli nenueisiu. Dėkui už tai kad ir ką parašėt.

Matai, reikalas tas, kad kalba eina elementarią užklausa su elementaria operacija. Aš esu 100% tikras, kad tiesiog kažkur padarei žioplą klaidą. Ypač tą jausmą pastiprina tas faktas, kad neatsakei į mano a) klausimą (kaip ir į DY pastebėjimą dėl stulpelio tipo). Taip pat iš pateikto PHP kodo matosi, kad netikrini nei kokias klaidas pagražino mysql'as nei kiek eilučių paveikė užklausos.

Temos čia nėra rakinamos ir tikriausiai nebus, visada galima jas papildyti ir pratęsti.