Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Skrypt nie zmienia wpisów w bazie danych
Forum PHP.pl > Forum > Przedszkole
Zaszczyk
Mam skrypt do obsługi porad, są to krótkie teksty które losowo wyświetlają się na stronie głównej, są one zapisane w bazie danych MySQL. Porady można dodawać i edytować. Niestety jest problem przy edycji. Teoretycznie pokazuje się napis ze Porada została zeedytowana, ale w rzeczywistości tak nie jest. Podejrzewam ze jest jakiś błąd przy zapytaniu które edytuje rekord w bazie.

Plik hintf.php:

  1. <?php
  2. function hintwykaz (){
  3. $result = mysql_query("SELECT * FROM porady")
  4. while ($row = mysql_fetch_array($result)){
  5. ?>
  6. <div align="left"><?php echo "$row[1]";?> | <a href="hint.php?id=<?php echo "$row[0]"; ?>&site=editform">Edytuj</a></div>
  7. <br><br>
  8. <?php
  9. }}
  10.  
  11. function addform(){
  12. ?>
  13. <center>Dodaj porade</center><br>
  14. <form method="post" action="hint.php?site=add">
  15. Porada: <input type="text" name="porada">
  16. <input type="submit" name="Submit" value="Wyślij">
  17. </form>
  18. <?php
  19. }
  20.  
  21. function editform($id){
  22. $result = mysql_query("SELECT * FROM porady WHERE id='$id'")
  23. while ($row = mysql_fetch_array($result)){
  24. ?>
  25. <center>Edytuj porade</center><br>
  26. <form method="post" action="hint.php?site=edit&id=<?php echo "$id"; ?>">
  27. Porada: <input type="text" name="porada" value="<?php echo "$row[1]"; ?>">
  28. <input type="submit" name="Submit" value="Wyślij">
  29. </form>
  30. <?php
  31. }}
  32.  
  33. function addhint($porada){
  34. $result = mysql_query("INSERT INTO porady (porada) VALUES ('$porada')")
  35. $result = mysql_query("UPDATE liczba SET los=los+1")
  36. echo "<center>Porada została dodana</center>";
  37. }
  38.  
  39. function edithint($porada){
  40. $result = mysql_query("UPDATE porady SET porada='$porada' WHERE id='$id'")
  41. echo "<center>Porada została zedytowana</center>";
  42. }


Plik hint.php

  1. <?php
  2. include ("body.php");
  3. include ("hintf.php");
  4. connect();
  5. head();
  6. if ($_GET["site"] == addform){
  7. if ($_SESSION["prawa"] == 2){
  8. addform();}}
  9. elseif ($_GET["site"] == add){
  10. if ($_SESSION["prawa"] == 2){
  11. addhint($_POST["porada"]);}}
  12. elseif ($_GET["site"] == editform){
  13. if ($_SESSION["prawa"] == 2){
  14. editform($_GET["id"]);}}
  15. elseif ($_GET["site"] == edit){
  16. if ($_SESSION["prawa"] == 2){
  17. edithint($_GET["porada"]);}}
  18. elseif ($_GET["site"] == wykaz){
  19. if ($_SESSION["prawa"] == 2){
  20. hintwykaz();}}
  21. else {
  22. echo "<center>Podana strona nie istnieje, skontaktuj się z administracją</center>";}
  23. foot();
  24. ?>
chemik1982
Witam,


$result = mysql_query("UPDATE porady SET porada="'.$porada.'" WHERE id='.$id.'")

Pozdro.
kriqs
witam

nakieruje cie smile.gif: pokaz mi jak przekazujesz $id do edithint.
Zaszczyk
Cytat(chemik1982 @ 25.08.2007, 15:03:16 ) *
Witam,


$result = mysql_query("UPDATE porady SET porada="'.$porada.'" WHERE id='.$id.'")

Pozdro.


Niestety nie działa
chemik1982
plus dodatkowo podpowiedz kolegi o przekazaniu $id jako parametru do twojej funkcji updatujacej.

function edithint($porada,$id)
Zaszczyk
Plik hintf.php wygląda tak:

  1. <?php
  2. function hintwykaz (){
  3. $result = mysql_query("SELECT * FROM porady")
  4. while ($row = mysql_fetch_array($result)){
  5. ?>
  6. <div align="left"><?php echo "$row[1]";?> | <a href="hint.php?id=<?php echo "$row[0]"; ?>&site=editform">Edytuj</a></div>
  7. <br><br>
  8. <?php
  9. }}
  10.  
  11. function addform(){
  12. ?>
  13. <center>Dodaj porade</center><br>
  14. <form method="post" action="hint.php?site=add">
  15. Porada: <input type="text" name="porada">
  16. <input type="submit" name="Submit" value="Wyślij">
  17. </form>
  18. <?php
  19. }
  20.  
  21. function editform($id){
  22. $result = mysql_query("SELECT * FROM porady WHERE id='$id'")
  23. while ($row = mysql_fetch_array($result)){
  24. ?>
  25. <center>Edytuj porade</center><br>
  26. <form method="post" action="hint.php?site=edit&id=<?php echo "$id"; ?>">
  27. Porada: <input type="text" name="porada" value="<?php echo "$row[1]"; ?>">
  28. <input type="submit" name="Submit" value="Wyślij">
  29. </form>
  30. <?php
  31. }}
  32.  
  33. function addhint($porada){
  34. $result = mysql_query("INSERT INTO porady (porada) VALUES ('$porada')")
  35. $result = mysql_query("UPDATE liczba SET los=los+1")
  36. echo "<center>Porada została dodana</center>";
  37. }
  38.  
  39. function edithint($porada,$id){
  40. $result = mysql_query("UPDATE porady SET porada="'.$porada.'" WHERE id='.$id.'")
  41. echo "<center>Porada została zedytowana</center>";
  42. }


I wyskakuje taki błąd:

Kod
Parse error:  syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Program Files\wamp\www\cms\hintf.php on line 44


PS. To nie ja pisałem ten skrypt.
phpion
  1. <?php
  2. $result = mysql_query('UPDATE porady SET porada="'.$porada.'" WHERE id='.$id)
  3. ?>
Zaszczyk
Teraz po edycji porady wyskakuje coś takiego:

Kod
Warning:  Missing argument 2 for edithint(), called in C:\Program Files\wamp\www\cms\hint.php on line 18 and defined in C:\Program Files\wamp\www\cms\hintf.php on line 43
    You have an error in your SQL syntax; check the manual that corresponds  to your MySQL server version for the right syntax to use near '' at  line 1
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.