Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zapis tablicy do bazy
Forum PHP.pl > Forum > Przedszkole
krzesik
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
Damonsson
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?
kamil_lk
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
krzesik
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 pokaż kod, gdzie przypisujesz do zmiennej $numery te liczby.
kamil_lk
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
krzesik
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
!*!
A zrobiłeś to co napisał kamil_lk ? Poza tym jak dokonujesz zmian, wypadałoby podąć kod i napisać jakich.
_Borys_
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()
wNogachSpisz
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.
requ12
@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.
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.