Totul despre HTML, XHTML, XML, CSS, Flash design, Web Design (tutoriale + dezbateri)
Last Updated: Nov 11 2007 09:27, Started by
DjAndrewMoshu
, Sep 03 2006 14:14
·
0
#253
Posted 14 August 2007 - 16:25
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
Posted 14 August 2007 - 19:20
darkangelbv, 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. ...tabelele le-am folosit ca sa compar scripturile xnoise, 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 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
Posted 15 August 2007 - 23:36
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
Posted 16 August 2007 - 08:37
maxx_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? |
#257
Posted 16 August 2007 - 15:48
#258
Posted 16 August 2007 - 16:23
#259
Posted 16 August 2007 - 19:20
nu stiu de ce va mai bateti capul cu php cand se poate folosi asp ,ajax si Visual Web Developer
|
#260
Posted 16 August 2007 - 20:13
genesiz, 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
Posted 16 August 2007 - 20:21
#262
Posted 17 August 2007 - 14:51
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"; } |
|
#263
Posted 19 August 2007 - 13:57
DjAndrewMoshu, 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
Posted 19 August 2007 - 15:27
darkangelbv, 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"; } } } |
#265
Posted 19 August 2007 - 16:48
#266
Posted 04 September 2007 - 21:19
Stie cineva cam cati k "trebuie" sa aiba maxim o pagina Html?
Edited by maxx_oo7, 04 September 2007 - 21:20. |
#267
Posted 04 September 2007 - 22:20
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
Posted 19 September 2007 - 04:42
DjAndrewMoshu, 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
Posted 21 September 2007 - 18:52
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
Posted 24 September 2007 - 21:16
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