1 (edited by RealEfect 2011-07-14 19:27:11)

Topic: Didele Problema Su Mysql

Taigi visa diena bandau sutaisyti, bet niekaip nepavyksta, nes vis meto kazkokias klaidas, daugeli pavyko sutvarkyti, bet atsirado tokia kuria jau kelias valandas bandau isspresti ir nepavyksta.Taigi turiu 2 failus, tai registracija.php ir index.php, as norejau sukurti pats sau registracijos sistema, todel nesakykite, kad eik kopijuok is neto, ar ka nors tokio, as noriu tai padaryti pats!

registracija.php kodas:

<html>
<head>
</head>
<body>
<?php
mysql_connect("****","****","****") or die(mysql_error());
mysql_select_db("a4750382_ha") or die(mysql_error());
mysql_query("CREATE TABLE vartotojai(id NOT NULL AUTO_INCREMENT,PRIMARY(id),nickname VARCHAR(15),password VARCHAR(15)");
mysql_query("SELECT * FROM vartotojai WHERE nickname='$nikas'") or die(mysql_error());
$vartotojas=mysql_query("INSERT INTO vartotojai(id,nickname,password) VALUES(NULL,'$slapyvardis','$slaptazodis');
$slapyvardis=$_POST['slapyvardis'];
if($nikas == $slapyvardis) 
{
echo "Toks vartotojas svetaineje jau sukurtas";
}
else 
{
echo $vartotojas;
echo "Tavo vartotojas sukurtas!";
}
?>
</body>
</html>

Ir index.php kodas:

<html>
<head>

</head>
<body>
<form method="post" action="registracija.php">
Slapyvardis:<input type="text" name="slapyvardis" />
Slaptazodis:<input type="pass" name="slaptazodis" />
<input type="submit" value="Registruoti" />
</form>

</body>


</html>

O meta klaida tokia,kai paspaudziu submit:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/a4750382/public_html/registracija.php on line 11

Labai dekoju kas pades :)

Re: Didele Problema Su Mysql

Tau juk raso:
Parse error: syntax error, bla bla bla on line 11
11 Eilute yra:
$vartotojas=mysql_query("INSERT INTO vartotojai(id,nickname,password) VALUES(NULL,'$slapyvardis','$slaptazodis');
Paprastai kiekvienam atidaranciam skliaustui turi buti ir uzdarantis.

Cia turetu buti ok
$vartotojas=mysql_query("INSERT INTO vartotojai(id,nickname,password) VALUES(NULL,'$slapyvardis','$slaptazodis') ");

Per daug nesigilinau bet kam tu naudoji sita:
mysql_query("CREATE TABLE vartotojai(id NOT NULL AUTO_INCREMENT,PRIMARY(id),nickname VARCHAR(15),password VARCHAR(15)");
Sita uzklausa sukuria lentele vartotojai. Tai padaryti uztenka viena karta..

Re: Didele Problema Su Mysql

Klaida ten ne dėl skliausto, o dėlto, kad nebuvo eilutės pabaigos imbolio. O šiaip jo, per daug visokių grubių klaidų dar pridaryta. Derėtų biški paprastesnius scriptus bandyti konstruoti.

4 (edited by RealEfect 2011-07-14 21:04:18)

Re: Didele Problema Su Mysql

insane wrote:

Tau juk raso:
Parse error: syntax error, bla bla bla on line 11
11 Eilute yra:
$vartotojas=mysql_query("INSERT INTO vartotojai(id,nickname,password) VALUES(NULL,'$slapyvardis','$slaptazodis');
Paprastai kiekvienam atidaranciam skliaustui turi buti ir uzdarantis.

Cia turetu buti ok
$vartotojas=mysql_query("INSERT INTO vartotojai(id,nickname,password) VALUES(NULL,'$slapyvardis','$slaptazodis') ");

Per daug nesigilinau bet kam tu naudoji sita:
mysql_query("CREATE TABLE vartotojai(id NOT NULL AUTO_INCREMENT,PRIMARY(id),nickname VARCHAR(15),password VARCHAR(15)");
Sita uzklausa sukuria lentele vartotojai. Tai padaryti uztenka viena karta..

Bet as mokiausi siek tiek msql sitas dienas ir uztikau, kad reikia pirmiausia sukurti lentele, kad galetum talpinti duomenis, galima sukurti ir per phpmyadmin, bet as pasirinkau kita varianta.Beto labai aciu matyt buvau pervarges, padejai istaisyti klaida :) Bet dabar kita klaidele, man nesukuria lenteles ir meta sia zinute: Table 'a4750382_ha.vartotojas' doesn't exist .Nors as daviau uzklausa, kad tokia lentele sukurtu, kaip pats matei.

Re: Didele Problema Su Mysql

tai pas tave lentele vartotojas neegzistoja pagal tavo skripta yra vartotojai lentele..

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Didele Problema Su Mysql

RealEfect wrote:

as noriu tai padaryti pats!

Re: Didele Problema Su Mysql

Truksta tiek elementariu PHP teoriniu pagrindu, tiek ir MySQL. Deretu mokintis is knygos, o ne is tutorialu. Taip pat patarciau naudoti koki IDE (NetBeans ar EclipsePDT), jie tau bent padetu rasti elementarias klaidas ir jas pataisyti. Taip pat reiktu pasiskaityti apie MySQL ir ne ti kaip rasyti SQL uzklausas bet ir terinius dalykus apie veikimo logika, duomenu tipus, storage engines, indexus.

P.S. tai, kad zinai kaip siukiojasi vairas, dar nereiskia kad gali su masina vaziuoti i miesta pasivazineti.

P.P.S. senoka bet gan aiski pamokele kaip naudoti MySQL http://php.lt/render/Articles;aid,31

Re: Didele Problema Su Mysql

Neodan wrote:

Truksta tiek elementariu PHP teoriniu pagrindu, tiek ir MySQL. Deretu mokintis is knygos, o ne is tutorialu. Taip pat patarciau naudoti koki IDE (NetBeans ar EclipsePDT), jie tau bent padetu rasti elementarias klaidas ir jas pataisyti. Taip pat reiktu pasiskaityti apie MySQL ir ne ti kaip rasyti SQL uzklausas bet ir terinius dalykus apie veikimo logika, duomenu tipus, storage engines, indexus.

P.S. tai, kad zinai kaip siukiojasi vairas, dar nereiskia kad gali su masina vaziuoti i miesta pasivazineti.

P.P.S. senoka bet gan aiski pamokele kaip naudoti MySQL http://php.lt/render/Articles;aid,31

Sakiau nereikia kritikuoti manes, pasakyk kur mano klaidos butinai atsizvelgsiu i tai, nes as bent jau skaitau pamokas ir visos uzklausos yra rasomos gerai, nesuprantu kas cia blogai pagal tave?Taip klaidos yra del sintakses, bet ne del to, kad nemoku uzklausos, ar jos nezinau.Dabar ziurekit turiu toki koda:

<html>
<head>
</head>
<body>
<?php
$duomenys=mysql_query("SELECT * FROM vartotojas WHERE nickname='$slapyvardis'") or die(mysql_error());
$vartotojas=mysql_query("INSERT INTO vartotojas(id,nickname,password) VALUES(NULL,'$slapyvardis','$slaptazodis')");
$slapyvardis=$_POST['slapyvardis'];
if($duomenys == $slapyvardis) 
{
echo "Toks vartotojas svetaineje jau sukurtas";
}
else 
{
echo $vartotojas;
echo "Tavo vartotojas sukurtas!";
}
?>
</body>
</html>

Ir meta tokia klaida:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'a4750382'@'localhost' (using password: NO) in /home/a4750382/public_html/registracija.php on line 6

Free Web Hosting

PHP Error Message

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/a4750382/public_html/registracija.php on line 6

Free Web Hosting
Access denied for user 'a4750382'@'localhost' (using password: NO)

As esu prisijunges prie duombazes ir noriu sukurti lentele, bet man sia klaida ismete, kad negali paimti duomenu, nors as sukures salyga, kad jeigu nera lenteleje tokiu duomenu, tuomet sukuria tuos duomenis, kokius taip pat nurodziau.Aciu kas pades :)

9 (edited by skuelas 2011-07-15 13:52:54)

Re: Didele Problema Su Mysql

ar tu bent skaitai kas parasyta? aiskiai parasyta tai taip ir yra kaip parasyta, pas tave nera jokio prisijungimo prie DB bent jau is sio pvz nematau...

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

10 (edited by RealEfect 2011-07-15 14:03:50)

Re: Didele Problema Su Mysql

skuelas wrote:

ar tu bent skaitai kas parasyta? aiskiai parasyta tai taip ir yra kaip parasyta, pas tave nera jokio prisijungimo prie DB bent jau is sio pvz nematau...

Yra, va dabartinis kodas:

<html>
<head>
</head>
<body>
<?php
mysql_connect("*****","*****","******") or die(mysql_error());
mysql_select_db("a4750382_ha") or die(mysql_error());
$duomenys=mysql_query("SELECT * FROM vartotojas WHERE nickname='$slapyvardis'") or die(mysql_error());
$slapyvardis=$_POST['slapyvardis'];
if($duomenys == $slapyvardis) 
{
echo "Toks vartotojas svetaineje jau sukurtas";
}
else 
{
echo $vartotojas;
echo "Tavo vartotojas sukurtas!";
}
?>
</body>
</html>

Dabar jau jokiu klaidu nera, tai yra nemeta, bet yra vienas bet, kai paspaudziu registruoti,, man uzregistruoja ir paraso zinute "Tavo vartotojas sukurtas!", bet kai paspaudziu antra karta, kad registruotu, ta vartotoja, tai vel raso ta pati, nors turetu rasyti, jau pirma zinute, gal zinote kas blogai.Ir man idomu, kai as priskiriu $slapyvardis nickname, tai tie slapyvardziai visi yra patalpinami i $slapyvardis?Kaip sitoje vietoje galima butu istaisyti,a ciu!

Re: Didele Problema Su Mysql

Pasiimk angloną ir išsiversk:

"Warning: mysql_query() [function.mysql-query]: Access denied for user 'a4750382'@'localhost' (using password: NO) in /home/a4750382/public_html/registracija.php on line 6".

Re: Didele Problema Su Mysql

RealEfect, trys eilutės iš tavo kodo:

$duomenys=mysql_query(" (...) nickname='$slapyvardis'") or die(mysql_error());
$slapyvardis=$_POST['slapyvardis'];
if($duomenys == $slapyvardis)

Gal gali man apaiškinti: kokios $duomenys ir $slapyvardis kintamųjų reikšmėm kiekvienoje iš tų eilučių?

13 (edited by Neodan 2011-07-15 15:26:45)

Re: Didele Problema Su Mysql

As nesuprantu kaip sitaip galima, net neperskaicius elementariu pagrindu teorijos apsimesti kad viska supranti ir bandyti "programuoti"?
Bent manualuose galetum pasiziureti kaip yra naudojamos vienos ar kitos f-jos, jei jau nezinai.

P.S. tavo manymu kokia reiksme yra kintamojo $duomenys ?

P.P.S. is tavo codo galiu pasakyti kad truksta elementariu php ir mysql ziniu, nesuvoki veikimo logikos, bei kvailai darai, kad bandai naudoti kazkieno parasytus scriptus (ir dar kreivai parasytus).

P.P.P.S. negi taip sunku yra nusipirkt (arba atsisiust is interneto) knyga ir mokintis jos pagalba? Nes kitaip tu visus uzknysi ir busi isizeides, kad visi ant taves stumia.

Re: Didele Problema Su Mysql

minde wrote:

RealEfect, trys eilutės iš tavo kodo:

$duomenys=mysql_query(" (...) nickname='$slapyvardis'") or die(mysql_error());
$slapyvardis=$_POST['slapyvardis'];
if($duomenys == $slapyvardis)

Gal gali man apaiškinti: kokios $duomenys ir $slapyvardis kintamųjų reikšmėm kiekvienoje iš tų eilučių?

Gerai suprantu cia logikoas nera:nickname='$slapyvardis', taigi dabar palikau tik nickname toje vietoje.Gerai pirmiausia kintamasis turi mysql uzklausa duomenu paemimui is lenteles pavadinimu vartotojas, prie kurios as esu prisijunges.Tada kintamajame $slapyvardis as issaugau, tai ka vartotojas parase praeitame puslapyje i index.html esancia slapyvardzio forma.Galiausiai trecioje eiluteje pasinaudodamas php salyga if, as iterpiu  kintamaji $duomenys, kuriame yra issaugoti vartotojo duomenys, kaip jau minejau anksciau ir tuomet ta kintamaji lyginu su kintamuoju $slapyvardis, kad patikrinciau ar vartotojo ivesti duomenys ir lenteleje esantys sutampa.Viska paaiskinau detaliai, dabar tu man atsakyk i neatsakytus klausimus, ar kai surenka is lenteles duomenis, tai kiekvienas slapyvardis yra prilyginimas tam mano kintamajam $slapyvardis, ar visi?Jei ne, tai kaip padaryti, kad butu patikrinamas kiekvienas atskirai?I kitu kvailus komentarus nieko neraysiu, nes matau, kad kai kurie is ju apskritai nesupranta forumo reiksmes, kiti tvirtina tai ko nera.Tikiuosi atsiras tas kuris man pades, klaida islieka ta pati, kuri buvo parasyta mano paskutiniame komentare.Dekoju ir laukiu pagalbos!

15 (edited by RealEfect 2011-07-15 16:09:00)

Re: Didele Problema Su Mysql

skuelas wrote:
RealEfect wrote:
minde wrote:

RealEfect, trys eilutės iš tavo kodo:

Gal gali man apaiškinti: kokios $duomenys ir $slapyvardis kintamųjų reikšmėm kiekvienoje iš tų eilučių?

Gerai suprantu cia logikoas nera:nickname='$slapyvardis', taigi dabar palikau tik nickname toje vietoje.Gerai pirmiausia kintamasis turi mysql uzklausa duomenu paemimui is lenteles pavadinimu vartotojas, prie kurios as esu prisijunges.Tada kintamajame $slapyvardis as issaugau, tai ka vartotojas parase praeitame puslapyje i index.html esancia slapyvardzio forma.Galiausiai trecioje eiluteje pasinaudodamas php salyga if, as iterpiu  kintamaji $duomenys, kuriame yra issaugoti vartotojo duomenys, kaip jau minejau anksciau ir tuomet ta kintamaji lyginu su kintamuoju $slapyvardis, kad patikrinciau ar vartotojo ivesti duomenys ir lenteleje esantys sutampa.Viska paaiskinau detaliai, dabar tu man atsakyk i neatsakytus klausimus, ar kai surenka is lenteles duomenis, tai kiekvienas slapyvardis yra prilyginimas tam mano kintamajam $slapyvardis, ar visi?Jei ne, tai kaip padaryti, kad butu patikrinamas kiekvienas atskirai?I kitu kvailus komentarus nieko neraysiu, nes matau, kad kai kurie is ju apskritai nesupranta forumo reiksmes, kiti tvirtina tai ko nera.Tikiuosi atsiras tas kuris man pades, klaida islieka ta pati, kuri buvo parasyta mano paskutiniame komentare.Dekoju ir laukiu pagalbos!

Tu zudai mane (nepyk minde nesusilaikau)

Cia pas jus taip iprasta siame forume spamminti?Nes tokias zinutes kaip raso sis veikejas reiktu trint lauk.

Re: Didele Problema Su Mysql

to RealEfect: esme ta, kad vietoj to kad pasiskaitytum teorija puoli rasyti i foruma vos tik tau neveikia tavo parasyta nesamone (kai vietoj to galetum pasitikrinti ar tikrai teisingai viska parasei). Tu net i mindes klausima neisigylinai. Kadangi matau, kad tu tingi pasinaudoti savo smeginimis ir atkaklei reki, kad supranti ka rasai tai parasau keliata pastebejimu:
1. kintamojo $duomenys reiksme nera slapyvardis, o uzklausos rezultato resursas (resource) arba false (jei ivyko klaida), tai zinotum jeu butum bent pasiziurejes i manuala (http://php.net/manual/en/function.mysql-query.php).
2. mysql_query iskarto siuncia SQL uzklausa serveriui , taigi negalima daryti taip:

$duomenys=mysql_query("SELECT * FROM vartotojas WHERE nickname='$slapyvardis'") or die(mysql_error());
$vartotojas=mysql_query("INSERT INTO vartotojas(id,nickname,password) VALUES(NULL,'$slapyvardis','$slaptazodis')");

Nes tu pabandai nuskaityti, o poto iskarto iterpti nauja irasa.

Manau net tiek uztenka tam kad suprastum, kad tau reikia pasimokinti normaliai o ne sh.. stumti.

P.S. tu pats nesupranti forumo paskirties jei tikiesi, kad cia turi visi pulti tau gatavus variantus rasyti ar mokinti elementariu pagrindu. Cia tau ne koks vaiku darzelio forumas.

Re: Didele Problema Su Mysql

Neodan wrote:

to RealEfect: esme ta, kad vietoj to kad pasiskaitytum teorija puoli rasyti i foruma vos tik tau neveikia tavo parasyta nesamone (kai vietoj to galetum pasitikrinti ar tikrai teisingai viska parasei). Tu net i mindes klausima neisigylinai. Kadangi matau, kad tu tingi pasinaudoti savo smeginimis ir atkaklei reki, kad supranti ka rasai tai parasau keliata pastebejimu:
1. kintamojo $duomenys reiksme nera slapyvardis, o uzklausos rezultato resursas (resource) arba false (jei ivyko klaida), tai zinotum jeu butum bent pasiziurejes i manuala (http://php.net/manual/en/function.mysql-query.php).
2. mysql_query iskarto siuncia SQL uzklausa serveriui , taigi negalima daryti taip:

$duomenys=mysql_query("SELECT * FROM vartotojas WHERE nickname='$slapyvardis'") or die(mysql_error());
$vartotojas=mysql_query("INSERT INTO vartotojas(id,nickname,password) VALUES(NULL,'$slapyvardis','$slaptazodis')");

Nes tu pabandai nuskaityti, o poto iskarto iterpti nauja irasa.

Manau net tiek uztenka tam kad suprastum, kad tau reikia pasimokinti normaliai o ne sh.. stumti.

P.S. tu pats nesupranti forumo paskirties jei tikiesi, kad cia turi visi pulti tau gatavus variantus rasyti ar mokinti elementariu pagrindu. Cia tau ne koks vaiku darzelio forumas.

Dekui uz pagalba, bet supranti, as paaiskinau viska apie tas uzklausas ne technine kalba o bendrine ir pasakyk man kodel taip nera kaip as parasiau?Juk is tikruju ta uzklausa yra saugoma tame kintamajame, o kartu saugomi ir tie duomenys, kuriuos paemiau.Dar kartu aciu, nes tikrai nezinojau, kad uzklausos esancios kintamuosiuose is karto vykdomos :) Dabar jeigu kalbant apie tai, ka tu parasei, kad as prasau jusu parasyta visa koda, tai pasiziurek i mano pirma posta, sita kodas pats nuo pradzios iki pabaigos parasiau, bet atsirado klaidu, todel ir paprasiau kad padetumete, tik nesitikejau tokios reakcijos...

18 (edited by skuelas 2011-07-15 17:43:14)

Re: Didele Problema Su Mysql

ziurek zmogau, pateikiu 3 linkus kur internete tokiu pamokeliu n... Bent jau atidziai persiziurek pabandyk realiai kas su kuo valgoma ir kaip valgoma tada vel bandyk daryti tai ka nori daryti ir jei mes tas pacias klaidas ar turesi tu paciu problemu kaip dabar mesk programavima tai ne tau...
http://www.w3schools.com/php/default.asp
http://www.w3schools.com/sql/default.asp
http://www.w3schools.com/html/default.asp

P.S. ziuriu kad jau php.lt forume uz tave viska padare...

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: Didele Problema Su Mysql

RealEfect wrote:

Dekui uz pagalba, bet supranti, as paaiskinau viska apie tas uzklausas ne technine kalba o bendrine ir pasakyk man kodel taip nera kaip as parasiau?Juk is tikruju ta uzklausa yra saugoma tame kintamajame, o kartu saugomi ir tie duomenys, kuriuos paemiau.Dar kartu aciu, nes tikrai nezinojau, kad uzklausos esancios kintamuosiuose is karto vykdomos :) Dabar jeigu kalbant apie tai, ka tu parasei, kad as prasau jusu parasyta visa koda, tai pasiziurek i mano pirma posta, sita kodas pats nuo pradzios iki pabaigos parasiau, bet atsirado klaidu, todel ir paprasiau kad padetumete, tik nesitikejau tokios reakcijos...

Reakcija tokia, nes niekam neįdomu kas savaitye kažkam aiškint kaip daugybos lentelė atrodo. Mes čia galim užvest ant kelio, arba padėt spręst rimtesnes bėdas. O dabar pas tave yra eilė elementarių sistemiškų bėdų, dėl kurių niekas su tavim nenori terliotis, jau vien dėlto, kad ir pats nelabai nori, nes akivaizdžiai lauki ištaisytų klaidų ant lėkštutės padėtų. Bandymai tau padėt juk buvo. Tik panašu, kad be atgalinės reakcijos. Visada yra pati pradžia, kurią turi pats praeiti ir suprasti, kad be dokumentacijų, bet domėjimosi, be loginio mastymo ir be savo paraštyto kodo skaitymo vėl ir vėl, kol surandi klaidą niekur programavime nenukeliausi.

Dar dėl reakcijų tai aš visiem rekomenduoju tiesiog nieko nerašyti jeigu tai yra nelabai konstruktyvu (pvz.: "OMG! lol!". (-;