Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] mysql_fetch_assoc bez while, dane przepadają?
pentel
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.07.2007

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


Witam,
Mam pytanie, czy jeśli pobiorę jakies dane z mysql (np. 3 rekordy na raz) i zrobię z nich mysql_fetch_assoc(), ale nie dam while, to dane o ID 2 i 3 przepadają i nie ma szansy ich jakoś jednak zachować? Może tablica wielowymiarowa?

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Dostaniesz ostatni rekord, napisz co chcesz uzyskać. Możesz użyć innych pętli, ale to jest niewskazane.
Go to the top of the page
+Quote Post
pentel
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.07.2007

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


Mam kalendarz i próbuję rozszerzyć jego możliwość o wyświetlanie eventów.
Pobieram dane:
  1. <?php
  2. $sql = "SELECT `id`, `year`, `month`, `day`, `time`, `title` FROM `calendar` WHERE 
    `year
  3.  = '" . date('Y') . "' AND `month` = '" . date('n') . "'";
  4. $event = mysql_query($sql);
  5. $event = mysql_fetch_assoc($event);
  6. ?>

i tworzę komórki z dniami miesiąca (pętla for). Tu daje warunek, że jeśli dzień miesiąca, który ma być właśnie wygenerowany ma w bazie danych zapisany event, to że w komóce był link a nie sama liczba:
  1. <?php
  2. if ( $list_day == $event['day'] ){
  3.  echo '<td class="today"><a href="?x=calendar&m=item&year='.$event['year'].'&month='.$event['month'].'&day='.$event['day'].'" title="'.$event['time'].' - '.$event['title'].'">'. $today .'</a></td>';
  4. } else {
  5.  echo '<td>'. $today .'</td>';
  6. }
  7. ?>

I to działa jak jest tylko jeden event. Ale jak mam w bazie danych więcej (np. 3 rekordy) to i tak wyświetlany jest tylko jeden, ten o ID 1 (czyli ten, który dodałem pierwszy, nie ostatni, jak mówisz).
Więc teraz myślę jak to zrobić, żeby były wszystkie. Nie mogę dać całego for w pętlę while ( $event = mysql_fetch_assoc($event) ){} bo wtedy dostanę kalendarz 3 razy smile.gif

Ten post edytował pentel 31.12.2007, 17:01:04
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


  1. <?php
  2. while ( $event = mysql_fetch_assoc($event) ){}
  3. ?>

Chyba ci sie zmienne pomylily smile.gif a ogolnie dla jednego rekordu while nie jest potrzebne a dla wiecej niz 1 jest potrzebne

Ten post edytował marcio 31.12.2007, 17:24:02


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Nie przepadają - musisz najpierw skopiować je do tablicy.
  1. <?php
  2. while($row=mysql_fetch_assoc($result))
  3. {
  4. $data[]=$row;
  5. }
  6. ?>

Pozdrawiam.

p.s przenoszę na Przedszkole


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
pentel
post
Post #6





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 3.07.2007

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


Otóż to. Dziekuję bardzo.

PS. Marcio, po prostu nadpisałem zmienną.
Go to the top of the page
+Quote Post
marcio
post
Post #7





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


Nadpisujac zmienne nadpisujesz dane a mialem na mysli to co powiedzial cysiaczek tylko ze zle sformulowalem odpowiedz


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
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 - 20:59