Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Php + Mysql] Podmiana rekordu w tabeli
Forum PHP.pl > Forum > PHP
kimu
Edytuje jeden rekord "tekst" z tabeli, a dokładnie jeden element "treść" (tekst składa się z id, tytuł, tekst (treść), wyswietleń, kat). Sam wpis z tekstem dodawany jest tym skryptem:

  1. <?php
  2. $_POST['tresc'] = mysql_real_escape_string($_POST['tresc']);
  3. $sql = "INSERT INTO tekst VALUES(0, '".$_POST['tytul']."', '".$_POST['tresc']."', 0, '".$_GET['id']."');";
  4. $wykonaj = mysql_query($sql);
  5. $error = mysql_error($sql);
  6.  
  7. if($wykonaj){
  8. echo 'Dodano';
  9. } else {
  10. echo 'Coś poszło nie tak- nie udało się dodać';
  11. }
  12. ?>


Edycja samej treści natomiast w ten sposób:

  1. <?php
  2. $sql = 'SELECT * FROM `tekst` WHERE id = '.$_GET['id'].'';
  3. $wykonaj = mysql_query($sql);
  4.  
  5. while($wiersz = mysql_fetch_array($wykonaj)) {
  6. echo "<h5>".$wiersz['tytul']." </h5><br>
  7. <textarea name=\"tresc\" rows=30 cols=70 style=\"background-color: #C5CDCE;\">".$wiersz['tekst']."</textarea><br><br><br>";
  8. }
  9. ?>


Co teraz powinienem dodać w skypcie edytującym aby po kliknięciu "wyślij" rekordy się podmieniały (zachowójąc ten sam numer id, ilość wyświetleń itd.)
Fixus
eh nie wiem za bardzo co ci doradzić bo tak to pogmatwałeś, że za bardzo nie kminie...ale jeśli dobrze to zrozumiałem to tekst który masz w <textarea></textarea> chcesz zedytować...
więc wystarczy ci UPDATE
kimu
Mógłbyś mi pokazać dokładnie co mam zmienić ? Chodzi mi dokładnie o podmienienie tego co znajduje się w "textarea" z danym rekordem (tresc) w bazie danych.
Fixus
no ładujesz starą wartość do <textarea>..użytkownik nadpisuje i wysyła formularz...w drugim pliku przechwytujesz to i robisz aktualiacje.
UWAGA! Proponuje ci dodać przed/po <textarea>:
Kod
$id = $_GET['id'];
echo "<input type='hidden' name='tresc_id' value = '$id' />";


no i teraz w pliku do którego leci formularz robisz:
Kod
$id = $_POST['tresc_id'];
$tekst = $_POST['tresc'];
$sql = "UPDATE tekst SET tekst = '$tekst' WHERE id = 'id'";
$result = mysql_query($sql);


ps. ale nasrałeś z tymi nazwami tabeli i rekordów i pól formularza...tekst, treść - prawie nie można połapać się co i jak, ale to powinno działać. Zwracaj na takie rzeczy uwagę bo to przydatne
kimu
Plik z polem do edycji (textarea) wygląda tak:

  1. <?php
  2.  
  3. $sqla = "SET CHARSET latin2";
  4. mysql_query($sqla);
  5.  
  6. $sql = 'SELECT * FROM `tekst` WHERE id = '.$_GET['id'].'';
  7. $wykonaj = mysql_query($sql);
  8.  
  9. $id = $_GET['id'];
  10.  
  11. while($wiersz = mysql_fetch_array($wykonaj)) {
  12. echo "<input type='hidden' name='tresc_id' value = '$id' />";
  13.  
  14. echo "<h5>".$wiersz['tytul']." </h5><br><form action=\"wpis3.php?id=".$_GET['id']."\" method=\"POST\">
  15. <textarea name=\"tresc\" rows=30 cols=70 style=\"background-color: #C5CDCE;\">".$wiersz['tekst']."</textarea><br><input type=\"submit\" value=\"Wyslij\"><br><br><br>";
  16.  
  17. }
  18. ?>


Plik do którego wysylany jest formularz (wpis3.php):

  1. <?php
  2. $id = $_POST['tresc_id'];
  3. $tekst = $_POST['tresc'];
  4. $sql = "UPDATE tekst SET tekst = '$tekst' WHERE id = 'id'";
  5. $result = mysql_query($sql);
  6. ?>


Niestety jednak nic w tekstach się nie zmienia. Co robie źle ? ;-)
Fixus
1. skoro używasz metody POST to po co przekazujesz id w linku?
2. sprawdź czy nie pomyliłeś się w nazwach tabel, pól itp bo są prawie identyczne
kimu
Słuchaj, czy mógłbyś napisać do mnie na gg: 4941754. Zaglądnąłbyś do mojej bazy danych bo ja wsumie tez cos nie moge sie połapać (plus to że jestem laikiem).
Fixus
nie mam na to chwilowo czasu...
sprawdź takie rzeczy jak:
1. czy jak pobierasz wartość pola to wyświetla się
2. sprawdź czy w zapytaniu nie mylisz nazwy tabeli i pól.
3. daj
Kod
echo $sql;
- skopiuj to co ci zwraca i przepuść przez phpMyAdmin albo skorzystaj z funkcji mysql_error(), mysql_errno()
kimu
mysql_error():

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /home/h/a/k/hakara/www/1/wpis3.php on line 93

Kiedy daje w pliku "wpis3.php" echo $tekst to tekst się wyświetla dobrze, już zmieniony.
Fixus
teraz weź skopiuj to co zwraca $sql ( echo $sql; ) i wrzuć przez phpMyAdmin....o ile się nie mylę podajesz złą nazwę pola
kimu
Coś się nie chce dodać, tzn. po wysłaniu wyświetla się brak strony. Jakbyś mógł napisać do mnie jak będziesz miał chwilkę czasu, byłym niezmiernie wdzięczny ;-)
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.