Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Blocare google chrome cu master p...

sfat achizitie telefon pana in 20...

Stoc Smart CAM TV

Ce corzi de chitara sa cumpar?
 Galaxy A54 compass defect?

Cum conectez un switch WIFI la 60...

Cumparare AC Gree [Buget maxim 30...

Telekom
 Ce e aratarea asta ?

Probleme timonerie schimbator sau...

Numar strada gresit in contractul...

Centrala Ariston Cares Premium 24...
 La multi ani @Klasse!

La multi ani @shmecherul!

pareri ipad 6-2018- flip

Cum au aparut supermarketurile in...
 

Inceput de saptamana.. vineri...

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

#1
tibixdj

tibixdj

    Junior Member

  • Grup: Members
  • Posts: 69
  • Înscris: 28.06.2006
salut, vreau sa fac un script care sa:
inceapa saptamana cu ziua de vineri gen tab-uri... fiecare zi a sapt sa fie un tab si pe tab-ul respectiv sa arate ce e in ziua respectiva... adica sa imi extraga din baza de date..
dar, cand omul acceseaza pagina de start a scriptului, sa afiseze ziua curenta.
si as prefera sa folosesc si jquery pe taburi dar asta nu are legatura..

intrebarea mea ... cum fac sa imi calculeze, ultima vineri, si sa imi arate in continnuare pana la urmatoarea joi...  si sa imi afiseze data gen: "Vineri 15.05",

#2
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
strtotime(), 'last friday'

#3
tibixdj

tibixdj

    Junior Member

  • Grup: Members
  • Posts: 69
  • Înscris: 28.06.2006
ok. ms de indiciu... am reusit ceva... dar..
am facut asa:
$vi = date("d-m", strtotime("last Friday"));
$sa = date("d-m", strtotime("last Saturday"));
$du = date("d-m", strtotime("last Sunday"));
$lu = date("d-m", strtotime("last Monday"));
$ma = date("d-m", strtotime("Tuesday"));
$mi = date("d-m", strtotime("next Wednesday"));
$jo = date("d-m", strtotime("next Thursday"));
echo "<br />";
echo $vi;
echo "<br />";
echo $sa;
echo "<br />";
echo $du;
echo "<br />";
echo $lu;
echo "<br />";
echo $ma;
echo "<br />";
echo $mi;
echo "<br />";
echo $jo;
iar asta imi afiseaza asta:
15-05
16-05
17-05
18-05
19-05
20-05
21-05

cum pot face sa imi schimbe.. daca e azi e marti. sa scrie data de azi.. si pentru miercuri sa scrie next ... in loc de last..  cred ca intelegeti ce vreau sa zic.. ms mult

Edited by tibixdj, 19 May 2009 - 22:20.


#4
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Deci practic, vrei ca ziua de azi sa functioneze pe post de pivot, iar in jurul ei sa "adaugi" 4 zile inainte, si 2 dupa, indiferent ce zi a saptamanii e azi, corect?

Daca e asa, asta e total diferit de ce ai intrebat initial. Un astfel de cod ar trebui sa arate curat asa:
	 1  <?php
	 2  $weeklayout = array(-4,-3,-2,-1,0,1,2);
	 3  foreach($weeklayout as $delta) {
	 4		  echo date('d-m', strtotime(sprintf('%d day',$delta))),'<br />';
	 5  }

Sfaturi:
1. Incearca sa gandesti obiectiv, concret, cand iti pui o problema, altfel risti sa alergi dupa cai verzi pe pereti (i.e. o problema gresita, care nu e problema pe care o ai defapt)
2. Daca abordezi problema mai matematic, de multe ori scrii mai putin cod, dar si mai flexibil. Asa cum l-am scris eu, nu numai ca sunt de patru ori mai putine LOCs (lines of code), dar e si mai usor sa-l extinzi daca cumva vrei sa-l lasi pe user sa decida cate zile din saptamana sa-i afiseze calendarul inainte de ziua curenta si cate dupa (pentru ca presupun ca asta incerci sa faci, un calendar); pentru asta ai putea folosi range() pentru a genera $weeklayout, pe baza inputului. Apoi poti impacheta totul intr-o functie cu doi parametri (mai sus ar avea valoarea -4 si 2), si voila, ai o bucatica de cod reutilizabila si peste 10 ani - si flexibil, si mic, si elegant

Deci fa functia, sa vedem cat de bine si de flexibil reusesti sa abordezi problema, posteaz-o, si cine stie, poate mai inveti ceva nou si delicios :)

:cheers:

Edited by OriginalCopy, 19 May 2009 - 23:07.


#5
tibixdj

tibixdj

    Junior Member

  • Grup: Members
  • Posts: 69
  • Înscris: 28.06.2006
da... un soi de calendar vreau sa fac.. dar pt cinema.. ceva gen cinemagia... si sa imi culeaga din baza filmele pt data respectiva... de exemplu acolo arata doar de azi (miercuri) pana martea viitoare.. eu vreau sa afiseze de vinerea trecuta pana joi, saptamana curenta, inclusiv... si cu o alta interfata, care sa poata adauga acele filme...

#6
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Initial iti raspunsesem complet la intrebare, dar m-am gandit ca ar fi mai in interesul tuturor sa-ti dau solutia stupida, si in schimb sa creez o provocare pentru toti:

	 1  <?php
	 2  $snapshots = array(
	 3		  array(-2,4),
	 4		  array(-3,3),
	 5		  array(-4,2),
	 6		  array(-5,1),
	 7		  array(-6,0),
	 8		  array(0,6),
	 9		  array(-1,5)
	10  );
	11  list($s,$e) = $snapshots[date('w')];
	12  $weeklayout = range($s,$e);
	13  foreach($weeklayout as $delta) {
	14		  echo date('d-m', strtotime(sprintf('%d day',$delta),strtotime('-2 week'))),PHP_EOL;
	15  }

Apelul strtotime('-2 week') e acolo ca sa simuleze cum a aratat "saptamana" de acum doua saptamani, dar tu poti sterge definitiv apelul, pentru ca ia valoarea implicita time():
date('d-m', strtotime(sprintf('%d day',$delta)))
Deci daca te intereseaza sa intelegi mai multe, poti participa la concurs aici:   [CONCURS] Gaseste formula, unde poti vedea si raspunsul initial.

Edited by OriginalCopy, 20 May 2009 - 12:43.


#7
tibixdj

tibixdj

    Junior Member

  • Grup: Members
  • Posts: 69
  • Înscris: 28.06.2006
da, multumesc OriginalCopy pt soluie.. am reusit sa o imi afiseze asa cum doream
dar acum.. mai mai o problema...
ce structura sa fac bazei de date...

Daca ziua aleasa e 03-06, sa imi afiseze filmele din ziua 03-06.. - REZOLVAT
dar unele filme, au ore diferite de difuzare..azi e la 17:00, maine e la 18:30...
si inca ceva.. ce fel de UI sa fac pt introducere... cu checkbox sau....?

Multumesc inca odata

#8
ThunderSS

ThunderSS

    Active Member

  • Grup: Members
  • Posts: 1,102
  • Înscris: 27.09.2007

View Posttibixdj, on 3rd June 2009, 14:35, said:

da, multumesc OriginalCopy pt soluie.. am reusit sa o imi afiseze asa cum doream
dar acum.. mai mai o problema...
ce structura sa fac bazei de date...

Daca ziua aleasa e 03-06, sa imi afiseze filmele din ziua 03-06.. - REZOLVAT
dar unele filme, au ore diferite de difuzare..azi e la 17:00, maine e la 18:30...
si inca ceva.. ce fel de UI sa fac pt introducere... cu checkbox sau....?

Multumesc inca odata

Poti sa te inspiri de pe site-urile de profil.

Structura bazei de date, daca am inteles exact poate fi facuta usor in mai multe tabele:
TABEL1 : Pastrezi datele despre film. Ai nevoie de un ID unic pentru fiecare film.
TABEL2 : Un tabel cu coloanele data (date), film (int), ora (date)

Astfel banuiesc ca se rezolva problema ta. Alte tabele pot fi adaugate pentru informatii de acest gen.

Incearca sa faci interfata cat mai usor de folosit pentru utilizatori avand in vedere informatile pe care vrei sa le obti de la acestia.

Edited by ThunderSS, 03 June 2009 - 16:46.


#9
tibixdj

tibixdj

    Junior Member

  • Grup: Members
  • Posts: 69
  • Înscris: 28.06.2006

View PostThunderSS, on 3rd June 2009, 17:46, said:

Poti sa te inspiri de pe site-urile de profil.

Structura bazei de date, daca am inteles exact poate fi facuta usor in mai multe tabele:
TABEL1 : Pastrezi datele despre film. Ai nevoie de un ID unic pentru fiecare film.
TABEL2 : Un tabel cu coloanele data (date), film (int), ora (date)

Astfel banuiesc ca se rezolva problema ta. Alte tabele pot fi adaugate pentru informatii de acest gen.

Incearca sa faci interfata cat mai usor de folosit pentru utilizatori avand in vedere informatile pe care vrei sa le obti de la acestia.

Dar, crede-ma ca nici nu imi trece prin cap cum sa fac un query la ambele tabele... poti sa imi dai un hint.?

Codul meu actual arata cam asa:
<?php
$ziua = @$_GET['day']; // var trimisa de index
$trimmed = trim($ziua);
// validare zi
if ($trimmed == "")
  {
  echo "<p>Nici un rezultat</p>";
  exit;
  }
//conexiune db
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
//selectare db si interogare
mysql_select_db("teste", $con);
$result = mysql_query("SELECT * FROM cinema WHERE zile like \"%$trimmed%\" AND status = '1' ORDER by id");
while($row = mysql_fetch_array($result))
  {
	?>
/*//cod html de afisare//*/



#10
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Google: mysql join

Ar trebui sa te obisnuiesti sa separi problemele pur legate de cererile catre baza de date de problemele legate de PHP. Orice intrebari legate de primul parametru pasat lui mysql_query() trebuie puse pe pe Programming > Databases.

Si invata sa folosesti clientul CLI mysql.exe; google: mysql.exe cli client

#11
tibixdj

tibixdj

    Junior Member

  • Grup: Members
  • Posts: 69
  • Înscris: 28.06.2006
salutare..
am facut cam asa:
mysql_select_db("teste", $con);
$result = mysql_query("
select * from cinema join cinema2 on cinema.id = cinema2.film;
");
while($row = mysql_fetch_array($result))
  {
dar..
am introdus detaliile la 1 film in cinema
si in cinema 2, am:
mysql> select * from teste.cinema2;
+------------+------+----------+----------+
| data	   | film | ora	  | oraf	 |
+------------+------+----------+----------+
| 2009-06-05 |	1 | 11:00:00 | 12:30:00 |
| 2009-06-05 |	1 | 13:00:00 | 14:50:00 |
+------------+------+----------+----------+
.. deci acelasi film.. in aceeasi zi.. cu 2 ore de difuzare diferite...
si imi afiseaza 2 randuri in tabela mea html...

#12
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Ti-am spus deja ca problema asta tine de MySQL, nu?

Te duci frumos pe aria Programming > Databases si-ti expui problema acolo, independent de PHP. NU te duce cu cod PHP acolo, doar explici ce tabele ai, cum le ai, ce face fiecare coloana acolo unde nu este evident dupa nume, si cu query-urile tale SQL care nu folosesc nicio functie sau variabila din runtime-ul PHP. Un astfel de exemplu este:

select * from cinema join cinema2 on cinema.id = cinema2.film

Iti explici problema acolo, si la ce vrei sa ajungi - toate acestea DOAR in termeni SQL/MySQL.

PS: nu o zic ca sa te sicanez, ci ca sa te obisnuiesti sa-ti "imparti" problemele in mod corect - un exercitiu perfect de a realiza ce "tehnologie" din cele folosite este "de vina" si cum trebuie abordate rezolvarile problemelor.

PPS: cand ai rezultatele corecte in CLI, nu ramane decat sa "decorezi" cererea sql cu functionalitatea mysql pusa la dispozitie de PHP si eventual sa generalizezi folosind variabile din runtime-ul PHP. De exemplu:
mysql_query("SELECT * FROM `movies` WHERE `movie_id` = '".mysql_real_escape_string($_POST['id'])."'");
Ce e ingrosat (inclusiv ghilimelele) tine de PHP, restul de MySQL.

Si nu uita sa spui ca folosesti MySQL, ca exista o gramada de DBMS-uri.

:cheers:

Edited by OriginalCopy, 05 June 2009 - 12:56.


#13
tibixdj

tibixdj

    Junior Member

  • Grup: Members
  • Posts: 69
  • Înscris: 28.06.2006
pentru cei care doresc sa ma ajute, am postat aici

#14
tibixdj

tibixdj

    Junior Member

  • Grup: Members
  • Posts: 69
  • Înscris: 28.06.2006
am rezolvat cu mysql, zic eu..
am facut cum a zis OriginalCopy.
am in tabelul cinema2 2 coloane, film (int) si ora(timestamp)
la select-ul din db, imi afiseaza la program: 2009-06-05 11:30:00,2009-06-06 14:30:00
urmatoarea intrebare e:
Pot scoate din afisare 2009-06-05, dar sa se faca selectia dupa aceasta?

#15
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Posttibixdj, on 10th June 2009, 08:43, said:

am rezolvat cu mysql, zic eu..
am facut cum a zis OriginalCopy.
am in tabelul cinema2 2 coloane, film (int) si ora(timestamp)
la select-ul din db, imi afiseaza la program: 2009-06-05 11:30:00,2009-06-06 14:30:00
urmatoarea intrebare e:
Pot scoate din afisare 2009-06-05, dar sa se faca selectia dupa aceasta?

Desigur, dar asta tine tot de mysql. Cereri pe care i le trimiti lui MySQL cu mysql_query() tin de MySQL. Functia in sine, apelul la ea, si restul lucrurilor tin de PHP.

Cel mai bine pui intrebarea asta tot pe databases. Obisnuieste-te sa "imparti problema" corect si sa te adresezi unde trebuie.

Tot ce tine de salvarea, cererea, inserarea, modificarea sau stergerea de date provenite dintr-un DBMS tine de acel DBMS.

La fel si sortarea, gruparea, numararea, ordonarea, excluderea sau includerea dupa 1,2,3, x criterii.

Cu PHP doar primesti niste randuri de date pe care le prelucrezi intr-o bucla (while($row = mysql_fetch_assoc())), si eventual le afisezi sau decizi pe baza datelor ce trebuie facut cu restul datelor din acel rand sau din alte randuri.

De exemplu imagineaza-ti ca tabelul tau filme contine un camp "ruleaza" care are valoarea 0 daca filmul nu ruleaza, si 1 daca filmul tocmai ruleaza intr-una din salile cinemaului. De PHP tine doar verificarea $row['ruleaza'] cu if(), in functie de care afisezi titlul cu verde, altfel (else) afisezi titlul cu rosu. Atat tine de PHP.
In schimb daca vrei sa ceri de la baza de date doar filmele care ruleaza momentan, atunci problema ta tine de MySQL (am spus mai sus "includerea dupa 1 criteriu").

mysql_query(X), X tine de MySQL. Numai sa nu te duci cu exemple pe Databases care contin variabile PHP - pe oamenii aia nu ii intereseaza ce limbaj folosesti tu in aplicatia (site-ul) ta.

Deci pune intrebarea unde trebuie. Probabil tot eu te voi ajuta oricum, dar important e sa te obisnuiesti sa gandesti sistematic, ca un programator, si sa-ti abordezi problemele ca atare.

Edited by OriginalCopy, 10 June 2009 - 13:15.


#16
tibixdj

tibixdj

    Junior Member

  • Grup: Members
  • Posts: 69
  • Înscris: 28.06.2006
am nevoie de o idee pentru interfata utilizator..

#17
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Despre functionalitate, sau culori/design?

Daca web design, intreaba pe aria dedicata: http://forum.softped...hp?showforum=45

Daca functionalitate, petrece cateva zile intr-un cinema, si cu carnetelul de notite in mana noteaza-ti tot ce e necesar "behind the scenes" si logistica aferenta.

Cand ai un prototip functionabil, du-te in acel cinema si roaga-i pe angajati sa iti testeze software-ul, intreaba-i ce ii deranjeaza in utilizarea lui (si cel mai mic click trebuie sa nu fie frustrant), ce ar imbunatati, ce alte optiuni i-ar scuti de multa frustrare.

Asa iti va iesi "site-ul" cum trebuie.

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

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