Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: UPDATE
Forum PHP.pl > Forum > PHP
adeq_PL
Witam mam nastepujacy problem....

Posiadam kod ktorego zadaniem jest update'owac tabele bazy. Ale wynikl problem i nie wiem co zrobic. Oto kod

  1. <?php
  2.  
  3.         $pytaj_opis = "SELECT * FROM opis_str_miej WHERE id_str_miej='".$_POST['id']."'";    
  4.         $dzialaj_opis=mysql_query($pytaj_opis);
  5.         $liczba_kolumn_opis = mysql_num_fields($dzialaj_opis);         
  6.         $pole_opis = mysql_fetch_row($dzialaj_opis);
  7.  
  8. if($_POST['dni']==true){
  9.  for($ile=0;$ile<=7;$ile++){
  10.   if(isset($_POST['dni'][$ile])){
  11.  
  12.      $zapisz5= $_POST['dni'][$ile]." od ".$_POST['godzod'][$ile].":".$_POST['minod'][$ile]." do 
  13. ".$_POST['godzdo'][$ile].":".$_POST['mindo'][$ile]."<br>";
  14.      
  15.   }
  16.  }
  17.  
  18. $update5 = "UPDATE opis_str_miej SET Czynne='".$zapisz5."' WHERE id_str_miej='".$_POST['id']."' LIMIT 1 ";        
  19.    $q5=mysql_query($update5);
  20.  
  21. }
  22.  
  23. else{
  24. $zapisz5= $pole_opis[3];
  25.  
  26.   $update5 = "UPDATE opis_str_miej SET Czynne='".$zapisz5."' WHERE id_str_miej='".$_POST['id']."' LIMIT 1 ";        
  27.   $q5=mysql_query($update5);
  28. }
  29.  
  30. ?>


A problem dotyczy updeta, ktory umieszcze zmienna $zapisz5 w bazie, a mianowicie update zapisuje tylko elementy o najwyzszym indeksie $ile. Co mam zrobic zeby update zapisywal wszystkie zmienne a nie tylko te o najwyzszym $ile questionmark.gif

Probowalem $update5 umiescic w petli ale jest tak samo, tez zapisuje tylko najwieksze indeksy...

Pozdrawiam i dzieki za pomoc smile.gif
Kuziu
Chociaż by pomyśleć LIMIT 1 co zrobi pewnie zrobi LIMIT na 1 rekord questionmark.gif

Więc jak ma Ci podmienić wszystkie skoro masz zlimitowane na 1 rekord.
kszychu
W pętki zakażdym przebiegiem nadpisujesz sobie wartość zmiennej $zapisz5 i po zakończeniu pętli ma ona wartość z ostatniego przebiegu, czyli dla najwyższej zmiennej $ile.
Moja rada: umieść update wewnątrz pętli for.
adeq_PL
Usunalem LIMIT 1 , umiescilem update w petli i nadal zapisuje tylko "najstarsza" wartosc.

A poza tym umieszczajac UPDATE w petli wykonuje sie on tyle razy ile przebiega petla wiec UPDATE bedzie napisywal nowe wartosci puki sie nie skonczy petla.

Czy dobrze to rozumie??
kszychu
A co Ty właściwie chcesz osiągnąć tym kodem?
adeq_PL
Za pomoca tego kodu chcialem pobrac dane z formularza:

  1. <?php
  2.  
  3. $tablica = array ("Pn.-Pt.", "Poniedziałek", "Wtorek", "&para;roda", "Czwatrek", "Pi&plusmn;tek", "Sobota", "Niedziela");
  4.  
  5.  echo "<table width=350 cellpadding='1' cellspacing='0'>";
  6.  
  7. for($ile=0;$ile<=7;$ile++){
  8.  
  9.  echo "<tr><td align='left'>";
  10.  
  11.  echo "<input type='checkbox' id=check_$ile onClick='show($ile)' name='dni[]' value=$tablica[$ile]>
  12.  <font class=edytuj>$tablica[$ile]</font>
  13.  
  14.  </td><td>";
  15.  
  16. echo "<div id='div_$ile' style='display:none'>
  17.  
  18. <font class=edytuj> od: </font><input type='text' size='1' name='godzod[$ile]' maxlength='2'> 
  19. <font class=edytuj> : </font><input type='text' size='1' name='minod[$ile]' maxlength='2'>
  20. <font class=edytuj> do: </font><input type='text' size='1' name='godzdo[$ile]' maxlength='2'>
  21. <font class=edytuj> : </font><input type='text' size='1' name='mindo[$ile]' maxlength='2'>
  22.  
  23. </div>";
  24.  
  25. echo "</td></tr>";
  26.  
  27.  }
  28.  
  29.  
  30. echo "</table>";
  31.  
  32. ?>


przeksztalcic je w odpowiadajacy mi ciag znakow i tym ciagiem zatapic poprzednie dane w bazie.
kszychu
Zaczynam łapać. Może więc zamiast $zapisz5 = w pętli daj $zapisz5 .=
adeq_PL
Cytat
Zaczynam łapać. Może więc zamiast $zapisz5 = w pętli daj $zapisz5 .=


A co oznacza ten przecinek po $zapisz5?? W takiej formie to chyba nie pojdzie....

Nadal sie nad tym glowie, ma ktos moze jeszcze jakies propozycje??
nospor
Cytat
A co oznacza ten przecinek po $zapisz5??
To nie przecinek, tylko kropka. A co oznacza? Manual nie gryzie:
http://pl.php.net/manual/pl/language.operators.string.php
http://pl.php.net/manual/pl/language.opera....assignment.php

Cytat
W takiej formie to chyba nie pojdzie..
Na przyszlosc jak czegos nie wiesz to nie chybuj, tylko sprawdź smile.gif
adeq_PL
OK porzepraszam ze najpierw nie sprawdzilem tylko od razu walilem ze sie nie da.... sadsmiley02.gif

kszychu jestes wielki dzieki za pomoc o to chodzilo smile.gif
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.