Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Łączenie stringów
Forum PHP.pl > Forum > Przedszkole
K0nio
Witam chciałbym taki kod
  1. date("N", $day) == $value

Dodać do tablicy w następujący sposób
  1.  
  2. $day=mktime(0, 0, 0, 1, 3, 2012);
  3. foreach($vdays as $value){
  4. $szukane_dni[]= " date(\"N\", $day) == $value";
  5. }
  6. $szukane_dni = implode ('||' ,$szukane_dni );
  7. if ($szukane_dni1 ){
  8. echo 'si2';
  9. }
  10. else{
  11. echo 'no2';
  12. }

Jednak funkcja date() nie jest poprawnie interpretowana przez serwer. Zmienna $vdays przechowuje wartości od 1-5 co odpowiada dniom tygodnia 1 dla poniedziałku , 5 dla piątku. A później zmienną $szukane_dni chciałem dodać w if'a i sprawdzać poprawność danych. Jeśli i ifie podam taki warunek if (date("N", $day) == 2 ) to data sprawdzana jest poprawnie.
Ghost_78
po:
  1. implode ('||' ,$szukane_dni );

nie powstaje Ci "ciąg" funkcji tylko jeden STRING
K0nio
a czy można zbudować ciąg funkcji w podany przeze mnie sposób ?
by_ikar
Pokaż cały kod, łączne z zmienną $vdays oraz powiedz dokładnie co chcesz uzyskać.
Ghost_78
Jakoś nie za bardzo widzę sens.
możesz zrobić to pi razy oko tak:
  1. $day=mktime(0, 0, 0, 1, 3, 2012);
  2. $dataOK = true;
  3. foreach($vdays as $value){
  4. if(date("N", $day) != $value){
  5. $dataOK = false;
  6. break;
  7. }
  8. }
  9. if($dataOK){
  10. echo 'ok';
  11. }else{
  12. echo 'bad';
  13. }

Chyba dobrze zrozumiałem Twój problem
K0nio
  1. $query = "SELECT * FROM doctor WHERE ID_Doctor = 1";
  2. $result= mysql_query($query) or die('Błąd' . mysql_error());
  3.  
  4. while ($row = mysql_fetch_array($result)){
  5. $vdays= explode(' ' , $row['vVisitdays']);
  6. }


w vVisitdays przechowuje dni w takim formacie np. 2 3 5. Są to dni przyjmowania lekarzy następnie chce wypisywać powiedzmy 8 kolejnych dat pasujących do warunku ( wiem ,że nie ma tego w kodzie ale moje pytanie było innej natury). Wcześniej zrobiłem to w ten sposób
  1. while(count($licznik)<8){
  2. foreach($vdays as $value1){
  3. if( date("N", $day) == $value ){
  4. echo date("d - m - y", $day). '<br />';
  5. array_push($licznik,1);
  6. $i++;
  7. $day=mktime(0, 0, 0, $month, $i, $y);
  8. }
  9. else{
  10. $i++;
  11. $day=mktime(0, 0, 0, $month, $i, $y);
  12. }
  13. }
  14. }


Jednak przy np dwóch zmiennych w zmiennej $vdays daty pojawiały się co dwa tygodnie, i sposób przedstawiony w pierwszym poście wydawał mi się odpowiedni
Ghost_78
Moim zdaniem to co Ci napisałem wyżej powinno zadziałać. Zmiany może wymagać tylko stan flagi $dataOK.
  1. $day=mktime(0, 0, 0, 1, 3, 2012);
  2. $dataOK = false;
  3. foreach($vdays as $value){
  4. if(date("N", $day) != $value){
  5. $dataOK = true;
  6. break;
  7. }
  8. }
  9. if($dataOK){
  10. echo 'ok';
  11. }else{
  12. echo 'bad';
  13. }
K0nio
Ale jeśli mam do wypisania kolejno np osiem czwartków , bądź 8 kolejnych śród , czwartków i piątków to już robią się kłopoty. Robiłem podobnie na ifie kod i np czasem przeskakiwało mi o tydzień , a gdy zrobiłem coś takiego
  1. if( date("N", $day) == $value1 && $value1 == 1 ){
  2. echo date("d - m - y", $day). '4'. '<br />';
  3. array_push($licznik,1);




to biorąc dni od pierwszego grudnia wypisywało mi dopiero daty od 26 ;/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.