Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Problem z mysqli_affected_rows()
Forum PHP.pl > Forum > Przedszkole
henio
Mam problem z mysqli_affected_rows(), gdyż wyświetla mi, że edytuje 2 rekordy, a powinno być, że edytuje 1 rekord

Fragment kodu
  1. <?php
  2. // Utworzenie zmiennej z datą
  3. $data_modyfikacji = date("Y-m-d H:i:s");
  4.  
  5. $zapytanie2 = mysqli_query($mysql, "UPDATE podstrony SET
  6. id_uzytkownik = \"".trim($_POST['id_uzytkownik'])."\", data_modyfikacja = \"".trim($data_modyfikacji)."\"
  7. WHERE id_podstrona = \"".trim($_POST['id_podstrona'])."\"
  8. LIMIT 1")
  9. or die ('Zapytanie jest błędne!<br />'.mysqli_error($mysql));
  10.  
  11. // Sprawdzenie czy został wyedytowany zo choć jeden rekord
  12. if(mysqli_affected_rows($mysql) > 0)
  13. { // Jeśli tak to zostanie wyświetlony komunikat o powodzeniu operacji edycji rekord
    u
  14.  
  15. // Wyświetlenie nagłówka strony
  16. naglowek("Dane zostały wyedytowane");
  17. include("naglowek.php");
  18. include("menu.php");
  19. echo "<div id=\"tresc\">\n";
  20.  
  21. echo "Został wyedytowany ".mysqli_affected_rows($mysql)." rekord\n";
  22. }
  23. else
  24. { // Komunikat o nie dodaniu rekordu
  25.  
  26. // Wyświetlenie nagłówka strony
  27. naglowek("Dane nie zostały wyedytowane");
  28. include("naglowek.php");
  29. include("menu.php");
  30. echo "<div id=\"tresc\">\n";
  31.  
  32. echo "Nie został wyedytowany ani jeden rekord\n";
  33. }
  34. ?>


Wyświetla się:
Został wyedytowany 2 rekord

A ewidentnie powinno 1, nawet mam ustawione LIMIT 1
Eagle
Hm... Skoro wiesz że edytujesz tylko jeden rekord i ustawiasz nawet "LIMIT 1;"

To po co wyświetlasz
  1. <?php
  2. echo "Został wyedytowany ".mysqli_affected_rows($mysql)." rekord\n";
  3. ?>

zamiast
  1. <?php
  2. echo "Został wyedytowany 1 rekord\n";
  3. ?>

smile.gif

A tak to nie wiem czemu taki wynik Ci zwraca.
henio
A no dlatego, że taką samą konstrukcję mam przy dodawaniu rekordów do bazy danych i też mi wyświetla, że dodano 2 rekordy, choć w BD widze 1 nowy rekord

  1. <?php
  2. // Utworzenie zmiennej z datą
  3. $data_dodania = date("Y-m-d H:i:s");
  4.  
  5. $zapytanie2 = mysqli_query($mysql, "INSERT INTO podstrony
  6.  (id_uzytkownik, tytul, tresc, data_dodania, data_modyfikacja)
  7. VALUES (\"".trim($_SESSION['id_uzytkownik'])."\"\"".trim($_POST['tytul'])."\"\"".trim($_POST['tresc'])."\"\"".trim($data_dodania)."\"\"".trim($data_dodania)."\")")
  8. or die ('Zapytanie jest błędne!<br />'.mysqli_error($mysql));
  9.  
  10. // Sprawdzenie czy zostały dodany choć jeden rekord
  11. if(mysqli_affected_rows($mysql) > 0)
  12. { // Jeśli tak to zostanie wyświetlony komunikat o powodzeniu operacji dodania rekor
    du
  13.  
  14. // Wyświetlenie nagłówka strony
  15. naglowek("Dane zostały dodane");
  16. include("naglowek.php");
  17. include("menu.php");
  18. echo "<div id=\"tresc\">\n";
  19.  
  20. echo "Został dodany ".mysql_affected_rows($mysql)." rekord\n";
  21. }
  22. else
  23. { // Komunikat o nie dodaniu rekordu
  24.  
  25. // Wyświetlenie nagłówka strony
  26. naglowek("Dane nie zostały dodane");
  27. include("naglowek.php");
  28. include("menu.php");
  29. echo "<div id=\"tresc\">\n";
  30.  
  31. echo "Nie został dodany ani jeden rekord\n";
  32. }
  33. ?>


Też wyświetla przy dodaniu, że został dodany 2 rekord
nospor
include("naglowek.php");
include("menu.php");
a te skrypty nie wykonuja zadnych operacji na bazie?
henio
Cytat(nospor @ 22.07.2008, 07:54:32 ) *
include("naglowek.php");
include("menu.php");
a te skrypty nie wykonuja zadnych operacji na bazie?


Masz rację, plik menu.php wykonuje. Więc teraz pytanie, jak to zmdyfikować, żeby sprawdzać, że dane zostały zmienione(dodane lub usunięte) i wyświetlanie ilości rekordów zmienionych w tym momencie.

Jakaś sugestia?
nospor
naprawde nic ci nie przychodzi do glowy?

  1. <?php
  2. $zapytanie2 = mysqli_query($mysql, "INSERT INTO podstrony
  3.  (id_uzytkownik, tytul, tresc, data_dodania, data_modyfikacja)
  4. VALUES (\"".trim($_SESSION['id_uzytkownik'])."\"\"".trim($_POST['tytul'])."\"\"".trim($_POST['tresc'])."\"\"".trim($data_dodania)."\"\"".trim($data_dodania)."\")")
  5. or die ('Zapytanie jest błędne!<br />'.mysqli_error($mysql));
  6. $ilosc = mysqli_affected_rows($mysql);
  7. // Sprawdzenie czy zostały dodany choć jeden rekord
  8. if($ilosc > 0)
  9. { // Jeśli tak to zostanie wyświetlony komunikat o powodzeniu operacji dodania rekor
    du
  10.  
  11. // Wyświetlenie nagłówka strony
  12. naglowek("Dane zostały dodane");
  13. include("naglowek.php");
  14. include("menu.php");
  15. echo "<div id=\"tresc\">\n";
  16.  
  17. echo "Został dodany ".$ilosc." rekord\n";
  18. }
  19. ?>
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.