Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][PHP] Problem z zapisem z pętli for
darth_wilq
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.09.2010

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


Witam,
Mam problem, otóż próbuję wczytać datę podaną przez użytkownika, w tym przypadku poprzez pole wybory select, ale mam problem z zapisaniem tej zmiennej dnia/miesiaca/roku do bazy. Mam trzy takie pola wczytujące poszczególne składowe daty. Próbowałem, kombinowałem ale nie wiem dlaczego nic mi nie działa. Połączenie z bazą jest ok. Byłbym wdzięczny za pomoc.

  1. <select name="miesiac" onchange="sprawdz(this.form)">
  2. <?php
  3. for ($i=1;$i<=12;$i++) {
  4. echo '<option value="'.$i.'"';
  5. if ($i==date('i')) echo ' selected="selected"';
  6. echo '>'.$i.'</option>';
  7. }
  8. ?>



Próbowałem np. czegoś takiego, ale też nie działa.
  1. <select name="miesiac[<?php echo $row2['miesiac']; ?>]" onchange="sprawdz(this.form)">
  2. <?php
  3. for ($m=1;$m<=12;$m++) {
  4. echo '<option value="'.$m.'"';
  5. if ($m==date('m')) echo ' selected="selected"';
  6. echo '>'.$m.'</option>';
  7. }
  8. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
konole
post
Post #2





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 21.03.2006
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Kod
<select name="miesiac[<?php echo $row2['miesiac']; ?>]" onchange="sprawdz(this.form)">
<?php
for ($m=1;$m<=12;$m++) {
echo '<option value="'.$m.'"';
if ($m==date('m')) echo ' selected="selected"';
echo '>'.$m.'</option>';
}
?>


Zamień date('m') na date('n').
parametr m zwraca datę z 0 na początku (01, 02, ..., 12), a n zwraca samą liczbę (1, 2, ... 12).

Ogólnie polecam ci poczytać więcej tutaj: http://pl2.php.net/manual/en/function.date.php

Ten post edytował konole 19.03.2011, 11:55:28
Go to the top of the page
+Quote Post
darth_wilq
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.09.2010

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


Aha dzięki, zmienię sobie to zaraz. A chodzi mi bardziej o sposób zapisania tej zmiennej, czy jest on odpowiedni? Bo jakoś nigdy jeszcze nie pobierałem danych z pętli.
Go to the top of the page
+Quote Post
konole
post
Post #4





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 21.03.2006
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Jest ok, chociaż na twoim miejscu zamieniłbym to na

Kod
for ($i=1;$i<=12;$i++) {
printf("<option value=\"%s\", $i");
if ($i==date('n'))
{
echo ' selected="selected"';
}
printf(">%s</option>', $i);
}

Dlaczego printf? Bo jest czytelniej.
Go to the top of the page
+Quote Post
darth_wilq
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.09.2010

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


Próbuję, próbuję ale dalej nie zapisuje mi tych zmiennych do bazy. Połączenie jest dobre i deklarowanie chyba też. A nie wiem czemu nie gra.

  1.  
  2. $rok = $_POST['rok'];
  3. $miesiac = $_POST['miesiac'];
  4. $dzien = $_POST['dzien'];
  5.  
  6.  
  7.  
  8. $zapytanie1 = "UPDATE data SET rok='$rok', miesiac='$miesiac', dzien='$dzien' where username ='$login'";
  9. $wynik1 = mysql_query($zapytanie1);
  10. $row2 = mysql_fetch_array ($wynik1, MYSQL_ASSOC);
  11.  
  12.  
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Zapytanie UPDATE niczego nie zwraca, kod zachowuje się prawidłowo.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
darth_wilq
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.09.2010

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


Ale w innych przypadkach polecenie Update mi działało bezproblemowo. A tu zamieniłem na Insert to, ale cały czas nic nie dodaje do bazy. Wiem że to pewnie jest drobnostka, ale utknąłem przy tym i nie wiem jak poprawnie zapisać kod.
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




mysql_error prawdę Ci powie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
darth_wilq
post
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 7.09.2010

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


Przed chwilą wstawiłem mysql_error i zaszedłem trochę dalej, aczkolwiek zmieniłem pole select na normalny input text. Przy logowaniu się na konto trzeba poprawnie wpisać datę, żeby przeprowadzić proces logowania, lecz gdy sprawdzam zawartość tabeli w phpmyadmin, to dalej jest pusto :/ tak jakby to zapytanie w Insert into wogóle się nie wykonywało

Edit:

Wyjaśniło mi się wreszcie dlaczego nie dopisywało mi rekordów do tabeli. Otóż ustawiłem bardzo wysoki auto_increment (chciałem żeby id było bardzo wysokie) i dotarłem do granicy int, więc nie chciało dodawać nowych rekordów, mimo że kod był w miarę poprawny. Także problem rozwiązany, dzięki za podpowiedzi!

pozdrawiam

Ten post edytował darth_wilq 21.03.2011, 23:17:55
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Przed chwilą wstawiłem mysql_error i zaszedłem trochę dalej

I czego się dowiedziałeś?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 19.08.2025 - 19:52