Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Zapis tablicy do bazy
krzesik
post 9.03.2013, 00:21:37
Post #1





Grupa: Zarejestrowani
Postów: 515
Pomógł: 1
Dołączył: 25.08.2012

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


Witam,

chciałbym aby zawartość tablicy zapisała mi się do rekordu w bazie w takiej formie 1,2,3,4. Tearz wyświetlam to tak:
  1. ........
  2. echo "<td align=\"left\" width=\"150px\" colspan=2><input type=\"checkbox\" name=\"numer[]\" value=\"$r[nazwa_numer]\" id=\"numer'.$k.'\" /><label for=\"numer'.$k.'\"> - $r[nazwa_numer]</label>";
  3. ........


reasumując mam w bazie kilka pól id | data | numery, chciałbym zyskać taki efekt: 1 | 2013-03-08 | 1,2,3,4,5

próbowałem już tak:
  1. $dozapisu=$numer;
  2. for ($i=0; $i<$ile; $i++)
  3. {
  4. if($i!=0) $dozapisu=$dozapisu.",".$numer[$i];
  5. }
  6. echo $dozapisu;


ale mi coś ne idzie.....
funkcja zapisująca wygląda tak:
  1. $ins = @mysql_query("INSERT INTO baza SET
  2. data = '$data',
  3. numery = '$numery'");


prosze o pomoc
Go to the top of the page
+Quote Post
Damonsson
post 9.03.2013, 00:28:20
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Oglądałeś planetę małp? Małpy to nic dobrego...

Temat: Jak poprawnie zadac pytanie

Pod zmienną $numery, masz już to co chcesz tak w ogóle (1,2,3,4)? Czy nie przeszedłeś jeszcze tego levelu?

Ten post edytował Damonsson 9.03.2013, 00:31:48
Go to the top of the page
+Quote Post
kamil_lk
post 9.03.2013, 09:34:19
Post #3





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Cytat(krzesik @ 9.03.2013, 00:21:37 ) *
funkcja zapisująca wygląda tak:
  1. $ins = @mysql_query("INSERT INTO baza SET
  2. data = '$data',
  3. numery = '$numery'");

Mieszasz zapytania do bazy.

Insert:
  1. INSERT INTO table_name (column1, column2, column3,...)
  2. VALUES (value1, value2, value3,...)

Update:
  1. UPDATE table_name
  2. SET column1=value, column2=value2,...
  3. WHERE some_column=some_value
Go to the top of the page
+Quote Post
krzesik
post 9.03.2013, 09:47:09
Post #4





Grupa: Zarejestrowani
Postów: 515
Pomógł: 1
Dołączył: 25.08.2012

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


Cytat(Damonsson @ 9.03.2013, 00:28:20 ) *
Oglądałeś planetę małp? Małpy to nic dobrego...

Temat: Jak poprawnie zadac pytanie

Pod zmienną $numery, masz już to co chcesz tak w ogóle (1,2,3,4)? Czy nie przeszedłeś jeszcze tego levelu?



zapisuje mi rekord ale w polu numery mam Array
Go to the top of the page
+Quote Post
-Gość-
post 9.03.2013, 09:52:18
Post #5





Goście







To pokaż kod, gdzie przypisujesz do zmiennej $numery te liczby.
Go to the top of the page
+Quote Post
kamil_lk
post 9.03.2013, 09:58:43
Post #6





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Cytat
zapisuje mi rekord ale w polu numery mam Array

Bo zapisujesz tablicę, a nie jej elementy.
Przeleć tablicę funkcją implode.
  1. $numery = array('1', '2', '3');
  2. $numery = implode(",", $numery);
  3.  
  4. //wynik: 1,2,3
Go to the top of the page
+Quote Post
krzesik
post 9.03.2013, 10:25:41
Post #7





Grupa: Zarejestrowani
Postów: 515
Pomógł: 1
Dołączył: 25.08.2012

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


po zmianach podczas zapisu wyświetlam i otrzymuję
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

ale do bazy leci Array
Go to the top of the page
+Quote Post
!*!
post 9.03.2013, 10:31:30
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


A zrobiłeś to co napisał kamil_lk ? Poza tym jak dokonujesz zmian, wypadałoby podąć kod i napisać jakich.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
_Borys_
post 9.03.2013, 10:35:00
Post #9





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


W którym momencie tworzysz $numery ? Widzę że tworzysz $dozapisu, to wsadzaj $dozapisu do bazy. Ale lepiej scalać przy pomocy implode() jak poprzednik wspomniał niż przy pomocy pętli for()

Ten post edytował _Borys_ 9.03.2013, 10:40:24
Go to the top of the page
+Quote Post
wNogachSpisz
post 9.03.2013, 11:27:06
Post #10





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Jeśli zapiszesz tablicę "tak jak stoi", to w bazie będzie pełno nadmiarowych, albo wręcz śmieciowych informacji (znaczniki HTML).
Jeśli natomiast pominiesz HTML i wycianiesz tylko ważne informacje następnie zenkapsulujesz do json lub serialize, to utracisz informacje o stylach tabeli.

Podsumowując:
Nie da się odpowiedzieć na to pytanie bez dokładnej informacji jak te dane będa później przetwarzane i do czego wykorzystane.
Go to the top of the page
+Quote Post
requ12
post 9.03.2013, 12:10:49
Post #11





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 9.03.2013

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


@krzesik, jeśli masz $numery jako Array, to użyj funkcji implode jak już ktoś zasugerował,

Kod
$numery = implode(",", $numery);


lub funkcji serialize

Kod
$numery = serialize($numery);


przy serializacji pobierając później te dane możesz użyć unserialize i z powrotem będziesz mieć tablicę

w takiej formie dane wrzucasz do bazy.
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 Wersja Lo-Fi Aktualny czas: 27.06.2025 - 03:22