Pagina 1 din 3

script ziua de nastere

Scris: Mie Iul 14, 2010
de trif
buna ziua, am o intrebare, am un script javascript pentru afisarea datei de nastere dar nu o stiu sa il fac in php si mysql. daca ma puteti sa ma ajutati sa imi ziceti si atunci o sa pun scriptul (ca nu stiu sa pun scriptul javascript in domeniul php - mysql). astept raspuns. cu stima trif

script ziua de nastere

Scris: Mie Iul 14, 2010
de MarPlo
Nu am mai facut o astfel de conversie, mai ales daca implica si MySQL (domeniu la care ma pricep mai putin).
Poti intra si posta cererea pe Forum la http://www.phpromania.net/" target="_blank. Acolo sunt multi care se pricep mai bine la asa ceva si probabil au mai facut (posibil cu plata daca e ceva mai complicat)

script ziua de nastere

Scris: Mie Iul 14, 2010
de trif
este complicat de facut in php si mysql unul de la 0? cum ar trebui facut? cu stima trif

script ziua de nastere

Scris: Mie Iul 14, 2010
de MarPlo
Ne stiind despre ce e vorba exact, si anume ce face pas cu pas acel script, nu stiu sa spun.
Gandeste-te la ce trebuie sa faca pas cu pas acel script si transformi in limbaji PHP acei pasi ca sa iasa ceea ce vrei.

script ziua de nastere

Scris: Joi Iul 15, 2010
de trif
am cautat un cod php despre zile de nastere si l-am gasit pe asta

Cod: Selectaţi tot

<?php 
require 'connectme.php';
mysql_select_db('birthdays') or die('Could not select birthdays'); 
$month=date("m"); 
$day=date("d"); 
$n=15; 
$unixtime= mktime (0,0,0, $month, $day);
$month_next = date("m","d"+time()+$n*24*3600);
$day_next = date("d", time()+$n*24*3600);
$next= mktime (0,0,0, $month_next, $day_next);
$query = mysql_query("SELECT * FROM birthtable WHERE DAY_MONTH 
BETWEEN $unixtime AND $next ORDER BY DAY_MONTH ASC ")or die 
(mysql_error()); 
echo "<table>\n"; 
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 
   echo "\t<tr>\n"; 
   foreach ($line as $col_value) { 
       echo "\t\t<td>$col_value</td>\n"; 
   } 
   echo "\t</tr>\n"; 
} 
echo "</table>\n"; 
mysql_free_result($result); 
?>
iar codul javascript este

Cod: Selectaţi tot

<html>
<head>
<title>Birthday List</title>
<script type="text/javascript">
//the bday array data can be generated from server-side
var arrBday = [
  ['John Doe', '14/7'],
  ['John Doe1', '5/31'],
  ['John Doe2', '5/30'],
  ['John Doe3', '5/28'],
  ['John Doe4', '5/27'],
  ['John Doe5', '5/18'],
  ['John Doe6', '5/20'], 
  ['John Doe7', '5/19']
  //...and so on (last entry must not have a trailing comma)
];

function getBdaysThisWeek(){
  var arrMonth = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
  var bday, idx;
  var bdayList = new Array();
  var today = new Date();

  for (var i=0;i<arrBday.length;i++){
    var bday = new Date(arrBday[i][1] + '/' + today.getFullYear());
    if (isNaN(bday)) continue;

    if ( isBdayInRange(bday, 7) ){
       idx = bdayList.length;
       bdayList[idx] = new Object();
       bdayList[idx].name = arrBday[i][0];
       bdayList[idx].bday = bday;
       bdayList[idx].month = arrMonth[bday.getMonth()];      
    }
  }
  if (bdayList.length > 0){ //sort asc by birthdate
     bdayList.sort(
       function(a, b){
         if (a.bday < b.bday) return -1
         if (a.bday > b.bday) return 1;
         return 0;
       }
     );
  }
  return bdayList;
}

function isBdayInRange(bday, interval){
//credit for this function goes to:
//-Rob (@slingfive) Eberhardt, Slingshot Solutions
//http://slingfive.com/pages/code/jsDate/jsDate.html

  var today = new Date(); 
  //have to override time so entire day will be valid
  today.setHours(0,0,0,0);
  //if the birthday has already occurred in the year, increment to the next year
  if (bday < today)
    bday.setFullYear(bday.getFullYear() + 1);
  
  // get ms between dates (UTC) and make into "difference" date
  var iDiffMS = bday.valueOf() - today.valueOf();
  //divide iDiffMS by 1000, Seconds, Minutes, Hours
  nDays = parseInt(iDiffMS / 1000 / 60 / 60 / 24);
  
  if(parseInt(nDays) <= parseInt(interval))
    return true;
  else
    return false;
}

function displayBdayList(){
  var date = new Date().getDate();	
  var bdayList = getBdaysThisWeek();
  var len = bdayList.length;
  var s = "<h1>Birthday Celebrants for this week:</h1>";
  if (len>0){
    s += '<ul>';
    for (var i=0; i<len; i++){
       //be mindful of the string-line continuation character (\) at the end of the first line
		s += '<li' + ((date == bdayList[i].bday.getDate())?' class="bdayToday"':'')+ '>\
					<strong>' + bdayList[i].name + '</strong> - ' 
					+ bdayList[i].month + ' ' + bdayList[i].bday.getDate() + '</li>';       
    }
    s += '</ul>';
  }
  else{
    s += "No birthday celebrant for this week.";
  }
  document.write(s);
}
</script>
<style type="text/css">
body {
  font:14px Verdana;
}
/*display style when bday is today*/
.bdayToday {
  color: red;
}
</style>
</head>
<body>
<script type="text/javascript">
displayBdayList();
</script>
</body>
</html>
uite-te sa vezi cum ar trebui facut si daca poti sa imi zici daca este ceva bun de aici. ceea ce vreau este ca pe sitele meu (sau la care lucrez) sa imi arate zilele de nastere a membrilor site-lui atunci cand se inregistreaza pe site asa cum sunt pe multe site-uri. sper ca intelegi ceea ce vreau. cu stima trif

script ziua de nastere

Scris: Joi Iul 15, 2010
de MarPlo
Am inteles ce vrei. O ideea de realizare cat mai simplu e urmatoarea (pt. incepatori, fara lucru cu functii de data).
1. La formularul de inregistrare mai adaugi 3 casete text mai mici, pentru zi, luna si an nastere.
2. In PHP preiei cu $_POST si datele acelor casute.
3. Unesti cele 3 valori preluate (zi, luna. an) intr-o variabila, intr-un sir, asa cum ai vrea sa fie afisat (Ex. "zi-luna-an") si o adaugi in baza de date in coloana facuta pt. data nastere.
4. Cand preiei si afisezi datele din tabelul MySQL (cum faci pt. "nume", "email", ...), preiei si ce e in coloana cu data nasterii

- Acestea ar fi etapele principale.

script ziua de nastere

Scris: Joi Iul 15, 2010
de trif
dupa aceasta cum fac ca sa imi arate "astazi este ziua lui ...."? cu stima trif

script ziua de nastere

Scris: Joi Iul 15, 2010
de MarPlo
Dupa cum vad ca vrei sa complici scriptul, ar trebui data adaugata in mysql in format UNIX (ce necesita de la inceput lucru cu functii de data, precum: strtotime()), ce se parseaza cu mktime(), fiindca daca data nu e citita exact cum a fost adaugata, nu va functiona bine.
Oricum, iti scriu etapele pt. problema asta, bazata pe raspunsul de adaugare anterior (neprofesional)

Cod: Selectaţi tot

<?php
// Formezi data la fel cum e bagata in mysql (de ex.: numar_zi-numar_luna-an)
$data_azi = date('j-m-');
// Se face cautare in baza de date si se preia numele unde data adaugata incepe cu $data_azi;
?>
- Daca vrei sa inveti despre lucrul cu data in PHP, poti incepe cu ce e in manual, la pagina: http://www.php.net/manual/en/function.date.php" target="_blank" target="_blank

script ziua de nastere

Scris: Vin Iul 16, 2010
de trif
am facut ceva

Cod: Selectaţi tot

<?php
require_once('conectare.php'); 
$data = date('j-m-Y);   
$sql = "SELECT `mesaj` FROM `verset` WHERE `data`='$data' LIMIT 1";
$rezultat = mysql_query($sql);
if (mysql_num_rows($rezultat) == 0) {
    $mesaj = 'Nici o zi de nastere';
}
else {
$i=0;
while ($i < $rezultat) {
  $rand=mysql_fetch_array($resultat);
   $mesaj = $rand['mesaj'];
    ++$i;
} 
}
echo $mesaj;
?> 
dar nu imi face array. si faza este ca am daca membrul este nascut in 1989 si este anul 2010 nu imi afiseaza ca nu se potrivesc. dar daca scot anul merge dar nu stiu cum sa fac ca sa mearga si sa fie mai usor! cu stima trif

script ziua de nastere

Scris: Vin Iul 16, 2010
de trif
am reusit sa il rezolv asta

Cod: Selectaţi tot

<?php
$data = date('j-m');  // am eliminat "Y"
$sql = "SELECT * FROM `members` WHERE `data`='$data' ";
$rezultat = mysql_query($sql);
if (mysql_num_rows($rezultat) == 0) {
    echo 'Astazi nu este ziua nimanui';
}
else {
echo 'Astazi este ziua lui: ';
$i=0;
 while ($i < $rezultat) {
  $rand=mysql_fetch_array($rezultat);
    echo ' '.$rand['nume'].' '.$rand['prenume'].' ';
	++$i;
  }
}
?>
cu multe stradanii! dar cum fac ca sa fac cum ai zis u cu 3 castutze mai mici si sa le fac ca un sir si dupaia cum modific codul de mai sus ca sa nu imi ia in considerare si anul pt ca daca las "j-m" fara "Y" imi ia foarte bine dar daca pun si "Y" imi ia exact dupa an si nu prea merge daca omul este nascut 1989 si suntem in 2010 si nu sunt egale si atunci nu imi afiseaza nimic. cum fac acea combinatie de castutze si sa imi ia ziua si luna dar sa am si anul dar sa nu il ia in considerare? cu stima trif

script ziua de nastere

Scris: Sâm Iul 17, 2010
de MarPlo
Pentru a uni datele de la cele 3 casute intrun sir, se foloseste caracterul de unire pt. siruri, pnctul (.).
Ex.: Var $data_n = $_POST['casuta1'] . '-' . $_POST['casuta2'] . '-' . $_POST['casuta3'];
Pentru a nu depinde de an, ar merge cu Select-ul asa:
$sql = "SELECT * FROM `members` WHERE `data` REGEXP '^$data' ";
- cu $data fara 'Y'.

script ziua de nastere

Scris: Sâm Iul 17, 2010
de trif
merge, mersi mult de tot. cu stima trif