Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/MySQL] Edycja wielu kolumn na raz
szasza
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 10.01.2009

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


Witam. Mam baze danych w której jest tabela 'lekarze' i zawira pola: lekarzID, nazwisko, specjalizacja, pon, wto, sro, czw, pia. Zrobilem strona która wyswietla te dane w polu tkstowym aby mozna je bylo edytowac po stronie przegladarki. tak wyglada kod z pominieciem tabel, tekstów itp.

Kod
<?php
  
$connection = @mysql_connect ("127.0.0.1","root","");
$ins = @mysql_select_db(bd_przychodnia, $connection);
mysql_query('SET CHARSET latin2');
$zapytanie = "SELECT * FROM lekarze";
$wykonaj = mysql_query ($zapytanie);

while($wiersz=mysql_fetch_array ($wykonaj)) {


echo '<tr> <td width=20%>';
echo '<input type="text" size="29" name="nazwisko" value="'.$wiersz['nazwisko'].'">';
echo '<br>';
echo '<input type="text" size="29" name="specjalizacja" value="'.$wiersz['specjalizacja'].'">';
echo '</td>';
echo '<td width=10%>';
echo '<input type="text" name="pon" value="'.$wiersz['pon'].'">';
echo '</td>';
echo '<td width=10%>';  
echo '<input type="text" name="wto" value="'.$wiersz['wto'].'">';
echo '</td>';
echo '<td width=10%>';  
echo '<input type="text" name="sro" value="'.$wiersz['sro'].'">';
echo '</td>';
echo '<td width=10%>';
echo '<input type="text" name="czw" value="'.$wiersz['czw'].'">';
echo '</td>';
echo '<td width=10%>';
echo '<input type="text" name="pia" value="'.$wiersz['pia'].'">';
echo '</td> </tr>';
}  

?>


Wszystko jest umieszczone w formularzu post i po nacisnieciu przyciusku Edytuj, przechodze do pliku edit.php ktory powinien zmienic wsystkei dane, tylko nie wiem jakiej uzyc instrukcji aby wszytskie pola w tabeli lekarze sie zmienily zgodnie z tym co wpisalem w formularzu :/ gdyz mi sie zmienia tylko ostatni wiersz :/ czy ktos moglby mi pomóc? Gdyż wiem jak zrobić edycje gdy mamy stala ilosc rekordow a w tym przypadku zalezy to od ilosci lekarzy zapisanych w bazie :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
szasza
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 10.01.2009

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


witam. zrobilem wszystko wedlug instrukcji i dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wszystkie pola sie edytuja tak jak powinny, ale nadal nie wiem o co chodzi z tym komunikatem :/ czyli:
Warning: Invalid argument supplied for foreach() in c:\program files\easyphp1-8\www\password\strona\approf3edit.php on line 7
Co sie tyczy wiersza:
foreach ($value as $k => $v)
Moje pliki wygladaja nastepujaco. Ten z formularzem:

CODE

<form method="post" action="approf3edit.php">
<table border="1" width="80%" cellspacing="0" cellpadding="0" bordercolorlight="#000000"> <tr>
<td width="96%" colspan="6" bgcolor="#3366FF"> <p align="center">
<font size="3" color="#FFFFFF"><b>Dyżury lekarzy</b></font></td> </tr> <tr>
<td width="30%" align="center" bgcolor="#E1EFFF"> <p align="center"><font size="3">
&nbsp;Lekarz / specjalizacja</font></td>
<td width="10%" align="center" bgcolor="#E1EFFF"> <p align="center">
<font size="3">Poniedziałek</font></td>
<td width="10%" align="center" bgcolor="#E1EFFF">
<font size="3">Wtorek</font></td>
<td width="10%" align="center" bgcolor="#E1EFFF">
<font size="3">Środa</font></td>
<td width="10%" align="center" bgcolor="#E1EFFF">
<font size="3">Czwartek</font></td>
<td width="302" align="center" bgcolor="#E1EFFF">
<font size="3">Piątek</font></td> </tr>

<?php

$connection = @mysql_connect ("127.0.0.1","root","");
$ins = @mysql_select_db(bd_przychodnia, $connection);
mysql_query('SET CHARSET latin2');
$zapytanie = "SELECT * FROM lekarze";
$wykonaj = mysql_query ($zapytanie);

while($wiersz=mysql_fetch_array ($wykonaj)) {


echo '<tr> <td width=20%>';
echo '<input type="text" size="29" name="nazwisko['.$wiersz['lekarzID'].']" value="'.$wiersz['nazwisko'].'">';
echo '<br>';
echo '<input type="text" size="29" name="specjalizacja['.$wiersz['lekarzID'].']" value="'.$wiersz['specjalizacja'].'">';
echo '</td>';
echo '<td width=10%>';
echo '<input type="text" name="pon['.$wiersz['lekarzID'].']" value="'.$wiersz['pon'].'">';
echo '</td>';
echo '<td width=10%>';
echo '<input type="text" name="wto['.$wiersz['lekarzID'].']" value="'.$wiersz['wto'].'">';
echo '</td>';
echo '<td width=10%>';
echo '<input type="text" name="sro['.$wiersz['lekarzID'].']" value="'.$wiersz['sro'].'">';
echo '</td>';
echo '<td width=10%>';
echo '<input type="text" name="czw['.$wiersz['lekarzID'].']" value="'.$wiersz['czw'].'">';
echo '</td>';
echo '<td width=10%>';
echo '<input type="text" name="pia['.$wiersz['lekarzID'].']" value="'.$wiersz['pia'].'">';
echo '</td> </tr>';
}

?>

</td>
</tr>

</table>


<input type="submit" value="Zmień dane" name="submit">

</form>


I ten to edycji czyli approf3edit.php
  1. <?php
  2. $tablica = array();
  3.  
  4. foreach ($_POST as $key => $value)
  5. {
  6. foreach ($value as $k => $v)
  7.   {
  8.       $tablica[$k][$key] = $v;
  9.   }
  10. }
  11.  
  12. $connection = @mysql_connect ("localhost","root","");
  13. $ins = @mysql_select_db(bd_przychodnia, $connection);
  14. mysql_query('SET CHARSET latin2');
  15.  
  16. foreach ($tablica as $key => $value)
  17. {
  18.   $zap = '';
  19.   $i = 1;
  20.   $c = count($value);
  21.   foreach ($value as $k => $v)
  22.   {
  23.       if($c == $i)
  24.       {
  25.           $zap .= $k.'="'.$v.'"';
  26.       }
  27.       else
  28.       {
  29.           $zap .= $k.'="'.$v.'",';
  30.       }
  31.       $i++;
  32.   }
  33. $zapytanie = "UPDATE lekarze SET $zap WHERE lekarzID='$key'";
  34. $wykonaj = mysql_query ($zapytanie);  
  35.  
  36. }
  37. include('edycjapomyslna.php');
  38. mysql_close($connection);
  39.  
  40. ?>


Ten post edytował szasza 29.05.2009, 00:23:19
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 10:21