Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Operacje na tablicach
wicy
post 23.10.2010, 10:49:46
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 2.02.2008

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


1) Posiadając wynik zapytania sql,
  1. $sql = 'SELECT ....... LIMIT 0 , 5';
  2. $result = $db->sql_query($sql);
  3. while($row = mysql_fetch_array($result))
  4. {
  5. $out1 = $row['wartosc1'];
  6. $out2 = $row['wartosc2'];
  7. $out3 = $row['wartosc3'];
  8. $out4 = $row['wartosc4'];
  9.  
  10. $temp1 = array(
  11. 'OUT1' => $out1,
  12. 'OUT2' => $out2,
  13. 'OUT3' => $out3,
  14. 'OUT4' => $out4,
  15. );
  16.  
  17. }
  18. $db->sql_freeresult($result);

chciałbym wynik ten wpisać do tabeli $temp1. Jak to zrobić?


2) Posiadając wypełnioną już tablicę $temp1 i w identyczny sposób wypełnioną taką samą tablicę $temp2, obie o rozmiarach (jak rozumiem) [4,5], obrazujące układ tabeli sql w formie nazw kolumn i wartości wierszy w tych kolumnach, przekształcić w jedną tablicę ale nie o rozmiarach [4,10] ale [8,5].
Innymi słowy, chciałbym otrzymać tablicę, której wiersz wyglądałby tak:
  1. (z tab $temp1) OUT1 - jakaś_wartość_1 | OUT2 - jakaś_wartość_2 | OUT3 - jakaś_wartość_3 | OUT4 - jakaś_wartość_4 | (z tab $temp2) OUT1 - jakaś_wartość_5 | OUT2 - jakaś_wartość_6 | OUT3 - jakaś_wartość_7 | OUT4 - jakaś_wartość_8 |
Go to the top of the page
+Quote Post
Quantum
post 23.10.2010, 11:06:27
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


1. serialize / unserialize

EDIT: aa, chodziło o przypisanie wyników do nowej tablicy.. myślałem, że chciałeś zapisać te tablice do bazy z możliwością odtworzenia.

Ten post edytował Quantum 23.10.2010, 12:44:20
Go to the top of the page
+Quote Post
wicy
post 23.10.2010, 11:46:12
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 2.02.2008

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


  1. $sql = 'SELECT ....... LIMIT 0 , 5';
  2. $result = $db->sql_query($sql);
  3. while($row = mysql_fetch_array($result))
  4. {
  5. $temp1 = array(
  6. 'OUT1' => $row['wartosc1'],
  7. 'OUT2' => $row['wartosc2'],
  8. 'OUT3' => $row['wartosc3'],
  9. 'OUT4' => $row['wartosc4'],
  10. );
  11. }
  12. $db->sql_freeresult($result);

1) Czy w/w pętla poprawnie jest poprawnym wypełnieniem tablicy $temp1 wybranymi wynikami zapytania sql?
Go to the top of the page
+Quote Post
Quantum
post 23.10.2010, 12:40:23
Post #4





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


Nie, ponieważ nie dodajesz nowego elementu do tablicy $temp1 (o ile taką zmienną wcześniej zadeklarowałeś jako tablicę, bo tutaj tego nie widzę), a cały czas ją nadpisujesz. Zamiast "$temp1 = array(.." daj "$temp1[] = array(.." i wcześniej przed pętlą ją zadeklaruj jako pustą tablice - "$temp1 = array()". Alternatywnie możesz użyć array_push do dodania nowego elementu na koniec tablicy - nawet lepiej.
Go to the top of the page
+Quote Post
wicy
post 23.10.2010, 13:34:25
Post #5





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 2.02.2008

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


Dzięki. To właśnie rozwiązało moje wszystkie problemy.
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: 18.07.2025 - 04:04