Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
casa verde 2024

Intrerupator cu N - doza doar cu ...

Incalzire casa fara gaz/lemne

Incalzire in pardoseala etapizata
 Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii

Impozite pe proprietati de anul v...
 teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...

Rezultat RMN
 Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor

Discuții despre TVR Sport HD.
 

Totul despre HTML, XHTML, XML, CSS, Flash design, Web Design (tutoriale + dezbateri)

- - - - -
  • Please log in to reply
292 replies to this topic

#253
xnoise

xnoise

    Active Member

  • Grup: Members
  • Posts: 1,310
  • Înscris: 08.02.2007
sa luam intrebarile pe rand:

1: cheia unica: este extrem de folositoare, pentr ca poate face legatura cu alte tabele. Sa zicem ca ai tabela 1 de categorii. In tabela 2 ai produsele. Cel mai usor este sa ai un id unic in tabela 1, id unic pe care sa il asignezi produsului. Astfel vei reusi sa legi produsele de o anumita categorie, fara a mai scrie numele categoriei la fiecare produs (mai ai in vedere si ca respectivele categorii pot avea nume similare, dar pot fi categorii distincte, caz in care fara un id unic nu ai ce face). Si asta e doar unul dintre motivele necesitatii unui id unic. O sa descoperi mai incolo ca nu la absolut toate tabelele ai nevoie de id unic (in cam 10% din cazuri nu este necesar).

2: Cateva comentarii despre scriptul tau:
a: in cazul autenificarii este o idee proasta sa folosesti LIKE (asta pt ca like iti poate intoarce mai multe rezultate decat doresti, si atunci ai o problema).
Exemplu: ai userii: andreiTest si andreiGeorge. $sql = 'SELECT * FROM users WHERE username LIKE \'%andrei%\'' iti va intoarce 2 rezultate. Pe care il loghezi?
Ca sfat: username-ul trebuie sa fie si el unic, si sa contina doar caractere legale (in cele mai mult cazuri litere, cifre, punct, _, -).
b: in cazul unui db_select, nu trebuie sa ii furnizezi conexiunea ca parametru decat daca ai mai multe conexiuni deschise.
Exemplu: mysql_select_db('test');
c: o posibilitate de optimizare pt logare este sa folosesti COUNT(*). COUNT iti intoarce numarul de rezultate obtinute din baza de date. Daca ai 0, e clar ca e incorect. Daca ai 1 singur, e ok, daca ai mai multe ca 1, e clar ca ai o problema. COUNT(*) poate parea similar cu mysql_num_rows(care face cam acelasi lucru dupa opinia multor dintre cei incepatori), dar de fapt COUNT(*) este mult mai rapid (fiind functie de mysql).

Exemplu:

<?php mysql_connect('localhost','root','');
mysql_select_db('test');

$q = 'SELECT COUNT(username=\' . $_POST['username'] . '\') AS count, username, id FROM test_users WHERE username=\'' . $_POST['username'] . '\' GROUP BY username';

//selectul va arata cam asa: SELECT COUNT(username='test') as count, username, id FROM `users` WHERE username='test' GROUP by username
$r = mysql_query($q);
if (mysql_result($r,0,0) == 0) { die('username gresit'); }
elseif (mysql_result($r,0,0) > 1) { die('username gresit'); }
else { echo 'conectare reusita ' . mysql_result($r,0,1); }

PS: sper sa te ajute cu ceva, si sper sa nu fi gresit cate ceva pe acolo (nu sunt un geniu :P)

PS2: evident query-ul era gresit. revin cand il refac :P
PS3: Acum functioneaza: query-ul iti va intoarce un singur rezultat: pe prima coloana va contine COUNT-ul (care trebuie sa fie 1), pe a doua username-ul si pe a treia id-ul. In cazul in care sunt mai multe rezultate, pe a doua si a treia coloana vor sta primele rezultate gasite ca match. Enjoy programming.

Edited by xnoise, 14 August 2007 - 16:38.


#254
DjAndrewMoshu

DjAndrewMoshu

    Member

  • Grup: Members
  • Posts: 536
  • Înscris: 01.09.2006

View Postdarkangelbv, on Aug 14 2007, 17:15, said:

sintaxa folosita de tine: este GRESITA (ce am bolduit nu are ce cauta acolo).
nu poti folosi $_GET daca tu trimiti valorile prin POST.
id este campul unde sunt stocate numele?

Ce incerci tu sa faci este foarte rost gandit... pentru logare nu ar trebui sa folosesti LIKE ci =
de ce?
pai ce te faci daca exista 2 utilizatori, unul marius si unul marius_a si au aceiasi parola amandoi? query-ul va returna 2 valori > login failed

P.S. incearca sa folosesti DIV-uri in loc de tabele.
fie ca folosesc Like sau = mesajul 'Enter username' nu se schimba..chiar daca am si scos parantezele alea..si cele duble de pe margine....
...tabelele le-am folosit ca sa compar scripturile

View Postxnoise, on Aug 14 2007, 17:25, said:

sa luam intrebarile pe rand:

1: cheia unica: este extrem de folositoare, pentr ca poate face legatura cu alte tabele. Sa zicem ca ai tabela 1 de categorii. In tabela 2 ai produsele. Cel mai usor este sa ai un id unic in tabela 1, id unic pe care sa il asignezi produsului. Astfel vei reusi sa legi produsele de o anumita categorie, fara a mai scrie numele categoriei la fiecare produs (mai ai in vedere si ca respectivele categorii pot avea nume similare, dar pot fi categorii distincte, caz in care fara un id unic nu ai ce face). Si asta e doar unul dintre motivele necesitatii unui id unic. O sa descoperi mai incolo ca nu la absolut toate tabelele ai nevoie de id unic (in cam 10% din cazuri nu este necesar).

2: Cateva comentarii despre scriptul tau:
a: in cazul autenificarii este o idee proasta sa folosesti LIKE (asta pt ca like iti poate intoarce mai multe rezultate decat doresti, si atunci ai o problema).
Exemplu: ai userii: andreiTest si andreiGeorge. $sql = 'SELECT * FROM users WHERE username LIKE \'%andrei%\'' iti va intoarce 2 rezultate. Pe care il loghezi?
Ca sfat: username-ul trebuie sa fie si el unic, si sa contina doar caractere legale (in cele mai mult cazuri litere, cifre, punct, _, -).
b: in cazul unui db_select, nu trebuie sa ii furnizezi conexiunea ca parametru decat daca ai mai multe conexiuni deschise.
Exemplu: mysql_select_db('test');
c: o posibilitate de optimizare pt logare este sa folosesti COUNT(*). COUNT iti intoarce numarul de rezultate obtinute din baza de date. Daca ai 0, e clar ca e incorect. Daca ai 1 singur, e ok, daca ai mai multe ca 1, e clar ca ai o problema. COUNT(*) poate parea similar cu mysql_num_rows(care face cam acelasi lucru dupa opinia multor dintre cei incepatori), dar de fapt COUNT(*) este mult mai rapid (fiind functie de mysql).

Exemplu:

<?php mysql_connect('localhost','root','');
mysql_select_db('test');

$q = 'SELECT COUNT(username=\' . $_POST['username'] . '\') AS count, username, id FROM test_users WHERE username=\'' . $_POST['username'] . '\' GROUP BY username';

//selectul va arata cam asa: SELECT COUNT(username='test') as count, username, id FROM `users` WHERE username='test' GROUP by username
$r = mysql_query($q);
if (mysql_result($r,0,0) == 0) { die('username gresit'); }
elseif (mysql_result($r,0,0) > 1) { die('username gresit'); }
else { echo 'conectare reusita ' . mysql_result($r,0,1); }

PS: sper sa te ajute cu ceva, si sper sa nu fi gresit cate ceva pe acolo (nu sunt un geniu :P)

PS2: evident query-ul era gresit. revin cand il refac :P
PS3: Acum functioneaza: query-ul iti va intoarce un singur rezultat: pe prima coloana va contine COUNT-ul (care trebuie sa fie 1), pe a doua username-ul si pe a treia id-ul. In cazul in care sunt mai multe rezultate, pe a doua si a treia coloana vor sta primele rezultate gasite ca match. Enjoy programming.
... in legatura cu LIKE daca ai observat am vrut sa asimilez forma exacta scrisa in form text type adica cu $_POST ...dupa care la reintrarea in pagina sa imi scrie in loc de 'Enter username' - 'Welcome username'.
in legatura cu scriptul care l-ai postat e cea mai buna metoda pentru o returnare de valori precise?
...cat despre cheia unica nu prea am inteles la ce te referi mai exact :cursing:

#255
maxx_oo7

maxx_oo7

    Member

  • Grup: Members
  • Posts: 365
  • Înscris: 14.06.2007
Salut!
Se poate face cumva ca modificand dimensiunile unei pagini sa se modifice si dimensiunile textului (de exemplu un link sau un text)din pagina in functie de marimea paginii repective?

#256
DjAndrewMoshu

DjAndrewMoshu

    Member

  • Grup: Members
  • Posts: 536
  • Înscris: 01.09.2006

View Postmaxx_oo7, on Aug 16 2007, 00:36, said:

Salut!
Se poate face cumva ca modificand dimensiunile unei pagini sa se modifice si dimensiunile textului (de exemplu un link sau un text)din pagina in functie de marimea paginii repective?
Adica pagina sa fie in "restore" si tu sa o redimensionezi cu pointerul, iar fontul textului sa se schimbe odata cu marimea paginii?

#257
maxx_oo7

maxx_oo7

    Member

  • Grup: Members
  • Posts: 365
  • Înscris: 14.06.2007

View PostDjAndrewMoshu, on Aug 16 2007, 09:37, said:

Adica pagina sa fie in "restore" si tu sa o redimensionezi cu pointerul, iar fontul textului sa se schimbe odata cu marimea paginii?

Da , cam asa ceva sau la schimbarea rezolutiei .

#258
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Posts: 12,747
  • Înscris: 24.03.2006

View Postmaxx_oo7, on Aug 16 2007, 16:48, said:

Da , cam asa ceva sau la schimbarea rezolutiei .
se poate, cu Javascript.

de fapt vei combina mai multe scripturi, unul care sa redimensioneze textul cu unul care sa "citeasca" rezolutia

#259
genesiz

genesiz

    New Member

  • Grup: Members
  • Posts: 6
  • Înscris: 27.01.2007
nu stiu de ce va mai bateti capul cu php cand se poate folosi asp ,ajax si Visual Web Developer

#260
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Posts: 12,747
  • Înscris: 24.03.2006

View Postgenesiz, on Aug 16 2007, 20:20, said:

nu stiu de ce va mai bateti capul cu php cand se poate folosi asp ,ajax si Visual Web Developer

Ajax: complicat pentru un incepator, nu este seo friendly (schimba continutul paginii DUPA incarcare, deci motorul de cautare nu prea "vede" paginile respective).
ASP: Nu poate rula pe orice fel de server (cei care ofera gazduire cu suport ASP sunt foarte putini in comparatie cu cei care ofera PHP)
Visual Web Developer: no comment <_<

Edited by darkangelbv, 16 August 2007 - 20:14.


#261
maxx_oo7

maxx_oo7

    Member

  • Grup: Members
  • Posts: 365
  • Înscris: 14.06.2007

View Postdarkangelbv, on Aug 16 2007, 17:23, said:

se poate, cu Javascript.

de fapt vei combina mai multe scripturi, unul care sa redimensioneze textul cu unul care sa "citeasca" rezolutia

Nu sti denumirea unui script care redimensioneaza textul (sau o denumire specifica daca exista).
Multumesc!

#262
DjAndrewMoshu

DjAndrewMoshu

    Member

  • Grup: Members
  • Posts: 536
  • Înscris: 01.09.2006

Quote

$retrieve = mysql_query("SELECT * FROM `nem_users` WHERE `user` LIKE '%" . $_POST["user"] . "%'");

while($id == mysql_fetch_array($retrieve))
{
if ($id == $_POST["user"])
  echo "Welcome " . $_POST["user"];
else
  echo "Enter username";
}
mi-am dat seama ca lipseste ceva in script ... ce e boldit si marit... din cate stiu normal intre paranteze operatorii trebuie sa aiba doua semne (ex: == egal, != non egal)...insa acuma nu-mi scrie nimic si cand scriu un nume si dau enter imi insira in toata pagina "Enter Username'...si apare la nesfarsit... :deadtongue:

#263
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Posts: 12,747
  • Înscris: 24.03.2006

View PostDjAndrewMoshu, on Aug 17 2007, 15:51, said:

mi-am dat seama ca lipseste ceva in script ... ce e boldit si marit... din cate stiu normal intre paranteze operatorii trebuie sa aiba doua semne (ex: == egal, != non egal)...insa acuma nu-mi scrie nimic si cand scriu un nume si dau enter imi insira in toata pagina "Enter Username'...si apare la nesfarsit... :deadtongue:

Nu te inteleg de ce te complici inutil <_<

$rezultat = mysql_query("SELECT * FROM `nem_users` WHERE `user` = '".$_POST["user"]."'");

if(mysql_num_rows($rezultat) == 1)
{
	 while($id = mysql_fetch_array($rezultat)){
		   if ($id == $_POST["user"]){
					echo "Welcome " . $_POST["user"];
		   }
			else{
					echo "Enter username";
			}
	 }
}


#264
DjAndrewMoshu

DjAndrewMoshu

    Member

  • Grup: Members
  • Posts: 536
  • Înscris: 01.09.2006

View Postdarkangelbv, on Aug 19 2007, 14:57, said:

Nu te inteleg de ce te complici inutil <_<

$rezultat = mysql_query("SELECT * FROM `nem_users` WHERE `user` = '".$_POST["user"]."'");

if(mysql_num_rows($rezultat) == 1)
{
	 while($id = mysql_fetch_array($rezultat)){
		   if ($id == $_POST["user"]){
					echo "Welcome " . $_POST["user"];
		   }
			else{
					echo "Enter username";
			}
	 }
}
pentru ca ma aflu in prima faza a invatarii PhP-ului si MySQL-ului  :naughty:

#265
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Posts: 12,747
  • Înscris: 24.03.2006

View PostDjAndrewMoshu, on Aug 19 2007, 16:27, said:

pentru ca ma aflu in prima faza a invatarii PhP-ului si MySQL-ului  :naughty:
si tocmai, ar trebui sa gasesti solutiile cele mai simple nu cele mai complexe :rolleyes:

#266
maxx_oo7

maxx_oo7

    Member

  • Grup: Members
  • Posts: 365
  • Înscris: 14.06.2007
Stie cineva cam cati k "trebuie" sa aiba maxim o pagina Html?

Edited by maxx_oo7, 04 September 2007 - 21:20.


#267
xnoise

xnoise

    Active Member

  • Grup: Members
  • Posts: 1,310
  • Înscris: 08.02.2007
30 este recomandat. Asta inseamna ca pe un dialup de 56 se va incarca in cam 8 secunde (daca nu ma insel). Dupa parerea mea, o pagina ar trebui sa aiba in jur de 60-70 de k, tinand cont de benzile actuale.

#268
Bogdan.

Bogdan.

    New Member

  • Grup: Members
  • Posts: 12
  • Înscris: 31.03.2007

View PostDjAndrewMoshu, on Aug 19 2007, 16:27, said:

pentru ca ma aflu in prima faza a invatarii PhP-ului si MySQL-ului  :naughty:

Salut !
A trecut un an si cateva zile de cand ai deschis postul asta, si tot tufa de venetia ai ramas.
1. Nu stii sa pui intrebari.
2. Nu stii ce vrei sa faci.
3. Da ... ca sa faci o aplicatie trebuie sa ai niste cunostinte, daca nu solide macar minime sa stii sa formulezi o intrebare sa stii ce sa ceri.
4. Iti recomand: gandeste-te ce vrei sa realizezi ca sa stii de ce cunostinte ai nevoie, apoi mergi la o librarie, la raftul de informatica, vezi acolo cateva carti rasfoieste-le care ti se pare buna de inceput cumpar-o, ai rabdare citeste-o invata , studiaza analizeaza, cauta pe net tutoriale, cauta pe net solutii la intrebarile tale, si abea dupa aia cand vezi ca nu ii dai de capat dupa ce-ai transpirat facand teste, pune-o intrebare pe forum.
La absolut tot ce-am avut nevoie sa fac, am gasit raspunsul singur in carti pe site-uri si CITITIND. Citeste 3000 de pagini despre PHP, MySQL, APACHE, CSS, de 2 ori si daca nu vei gasi raspuns la intrebarile care te framanta, intreba-ma pe mine ca-ti dau raspunsul la orice intrebare legata de astea.
Numai bine!
Scuzati greselile. e 05.42 AM.

Edited by Bogdan., 19 September 2007 - 04:43.


#269
maxx_oo7

maxx_oo7

    Member

  • Grup: Members
  • Posts: 365
  • Înscris: 14.06.2007
Cum pot sa fac ceva de genul acesta?  http://www.dynamicdr...magetooltip.htm dar mai usor ; adica sa nu introduc "locatia" imaginilor in acel script ci in link-ul care afiseaza imaginea.
Dace e posibil si fara script  sau folosind unul mai micut.

Edited by maxx_oo7, 21 September 2007 - 18:54.


#270
Zym3r

Zym3r

    Member

  • Grup: Members
  • Posts: 322
  • Înscris: 12.05.2007
Ma cam grabesc, iar daca s-a mai postat, sugerez si eu cu incredere http://w3schools.com

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate