Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Update wiersza dynamicznej tabeli
Forum PHP.pl > Forum > Przedszkole
Asmod
Witam
Przyznam się na wstępie, że w php świeży jestem i mój problem może wydawać się banalny.. ale... nijak nie umiem go sam rozwiązać
Na stronie chcę wyświetlić dane z bazy MySql - w tym celu używam dynamicznej tabelki (repeater) - otóż chciałbym mieć możliwość wprowadzenia zmian w konkretnym wierszu tabeli. Mam już pola edytowalne, funkcję wywołującą UPDATE MySQL-a, mam nawet fajowy przycisk "Update" w każdym wierszu tabelki smile.gif. wszytko sprowadza się do problemu w jaki sposób wysłać do zapytania dane z konkretnego wiersza.
To co udało mi się stworzyć z pomocą wszelakich znalezionych tutoriali podaję poniżej - może ktoś mi podpowie co by tu zmienić, co zostawić a co precz wyrzucić winksmiley.jpg)
Z góry dzięki za wszelkie sugestie

  1. <?php
  2. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
  3. {
  4. $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
  5.  
  6. switch ($theType) {
  7. case "text":
  8. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  9. break;
  10. case "long":
  11. case "int":
  12. $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  13. break;
  14. case "double":
  15. $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
  16. break;
  17. case "date":
  18. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  19. break;
  20. case "defined":
  21. $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  22. break;
  23. }
  24. return $theValue;
  25. }
  26.  
  27.  
  28.  
  29. $editFormAction = $_SERVER['PHP_SELF'];
  30. if (isset($_SERVER['QUERY_STRING'])) {
  31. $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  32. }
  33.  
  34. if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) {
  35. $updateSQL = sprintf("UPDATE CENNIK_KONTRAHENTA SET UWAGI=%s, SYM_WAL=%s, CENA_NETTO=%s, CENA_BRUTTO=%s, UPUST=%s WHERE ((ID_ARTYKULU=%s) AND (ID_KONTRAHENTA=%s) AND (SPRZEDAZ_ZAKUP=%s))", 
  36. // warunekWHERE wyglada tak ze wzgledu na konstrukcje klucza podstawowego - zlozony z 3 pol
  37.  GetSQLValueString($_POST['UWAGI'], "text"),
  38.  GetSQLValueString($_POST['SYM_WAL'], "text"),
  39.  GetSQLValueString($_POST['CENA_NETTO'], "double"),
  40.  GetSQLValueString($_POST['CENA_NETTO']*1.22, "double"),
  41.  GetSQLValueString($_POST['UPUST'], "double"),
  42.  GetSQLValueString($_POST['ID_ARTYKULU'], "int"),
  43.  GetSQLValueString($_POST['ID_KONTRAHENTA'], "double"),
  44.  GetSQLValueString($_POST['SPRZEDAZ_ZAKUP'], "int"));
  45.  
  46. mysql_select_db($database_mysql_testbase, $mysql_testbase);
  47. $Result1 = mysql_query($updateSQL, $mysql_testbase) or die(mysql_error());
  48. }
  49.  
  50. mysql_select_db($database_mysql_testbase, $mysql_testbase);
  51. $query_art_list = sprintf("SELECT * FROM CENNIK_KONTRAHENTA WHERE ID_KONTRAHENTA =%s",$_SESSION['id_kontrahenta']);
  52. $art_list = mysql_query($query_art_list, $mysql_testbase) or die(mysql_error());
  53. $row_art_list = mysql_fetch_assoc($art_list);
  54. $totalRows_art_list = mysql_num_rows($art_list);
  55. ?>


I dalej sama strona:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>Untitled Document</title>
  5. </head>
  6.  
  7. <form method="post" name="form2" action="<?php echo $editFormAction; ?>">
  8. <table border="1">
  9. <tr>
  10. <td>LP</td>
  11. <td>NAZWA_ARTYKULU</td>
  12. <td>CENA NETTO</td>
  13. <td align="right" valign="baseline" nowrap="nowrap">UPUST:</td>
  14. <td align="right" valign="baseline" nowrap="nowrap">SYMBOL WALUTY :</td>
  15. <td align="right" valign="baseline" nowrap="nowrap">UWAGI:</td>
  16. <td> </td>
  17. </tr>
  18.  
  19. <?php
  20. do { ?>
  21. <?php $lp++;?>
  22. <tr>
  23. <td><?php echo $lp; ?></td>
  24. <td><?php echo $row_art_list['NAZWA_ARTYKULU']; ?></td>
  25. <td><input type="text" name="CENA_NETTO" value="<?php echo $row_art_list['CENA_NETTO']; ?>" size="10" /></td>
  26. <td><input type="text" name="UPUST" value="<?php echo $row_art_list['UPUST']; ?>" size="32" /></td>
  27. <td><select name="SYM_WAL" size="1">
  28. <option value="" selected="selected">PLN</option>
  29. <option value="EUR">EUR</option>
  30. </select></td>
  31. <td><textarea name="UWAGI" cols="32"><?php echo $row_art_list['UWAGI']; ?></textarea></td>
  32. <td><input name="submit" type="submit" value="Uaktualnij" /></td>
  33. </tr>
  34. <input type="hidden" name="ID_KONTRAHENTA" value="<?php echo $row_art_list['ID_KONTRAHENTA']; ?>" />
  35. <input type="hidden" name="ID_ARTYKULU" value="<?php echo $row_art_list['ID_ARTYKULU']; ?>" />
  36. <input type="hidden" name="SPRZEDAZ_ZAKUP" value="<?php echo $row_art_list['SPRZEDAZ_ZAKUP']; ?>" />
  37. <input type="hidden" name="MM_update" value="form2" />
  38. <?php } while ($row_art_list = mysql_fetch_assoc($art_list)); ?>
  39. </table>
  40. </form>
  41. </body>
  42. </html>
  43. <?php
  44. mysql_free_result($art_list);
  45. ?>
Sabistik
Zamykam, Złamałeś 2 punkty regulaminu. Jak mi wyślesz na pw jakie to otworze.
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.