Problema de logica, de ce nu merge ?

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

SaftencuAdrian
PHPRomania Supporter
Mesaje: 8
Membru din: Vin Mar 20, 2009 2:35 pm
Localitate: Jimbolia
Contact:

Problema de logica, de ce nu merge ?

Mesajde SaftencuAdrian » Vin Mar 20, 2009 2:59 pm

salut am o problema cu un script, nu face ce vreau sa faca
am lasat descrierea si intrebarile in comenturi in script, va rog sa imi spuneti care e problema, de ce nu merge?

-------------------------------------------------
/*Ideea in mare e ca vreau sa am la sfarsit un array care sa contina cate un index pentru toate randurile dintr-un query, apoi indexul valorile respective, in cazul acesta numele indexului principal e ID-ul din tabel, iar numele array-ul care contine toate indexurile astea e $tags2media
va rog cititi comenturile din script */
$connection = mysql_connect('localhost', 'user', 'parola');
mysql_select_db('db');

$query = "SELECT media_id, media_title, media_type FROM media LIMIT 0, 12";

$result = mysql_query($query);

//loop-ul care citeste fiecare rand din query
while ($row = mysql_fetch_assoc($result)) {

$tags = array();
$tags = explode(' ', $row['media_title']);
$type = $row['media_type'];
$media_id = $row['media_id'];
$media_title = $row['media_title'];

//Sterg indexul daca tagul e null ('')
foreach ($tags as $key => $tag) {

if ($tag == '') {

unset($tags[$key]);

}

}

//creez un array care are ca index ID-ul curent din query
//pentru fiecare ID gasit in query se defineste un nou index in array-ul $tags2media
$tags2media = array();

//fiecare index cu numele ID-ului curent o sa fie un array si o sa contina 3 index-uri :
//title, type si tags care contin valorile respective luate din query
$tags2media[$media_id] = array();
$tags2media[$media_id]['title'] = $media_title;
$tags2media[$media_id]['type'] = $type;
$tags2media[$media_id]['tags'] = count($tags);

}//se termina while loop-ul

//dupa ce am terminat cu while loop-ul array-ul $tags2media nu are toate indexurile
//print_r dupa while loop arata ca $tags2media are doar un index, ultimul, care contine valorile ultimului query

echo '<br><pre>';
print_r($tags2media);
echo'</pre><br>';

//nu inteleg de ce atunci cand setez pentru $tags2media un nou index nu ramane setat dupa ce termina while loop-ul
//fiecare ID din tabelul media e unic (e primary key-ul) si atunci cand setez un index cu ID-ul curent din loop ar trebui ca creeze un index nou
//astept un raspuns
------------------------



Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Vin Mar 20, 2009 3:11 pm

Pentru ca la fiecare iterare reinitializezi $tags2media = array();

Scoate-l in afara loop-ului, mai precis inainte de a incepe loop-ul.
I'm under construction |

SaftencuAdrian
PHPRomania Supporter
Mesaje: 8
Membru din: Vin Mar 20, 2009 2:35 pm
Localitate: Jimbolia
Contact:

Mesajde SaftencuAdrian » Vin Mar 20, 2009 3:21 pm

greseala de idiot, mi-e si rusine ca am postat, mersi fain

kondordv
Junior Member
Mesaje: 42
Membru din: Vin Oct 05, 2007 3:09 pm
Localitate: Timisoara
Contact:

Mesajde kondordv » Mar Mar 24, 2009 4:03 pm

se intampla tuturor, dupa multe ore de lucru nu mai vezi variabilele cum trebuie, de aceea ordinea e mama programarii. Apropo, iti sugerez sa lucrezi prin debugging, ruleaza pas cu pas cand ai probleme si urmareste toate variabilele si functiile, astfel vei gasi totdeauna mai usor problema.
Succes!

P.S. am si eu o problema mica, nu gasesc o functie sau metoda prin care sa afisez o singura linie cu o variabila care se incrementeaza. Afisarea sa fie in acelasi loc aceeasi pozitie, doar variabila se modifica dupa parcurgerea iteratiei!

thedark
PHPRomania Supporter
Mesaje: 23
Membru din: Sâm Apr 29, 2006 5:52 pm
Contact:

Mesajde thedark » Mie Mar 25, 2009 1:48 pm


kondordv
Junior Member
Mesaje: 42
Membru din: Vin Oct 05, 2007 3:09 pm
Localitate: Timisoara
Contact:

Mesajde kondordv » Mie Mar 25, 2009 1:56 pm


Avatar utilizator
kleampa
Senior Member
Mesaje: 2774
Membru din: Dum Iul 10, 2005 2:12 pm
Localitate: Bucuresti
Contact:

Mesajde kleampa » Mie Mar 25, 2009 3:01 pm

$_FILES['input']['name'] dar fisierul tot va ajunge in temp chiar daca tu nu faci nimic cu el

kondordv
Junior Member
Mesaje: 42
Membru din: Vin Oct 05, 2007 3:09 pm
Localitate: Timisoara
Contact:

Mesajde kondordv » Mie Mar 25, 2009 4:00 pm

hmmm, m-am gandit si la ideea ta, numa ca daca fisierul are 100M trebuie sa astept pentru incarcare fara rost, se incarca totul doar pentru ca vreau sa iau un nume de fisier folosind php. Cred ca sap putin sa combin java cu php pentru a obtine acest lucru desi mi s-ar parea mut mai simplu daca s-ar defini o functie in php, sau un nou parametru pentru input in html. E ceva atat de banal si atat de greu...

Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Mie Mar 25, 2009 4:08 pm

I'm under construction |

kondordv
Junior Member
Mesaje: 42
Membru din: Vin Oct 05, 2007 3:09 pm
Localitate: Timisoara
Contact:

Mesajde kondordv » Mie Mar 25, 2009 5:06 pm

nici o problema, numele va fi trimis catre un script php care va genera mai multe fisiere cu diferite extensii si continut legate de numele fisierului care este selectat in functie de multi alti parametrii.

Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Mie Mar 25, 2009 5:16 pm

I'm under construction |

kondordv
Junior Member
Mesaje: 42
Membru din: Vin Oct 05, 2007 3:09 pm
Localitate: Timisoara
Contact:

Mesajde kondordv » Mie Mar 25, 2009 5:36 pm

DA, frumos, asa merge numa ca trebuie sa mai pun mana pe Java mai serios caci se pare ca in multe alte chestii php-ul nu face fata. Mai ales la partea de refresh display, afisarea unui contor ce ruleaza!

kondordv
Junior Member
Mesaje: 42
Membru din: Vin Oct 05, 2007 3:09 pm
Localitate: Timisoara
Contact:

Mesajde kondordv » Joi Mar 26, 2009 11:11 am

Am gasit si ceea ce cautam, dupa ceva sapaturi, este chiar foarte simplu.
Mai jos dau cateva detalii la cum se poate obtine cu un formular doar numele fisierului selectat cu Browse.

In primul rand in fisierul html cu forma trebuie sa lipseasca enctype, sau sa fie scris cum e mai jos:

<form action="lucru.php" method="post" ectype="multipart/form-data">
<input type="file" name="fisier_sursa" maxlength="30">
.......
</form>

Apoi cand forma este trimisa prin submit, in fisierul lucru.php trebuie sa avem banala functie de preluare:

$myfile = $_POST['fisier_sursa'];

astfel am rezolvat problema trimiterii spre script doar a numelui fisierului selectat prin explorare, folosind doar php si html. Simteam eu ca e ceva banal si ca ar fi trebuit sa existe o metoda.


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 11 vizitatori