Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/MySQL] Multiple, a dodaje jedno pole.
Koniczynka
post 22.06.2006, 16:04:24
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 24.05.2006

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


Witam. Mam formularz, w którym chcę zastosować wielokrotność wyboru - multiple. Wyświetlają mi się wszystkie żądane przeze mnie dane. Jednak kiedy dodaję dane do bazy, to tam wpisywany jest tylko ostatni rekord.

Oto kod, jaki stosuję:

  1. <?php
  2. echo "<select multiple name=sklad_gospodarze>";
  3. $sql1="SELECT * FROM pilkarze WHERE obecny_p = '$login_gospodarze' "; 
  4. $result1 = mysql_query ($sql1) 
  5.  or die ("błąd zapytania "); 
  6. while ($row1 = mysql_fetch_array ($result1)){ 
  7. if ($row1['id_p']==$row1['imie']) $zaznacz1="selected"; else $zaznacz1=""; 
  8.  
  9. echo "<option value='".$row1['imie']."' ".$zaznacz1.">".$row1['imie']." ".$row1['nazwisko']."</option>"; 
  10. } 
  11. echo "</select><br><br>";
  12. ?>


Sprawdzałem też normalne dodawanie, tzn. bez danych pobranych z bazy danych. Ale było tak samo, tzn. dodawało się tylko ostatnie value. Jeśli ktoś ma jakiś pomysł, dlaczego tak się dzieje, to proszę o pomoc.
Go to the top of the page
+Quote Post
nospor
post 22.06.2006, 16:24:41
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




skoro ten select to multiple to musi miec nazwe tablicowoa czyli z []: sklad_gospodarze[]
w wyniku z w poscie otrzymasz tablice. pobierasz normalnie: $_POST['sklad_gospodarze']


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Koniczynka
post 22.06.2006, 17:23:55
Post #3





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 24.05.2006

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


Zrobiłem to tak:

  1. <?php
  2. echo "<select name=sklad_gospodarze[] multiple>";
  3. $sql1="SELECT * FROM pilkarze WHERE obecny_p = '$login_gospodarze' "; 
  4. $result1 = mysql_query ($sql1) 
  5.  or die ("błąd zapytania "); 
  6. while ($row1 = mysql_fetch_array ($result1)){ 
  7. if ($row1['id_p']==$row1['imie']) $zaznacz1="selected"; else $zaznacz1=""; 
  8.  
  9. echo "<option value='".$row1['imie']."' ".$zaznacz1.">".$row1['imie']." ".$row1['nazwisko']."</option>"; 
  10. } 
  11. echo "</select><br><br>";
  12. ?>


Przesyłam tak:
  1. <?php
  2. $sklad_gospodarze = $_POST['sklad_gospodarze'];
  3. ?>
i potem wklejam to bazy INSERT INTO.

Ale do bazy zamiast zaznaczonych danych przesyłane jest Array.
Go to the top of the page
+Quote Post
nospor
post 22.06.2006, 17:25:42
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no przeciez ci napisalem ze w wyniku otrzymasz tablice. musisz ja teraz obrobic wedlug swoich potrzeb. masz wiele mozliwosci: implode(), foreach, .... i wiele innych do obrobki tablicy (patrz: manual)


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Koniczynka
post 25.06.2006, 09:49:38
Post #5





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 24.05.2006

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


Niestety, nie umiem sobie jakoś z tym poradzić :/

  1. <?php
  2. $sql4="SELECT sklad_gospodarze FROM kolejki WHERE id_kolejki = " . $_GET['id_kolejki'] . " "; 
  3. $result4 = mysql_query ($sql4) 
  4.  or die ("błąd zapytania "); 
  5. while ($row4 = mysql_fetch_assoc ($result4))
  6. { 
  7. foreach ($row4 as $value) {
  8. echo $value;
  9.  
  10.  
  11. }
  12.  }
  13. ?>


  1. <?php
  2. $sql="SELECT * FROM kolejki WHERE id_kolejki = " . $_GET['id_kolejki'] . " "; 
  3. $result = mysql_query ($sql) 
  4.  or die ("błąd zapytania "); 
  5. while ($row = mysql_fetch_array ($result)){ 
  6.  
  7.  
  8. $sklad_gospodarze[] = $row['value'];
  9.  
  10. echo $sklad_gospodarze;
  11.  }
  12. ?>


Testowałem też each,list,implode, ale nic konkretnego się nie pokazywało prócz "Array". Znalazłem kilka tematów na forum i starałem się zastosować podane rozwiązania. Jednak też bez oczekiwanego rezultatu. Mógłbym prosić o jakiś przykład do wyciągania tablic z bazy danych ? Bo o ile normalne stosowanie tych funkcji, do uprzednio zdefiniowanych zmiennych [tak jak w manualu], mi wychodzi, to o tyle mam problem ze zrobieniem tego samego z poziomu bazy danych.
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: 16.07.2025 - 18:51