PHP (scripturi, aplicatii, tutorial)

Diverse limbaje, programare, scripting, coduri, unelte specifice etc.
IonPop
Colonel
Mesaje: 2166
Membru din: 02 Oct 2010, 17:55

Mesaj de IonPop »

Pentru a fi mai clar, cand intrebi ceva despre o problema de programare este util sa pui o bucata de cod scurta care poate fi rulata/verificata.

Probabil ca incerci sa folosesti direct rezultatul functiei mysqli_query(), insa trebuie sa preiei datele cu functii de genul:
mysqli_fetch_row
mysqli_fetch_assoc
mysqli_fetch_array

Vezi ca Google stie mai multe decat noi. :-)
Kov.Kriszti
Plutonier major
Mesaje: 218
Membru din: 16 Noi 2009, 14:54
Localitate: Romania

Mesaj de Kov.Kriszti »

Nu încerc să folosesc niciunde rezultatul funcției pentru că funcţia este de tip "InSERT" nu de tip "SELECT". Încerc să inserez într-o bază de date 5 variabile primite prin $_REQUEST[]. Am căutat pe Google, problema e că acolo am văzut cum se rezolvă problema dacă eu selectez din baza de date.
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Mesaj de Manu »

Ai grija ca poate tu vrei sa inserezi de exemplu in col1 un string iar campul din tabel este de tip int. Secventa SQL care compune al doilea parametru al functie mysqli_query() pare sa fie in regula, deci se intampla ceva chiar la inserare, la executarea codului SQL.
Cel mai bine este sa pui aici o secventa de cod si sa spui si despre structura bazei de date.
Ultima oară modificat 18 Ian 2015, 11:26 de către Manu, modificat 1 dată în total.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
IonPop
Colonel
Mesaje: 2166
Membru din: 02 Oct 2010, 17:55

Mesaj de IonPop »

Este imposibil sa ghicim care ar putea fi problema fara sa vedem codul. O alta problema ar putea fi ca una dintre variabilele $var1, $var2 etc nu sunt string-uri, ci obiecte de tip mysqli_result, iar in acel caz din acele variabile obiect ar trebui sa extragi datele folosind functii de genul mysqli_fetch*.
Kov.Kriszti
Plutonier major
Mesaje: 218
Membru din: 16 Noi 2009, 14:54
Localitate: Romania

Mesaj de Kov.Kriszti »

Da, eroarea era că eu încercam să introduc în baza de date $var1 iar $var1 era o variabilă care continea rezultatul unei selecţii tot din bază. Am rezolvat eroarea şi acum merge, mulţumesc pentru ajutor.
Kov.Kriszti
Plutonier major
Mesaje: 218
Membru din: 16 Noi 2009, 14:54
Localitate: Romania

Mesaj de Kov.Kriszti »

Salutare. Aş avea nevoie de ajutor în legătură cu şabloanele in php. Am făcut un şablon HTML dar am ajuns la partea de programare. Am înţeles principiul, conform căruia etichetele care arată ce trebuie înlocuit în pagină sunt schimbate în rezultate de program php. M-am uitat peste un cod care făcea acest lucru dar am rămas nelămurit cu nişte secvenţe din cod. Codul se află la:
http://www.marplo.net/php-mysql/creare- ... e-php.html
Părţile care m-au dat gata sunt:

Cod: Selectaţi tot

$templ_rgx = '/<!-- ('.implode('|', $templ_k).') -->/i';

// şi
echo preg_replace_callback($templ_rgx, function($m) { GLOBAL $templ; return $templ[$m[1]]; }, $tpl);
Avatar utilizator
Manu
General de divizie
Mesaje: 4120
Membru din: 02 Feb 2007, 01:15
Localitate: Cluj-Napoca
Contact:

Mesaj de Manu »

Da, acolo se lucreaza cu Regular Expressions pentru inlocuiri.
Mai intai prin implode se creaza un string dintr-un array, un string delimitat de bare verticale, acela fiind apoi predispus la modificare cu regular expressions.
Eu nu prea am folosit regexp, cel mult m-am jucat uneori cu cate o expresie pentru cautari, de exemplu in Maestro Dex. :)

Daca nu ma apuc de un CMS, prefer totusi sa includ fisiere HTML pentru meniu si altele intr-un site oarecare. Desigur ca e mult mai eficient cu sablon CMS, dar e si destul de greu de intretinut.

Oricum, pana ai chef de regular expressions poti folosi codul ala asa cum e si e ok ca se intelege ce face, poti adauga zone de inlocuire fara probleme in continuare, respectand tiparul.

Oricum, poti citi si un tutorial de regular expressions Perl, acela este folosit si in PHP.
Este interesant lucrul cu regex, ofera posibilitati infinite de lucru cu string-uri.
Errare humanum est, sed perseverare diabolicum...
In forum linguae Latinae venite! (via est: www.limbalatina.ro)
IonPop
Colonel
Mesaje: 2166
Membru din: 02 Oct 2010, 17:55

Mesaj de IonPop »

Utilizarea sabloanelor este intr-adevar o buna practica. Pentru PHP exista multe procesatoare de sabloane dintre care unele de calitate buna. Cred ca tipul de procesare care apare pe pagina de care ai spus este unul manual, extrem de limitat si de nivel scazut incat pe buna dreptate te lovesti de nedumeriri. Scopul utilizarii sabloanelor este acela de a separa codul de programare de codul HTML, fiind mult mai usor de intretinut si mai usor de modificat ulterior partea de design, chiar si de catre cineva care nu stie PHP.
In sabloane insa vei avea la un moment dat nevoie de unele facilitati cum ar fi sa incluzi intr-un punct rezultatul altor sabloane, sa creezi bucle, conditii si diverse alte facilitati care tin strict de prezentarea continutului, nu de logica programului, iar acele facilitati nu pot fi rezolvate printr-o simpla inlocuire cu regular expressions ci ai nevoie de o biblioteca specializata in procesarea sabloanelor.

Stiu ca la inceput pare mai dificil sa inveti sintaxa unui modul, ca si eu in urma cu mai multi ani am preferat sa imi creez propriul procesator de sabloane care oferea mai multe facilitati, cum ar fi si ca un sablon putea avea un marcaj care sa includa un alt sablon pe un numar infinit de niveluri, si cu el am creat site-ul revistei Radar, dar ulterior am vazut ca mi-a luat doar doua trei zile ca sa invat sa folosesc un procesator de sabloane ca lumea, mult mai dezvoltat si testat de mult mai multa lume.

Probabil cel mai folosit procesator de sabloane pentru PHP este Smarty, despre care poti citi in pagina:

http://www.smarty.net/

Sintaxa este mai complexa, dar mai clara si ofera mult mai multe facilitati.
Alternativ, poti citi un articol despre o comparatie intre cateva procesatoare de sabloane pentru PHP in articolul:

http://www.sitecrafting.com/blog/top-5- ... te-engines

Sugestia lui Manu de a citi despre regular expressions este buna, dar vezi ca la inceput s-ar putea sa ai dureri de cap. :-)
Regular expressions este un limbaj in sine, dar exista domenii, cum ar fi procesarea textului, in care nu poti fara regular expressions decat eventual foarte greu si cu un cod mult mai lung, sau poate ca nici asa.
Scrie răspuns