Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Łączenie stringów
K0nio
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 8.04.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Ghost_78
post
Post #2





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

Ostrzeżenie: (0%)
-----


po:
  1. implode ('||' ,$szukane_dni );

nie powstaje Ci "ciąg" funkcji tylko jeden STRING


--------------------
Always look on the bright side of life ;-)
Go to the top of the page
+Quote Post
K0nio
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 8.04.2011

Ostrzeżenie: (0%)
-----


a czy można zbudować ciąg funkcji w podany przeze mnie sposób ?
Go to the top of the page
+Quote Post
by_ikar
post
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Pokaż cały kod, łączne z zmienną $vdays oraz powiedz dokładnie co chcesz uzyskać.
Go to the top of the page
+Quote Post
Ghost_78
post
Post #5





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

Ostrzeżenie: (0%)
-----


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


--------------------
Always look on the bright side of life ;-)
Go to the top of the page
+Quote Post
K0nio
post
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 8.04.2011

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post
Ghost_78
post
Post #7





Grupa: Zarejestrowani
Postów: 222
Pomógł: 34
Dołączył: 3.11.2010

Ostrzeżenie: (0%)
-----


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. }


Ten post edytował Ghost_78 2.01.2012, 15:58:32


--------------------
Always look on the bright side of life ;-)
Go to the top of the page
+Quote Post
K0nio
post
Post #8





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 8.04.2011

Ostrzeżenie: (0%)
-----


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 ;/

Ten post edytował K0nio 2.01.2012, 19:19:36
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 09:11