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

1

Topic: Kintamieji

Gal ir kvailas klausimas, bet kodėl štai toks kodas veikia kaip turi būti (sudaro lentelę):

print "<table border=1><tr><td><i>Pavadinimas</i></td><td><i>Serija</i></td><td><i>Išleidimo data</i></td></tr>";
while ($uzrasas2 = mysql_fetch_object ($rezultatas2)) {
print "<tr>";
print "<td><a href=index.php?adventure=" . $uzrasas2->ZaiID . ">" . $uzrasas2->Pavadinimas . "</a> (" . $uzrasas2->PavadinimasO . ")</td><td>"
. $uzrasas2->SerPavadinimas . "</td><td>" . $uzrasas2->Data . "</td>";
print "</tr>";
}
print "</table>";

Bet pakeisti kodą kintamuoju šiuo būdu neišeina:

$sarasas = "print \"<table border=1><tr><td><i>Pavadinimas</i></td><td><i>Serija</i></td><td><i>Išleidimo data</i></td></tr>\";
while ($uzrasas2 = mysql_fetch_object ($rezultatas2)) {
print \"<tr>\";
print \"<td><a href=index.php?adventure=\" . $uzrasas2->ZaiID . \">\" . $uzrasas2->Pavadinimas . \"</a> (\" . $uzrasas2->PavadinimasO . \")</td><td>\"
. $uzrasas2->SerPavadinimas . \"</td><td>\" . $uzrasas2->Data . \"</td>\";
print \"</tr>\";
}
print \"</table>\";";

Jei paskui vietoje, kur reikia braipyti lentelę, įrašai "$sarasas ;" tai scenarijus veikia, tačiau lentelės vietoje būna tuščia vieta.

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: Kintamieji

Neveikia todėl, kad darai kažkokias nesamones ;)
šita eilutė:

$sarasas = "print \"<table border=1><tr><td><i>Pavadinimas</i></td><td><i>Serija</i></td><td><i>Išleidimo data</i></td></tr>\";

Kintamajam $sarasas priskiria eilutę, kurios tu niekur nenaudoji. O jei ir naudotum, tai ką joje veikia žodis "print"? Kitaip sakant tavo scripte (antrame) nebelieka lentelės antraštės.

3

Re: Kintamieji

Taip. Padariau klaidą neparšydamas \ prieš visus ; (čia norėjau kintamajam $sarasas priskirti viską, ką užrašiau, o ne tik tą eilutę). Dabar klaidą ištaisiau, bet niekas nepasikeitė. Esmė ta, kad visą šitą skriptą reikia kartoti daug kartų skirtingose vietose (tik $uzrasas reikšmės tose vietose skiriasi), tad nusprendžiau vietoje daug kopijavimo tiesiog pakeisti jį visą kintamuoju, o reikiamose vietose tiesiog parašyti "$sarasas ;" - taip ir jei reiktų pakeisti skriptą būtų galima pakeisti jį visur iš karto.

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: Kintamieji

O ką pagal tave daro sekantis scriptas?

$kintamasis = "reiksme";
$kintamasis;

5

Re: Kintamieji

Na aš galvojau, kad užrašą $kintamasis be jokio papildomo paaiškinimo PHP traktuos kaip jo reikšmę, tai yra jei prieš tai bus parašyta $kintamasis="print \"<b>Labas</b>\"\;"; o paskui kur nors tiesiog $kintamasis, tai toje vietoje kur parašyta $kintamasis, bus pastorintu šriftu užrašoma "Labas".

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: Kintamieji

Tai vat labai idomu kodėl taip galvojai, nes tai yra visiška nesamonė ;)

7

Re: Kintamieji

Reiškia neteisingai interpretavau ką kažkur buvau perskaitęs.

Tai reiškia neįmanoma padaryti taip, kad kažkokį teksto gabalą pakeisti kintamuoju ir būtų galima pvz. nebent "<table border=1><tr><td><i>Pavadinimas</i></td><td><i>Serija</i></td><td><i>Išleidimo data</i></td></tr>" priskirti kintamajam, kurį paskui atvaizduoti rašant print $kintamasis , bet ne ilgesnį skriptą su komandomis?

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: Kintamieji

Galima. Tik tai jau vadinasi "funkcijinis programavimas". Ir kodo gabalas priskiriamas ne kintamiesiem, o dedamas į funkcijas ir procedūras (arba metodus objektinio programavimo atveju).

Tai yra vienas iš programavimo pagrindų, kurį reikia išmokti -> http://lt.php.net/manual/en/language.functions.php

(Tiesa yra būdų kaip kintamiesiems priskirtas reikšmes interpretuoti kaip PHP kodą, bet geriau jų nenaudoti)

9

Re: Kintamieji

Ačiū, dabar veikia gerai

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.

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

Re: Kintamieji

šiaip, galima tokiu atveju naudoti komandą eval() - tada turėtų suveikti toks kintamųjų naudojimas. Ir dar spėju, kad žmogus buvo susidūręs su mIRC scriptinimu, nes ten tokius fintus daryti galima ;)

Living in the zirgas galvas country.
Mano blog'as

Re: Kintamieji

Taip, bet rašiau, kad tokių būdų geriau nenaudoti, nes tai šiuo atveju yra visiškai nepateiseinama, neefektyvu, nelogiška ;)