Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Brak aktualizacji bazy danych
Forum PHP.pl > Forum > Przedszkole
Humcio
Witam
Mam następujący problem. Napisałem skrypt do zarządzania prostą bazą danych. Wyświetlanie danych, usuwanie i dodawanie działa bez problemów, ale edycja już nie działa. Szczerze mówiąc nie ma pojęcia co jest źle napisane.

  1. <?php
  2. $username="root";
  3. $password="haslo";
  4. $host="localhost";
  5. $dbname="test_sys_log";
  6.  
  7. $options= array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
  8.  
  9. try
  10. {
  11. $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
  12. // echo 'Połączenie nawiązane';
  13. }
  14. catch (PDOException $ex)
  15. {
  16. die('Nie nawiązano połączenia: ' . $ex->getMessage());
  17. }
  18.  
  19.  
  20. //Mquotes
  21. IF(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc())
  22. {
  23. FUNCTION undo_magic_quotes_gpc(&$array)
  24. {
  25. foreach($array AS &$value)
  26. {
  27. IF(is_array($value))
  28. {
  29. undo_magic_quotes_gpc($value);
  30. }
  31. else
  32. {
  33. $value = stripslashes($value);
  34. }
  35. }
  36. }
  37.  
  38. undo_magic_quotes_gpc($_POST);
  39. undo_magic_quotes_gpc($_GET);
  40. undo_magic_quotes_gpc($_COOKIE);
  41. }
  42. ?>

  1. <?php
  2. require ('common.php');
  3.  
  4. $query="SELECT animal_id, animal_name, animal_owner FROM animal";
  5. try{
  6. $stmt=$db->prepare($query);
  7. $stmt->execute();
  8. }
  9. catch (PDOException $ex)
  10. {
  11. die('Nie nawiązano połączenia: ' . $ex->getMessage());
  12. }
  13. ?>
  14.  
  15. <html>
  16. <head>
  17. <title>Zobacz rekordy</title>
  18. </head>
  19. <body>
  20.  
  21. <h1>Wyświetl rekordy</h1>
  22. <p> <a href="animal_add.php">Dodaj zwierze</a></p>
  23.  
  24. <table border="1">
  25. <tr>
  26. <th>ID</th>
  27. <th>Animal</th>
  28. <th>Owner</th>
  29. <th></th>
  30. <th></th>
  31. </tr>
  32. <?php
  33. while($row=$stmt->fetch())
  34. {
  35. echo "<tr>";
  36. echo '<td>'.$row['animal_id'].'</td>';
  37. echo '<td>'.$row['animal_name'].'</td>';
  38. echo '<td>'.$row['animal_owner'].'</td>';
  39. echo '<td><a href="animal_edit.php?animal_id=' .$row['animal_id']. '">Edytuj</a> </td>';
  40. echo '<td><a href="animal_delete.php?animal_id=' .$row['animal_id']. '">Usuń</a> </td>';
  41. echo "</tr>";
  42. }
  43. $stmt->closeCursor();
  44. ?>
  45. </table>
  46.  
  47.  
  48. </body>
  49. </html>

  1. <?php
  2. require ('common.php');
  3.  
  4. $query = "
  5. INSERT INTO animal (
  6. animal_name,
  7. animal_owner
  8. ) VALUES (
  9. :animal_name,
  10. :animal_owner
  11. )
  12. ";
  13.  
  14. $query_parameters= array(
  15. ':animal_name'=>$_POST['animal_name'],
  16. ':animal_owner'=>$_POST['animal_owner']
  17. );
  18.  
  19. try
  20. {
  21. $stmt=$db->prepare($query);
  22. $result=$stmt->execute($query_parameters);
  23. }
  24. catch (PDOException $ex)
  25. {
  26. die('Nie nawiązano połączenia: ' . $ex->getMessage());
  27. }
  28.  
  29.  
  30.  
  31. ?>
  32.  
  33. <html>
  34. <head>
  35. <title>Dodaj rekord</title>
  36. </head>
  37. <body>
  38.  
  39. <h1>Dodaj zwierze</h1>
  40. <form action="animal_add.php" method="post">
  41. Nazwa zwierzęcia:<br/>
  42. <input type="text" name="animal_name" value=""/>
  43. <br/>
  44. Właściciel:<br/>
  45. <input type="text" name="animal_owner" value=""/>
  46. <br/>
  47. <input type="submit" value="Dodaj"/>
  48. </form>
  49.  
  50.  
  51. </body>
  52. </html>

  1. <?php
  2. require ('common.php');
  3.  
  4. $id=$_GET['animal_id'];
  5. // Sprawdz
  6. echo 'Numer id: '.$id;
  7.  
  8. $query="DELETE FROM animal WHERE animal_id=$id";
  9.  
  10. try
  11. {
  12. $stmt=$db->prepare($query);
  13. $stmt->execute();
  14. }
  15. catch (PDOException $ex)
  16. {
  17. die('Nie nawiązano połączenia: ' . $ex->getMessage());
  18. }
  19.  
  20. echo $ex;
  21.  
  22. header("Location: view.php");
  23.  
  24.  
  25.  
  26.  
  27. ?>
  28.  


  1. <?php
  2. require ('common.php');
  3.  
  4. $id=$_GET['animal_id'];
  5.  
  6. //Sprawdz
  7. //echo $id;
  8.  
  9. $query="SELECT * FROM animal WHERE animal_id=$id";
  10.  
  11. try
  12. {
  13. $stmt=$db->prepare($query);
  14. $stmt->bindParam(':animal_id', $id);
  15. $stmt->execute();
  16. }
  17. catch(PDOException $ex)
  18. {
  19.  
  20. die('Nie nawiązano połączenia: ' . $ex->getMessage());
  21. }
  22.  
  23. ?>
  24.  
  25.  
  26. <html>
  27. <head>
  28. <title>Edycja rekordów</title>
  29. </head>
  30. <body>
  31.  
  32. <?php
  33. for ($i=0; $row=$stmt->fetch(); $i++)
  34. {
  35. ?>
  36. <form action="animal_edit_script.php" method="post">
  37. <input type="hidden" name="animal_id" value="<?php echo $animal_id; ?>" />
  38. Nazwa<br/>
  39. <input type="text" name="animal_name" value="<?php echo $row['animal_name']; ?>" /><br>
  40. Właściciel<br/>
  41. <input type="text" name="animal_owner" value="<?php echo $row['animal_owner']; ?>" /><br>
  42. <input type="submit" value="Zapisz" />
  43.  
  44. </form>
  45. <?php
  46. }
  47. ?>
  48. </body>
  49. </html>


  1. <?php
  2. require ('common.php');
  3.  
  4. $animal_id=$_POST['animal_id'];
  5. $animal_name=$_POST['animal_name'];
  6. $animal_owner=$_POST['animal_owner'];
  7.  
  8. $query="UPDATE animal
  9. SET animal_name=:animal_name, animal_owner=:animal_owner
  10. WHERE animal_id=:animal_id
  11. ";
  12. try
  13. {
  14. $stmt=$db->prepare($query);
  15. $stmt->bindParam('animal_name',$animal_name);
  16. $stmt->bindParam('animal_owner',$animal_owner);
  17. $stmt->bindParam('animal_id',$animal_id);
  18. $stmt->execute();
  19. }
  20. catch(PDOException $ex)
  21. {
  22.  
  23. die('Nie nawiązano połączenia: ' . $ex->getMessage());
  24. }
  25.  
  26. header("Location: view.php");
  27.  
  28. ?>
  29.  


W tym ostatnim kodzie pewnie "coś" jest źle, po paru godzinach prób udało mi się tylko za pomocą skryptu edycji czyścić dane z rekordów, chociaż sam nie wiem jak... .
Gdyby ktoś mógł mi z tym pomóc będę naprawdę wdzięczny.
nospor
<input type="hidden" name="animal_id" value="<?php echo $animal_id; ?>" />
Nigdzie nie widze zmiennej $animal_id....

Takie bledy bys mial pokazane od razu na ekranie, jakbys wlaczyl wyswietlanie bledow. TU masz napisane jak
Temat: Jak poprawnie zada pytanie
zastosuj sie tez do innych bardzo PRZYDATNYCH wskazowek tam podanych
Humcio
Wszystko już działa.
Jak pomyślę ile czasu przy tym straciłem...
Dzięki za pomoc i zabieram się za lekturę podanego tematu. Muszę włączyć wyświetlanie błedów, bo inaczej ciemno widzę moją dalszą naukę.
nospor
Cytat
Muszę włączyć wyświetlanie błedów, bo inaczej ciemno widzę moją dalszą naukę.
Jak rownież sprawdzanie danych, na ktorych sie operuje. Jakbys zrobil
print_r($_POST);
to tez bys od razu widzial ze nie idzie ID.
Te i inne wskazowki zawarte są w temacie co podalem. Skoro bierzesz sie za jego czytanie, zycze w takim razie milej i przyswajalnej lektury 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.