Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] edycja rekordu
Forum PHP.pl > Forum > Przedszkole
qwe
Witam


Korzystając z różnych kodów zrobiłem bazę danych a w niej 2 kolumny imie i email tebela daneosobowe

dodawanie rekordu :
  1. <form action="dodaj.php" method="post">
  2. imię:<br />
  3. <input type="text" name="imie" /><br />
  4. e-mail:<br />
  5. <input type="text" name="email" /><br />
  6. <input type="submit" value="dodaj" />
  7. </form>
  8.  
  9. <?php
  10. // Jeżeli dane z formularza zostaną wysłane wykona się kod zawarty w klamrach warunku else
  11. function lacz_bd()
  12. {  
  13.  $db = new mysqli('localhost', 'xxxxxxx', 'xxxxxxxxx', 'xxxxxxxxx');  
  14.    if (! $db)
  15.      return false;
  16.   $db->autocommit(TRUE);
  17.   return $db;
  18. }
  19. $imie = $_POST['imie'];
  20. $imie = addslashes($imie);
  21. $email = $_POST['email'];
  22. $email  = addslashes($email );
  23. //połączenie z bazą
  24. $db = lacz_bd();
  25.  
  26. $zapytanie = "insert into daneosobowe (id, imie, email ) values ('', '$imie', '$email')";
  27. $wynik = $db->query($zapytanie);
  28.        //sprawdzenie czy powiodło się dodawanie
  29.        if($wynik)      echo 'Dodano nowy rekord';
  30.        else            echo 'Błąd podczas dodawania';
  31. ?>


Dane zostają dodane poprawnie.


Ale chciałbym zrobić by można było przez formularz zmienić maila danej osoby

próbowałem zrobić to tak:
  1. <?
  2. $imie=$_POST['imie'];
  3. $email=$_POST['email'];
  4.  
  5.  
  6. $username="xxxxx";
  7. $password="xxxxxx";
  8. $database="xxxxx";
  9. mysql_connect(localhost,$username,$password);
  10.    
  11.    $query = "UPDATE daneosobowe SET email='$email' WHERE imie='$imie' ";        
  12.  
  13. ?>



Ale to nie działa i nie zmienia maila.

Proszę o pomoc bo to moje pierwsze zetknięcie z bazami
nieraczek
Może wpisujesz w formularzu imie inaczej niż jest w bazie danych np. z samymi małymi literami a w bazie masz z wielka literą na początku? Dlaczego WHERE imie='$imie' questionmark.gif Co będzie jak dwie osoby mają takie same imie ? Zmienisz emaila im obu - jesteś pewien że tego chcesz ? Nie lepiej dać w WHERE id ? I używasz w końcu mysqli czy mysql ? Pokaż całość kodu. Gdzie wybierasz baze danych ? Jak potem wykonujesz zapytanie bo widze sam tekst zapytania - nie ma przed tym wyboru bazy danych i nie ma nic po tym ?
qwe
zawsze będzie tylko jedno imię no ale masz rację lepiej się zabezpieczyć i zrobić przez "id" z tym, że nie mam pojęcia jak to zrobić

yy to jest mój cały kod do edycji danych... teraz szukam po forum rozwiązań

to mój pierwszy kod i styczność z bazami mysql - a potrzebuję to zrobić aby można było edytować dane

znalazłem funkcję odpowiedzialną za aktualizowanie danych

  1. <?php
  2. $imie=$_POST['imie'];
  3. $email=$_POST['email'];
  4. function lacz_bd()
  5. {  
  6.  $db = new mysqli('localhost', '', '', '');  
  7.    if (! $db)
  8.      return false;
  9.   $db->autocommit(TRUE);
  10.   return $db;
  11. }
  12. $db = lacz_bd();
  13. //zapytanie typu update uaktualni wszystkie rekordy gdzie imie równa się Agata i zamieni je na Paweł co w rezultacie da to że wszystkie rekordy Agata zostaną zmienione na Paweł
  14.  
  15.        $zapytanie="update daneosobowe set email='$email' where imie='$imie'";
  16.        $wynik = $db->query($zapytanie);
  17.        $wynik = $db->query($zapytanie);
  18.        if($wynik)echo 'Uaktualniono rekord';
  19.    else      echo 'Błąd podczas uaktualniania';
  20. ?>


ale jeśli ktoś wie jak to wykonać poprzez id a nie imie to proszę o pomoc
golaod
Po pierwsze tabelka id,imie,mail.
Po drugie skoro dajesz komuś możliwość zmiany danych no to robisz to trzymając np jego id w sesji.
Można też zrobić na zasadzie link: strona.pl/change_user_form.php?id=5

I dzięki temu wyświetlasz formularz:
  1. <?php
  2. $query = 'SELECT * FROM tabela WHERE id = '.mysql_escape_string($_GET['id']);
  3. ?>

Następnie wyciągnięte tak dane zapisujesz w formularzu
Kod
<input type="text" name="mail" value="<?php echo $row['mail']; ?>" />
<input type="hidden" name="user_id" value="<?php echo $row['id']; ?>" />

Dzięki temu jak wyślesz taki formularz do swojego kontrolera, to będziesz mógł bez problemu update zrobić:
  1. <?php
  2. $query = "UPDATE tabel SET mail = '".mysql_escape_string($_POST['mail'])."' WHERE id = ".mysql_escape_string($_POST['id']);
  3. ?>


Tadam.... Przecież to wystarczy poczytać trochę o mysql na chociażby republice i o php na webmade
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.