benzulli
11.08.2013, 12:42:47
Witam
Otóż mam system newsów i w miarę jak witryna się rozwija i przybywa newsów wychodzą niektóre niedociągnięcia na jaw. Kiedy dodaję newsa - wiadomo, piszę się, tutaj zapomni się dać jakiegoś <br />, czy pogrubienia i innych rzeczy. Za każdym razem muszę wchodzić w phpmyadmina i wszystko ręcznie edytować. Jest to trochę męczące i kłopotliwe, ponieważ traci się dużo czasu, a jeżeli ktoś, kto nie ma dostępu, ktoś "z zewnątrz", komu daję uprawnienia - napisze newsa - i co dalej?
Przejdźmy do sedna: robię sobie taki system edycji. Jestem na tym etapie, że pobieram z bazy danych rekordy, czyli tytuł i treść. No i dalej, mam w formularzu takie coś, że między <textarea> po prostu daję komendę echo w php, żeby mi wyskakiwał aktualny stan. No i co teraz, jak zrobić to, że po naciśnięciu "zaktualizuj" po prostu zupdejtuje mi stan strony do bazy? Jak użyć funkcji update? I jak przede wszystkim wybrać pojedynczego newsa, tego, akurat, na którego podstronie jestem? Adres strony to bezchemii.info
teez
11.08.2013, 13:18:33
Jaki masz problem? Jeżeli jesteś już na etapie, że pobierasz w <textarea> wartość z bazy to oznacza, że pobierasz news'a za pomocą $_GET, a dokładniej.. Jak sortujesz news'y to dodajesz np. adres:
adres.pl/edit_news.php?id=ID Newsa z bazy
Później pobierasz danego news'a WHERE id = $_GET['id']
Aktualizujesz tak samo.. Po wysłaniu formularza ( w edit_news.php ) aktualizujesz WHERE id = $_GET['id']
http://webmade.org/kursy-online/aktualizac...-kurs-mysql.php
benzulli
12.08.2013, 22:14:31
Zrobiłem za pomocą jakiegoś poradnika bo mi już mózg wyparował:
edytuj.php
<?php
include("config.php");
ini_set( 'default_charset', 'UTF-8' ); if(isset($_SESSION['zalogowany'])) {
$a = trim($_REQUEST['a']);
if($a == 'edit' and
!empty($id)) { /* zapytanie do tabeli */
id='$id'")
or
die('Błąd zapytania'); /*
wyświetlamy wyniki, sprawdzamy,
czy zapytanie zwróciło wartość większą od 0
*/
/* odczytujemy zawartość wiersza z tabeli */
/* wczytujemy dane do formularza */
/*
w formularz znajdują się ukryte pola "a"
z wartością "save" i pole "id" z wartością
zmiennej id
*/
echo '<form action="edytuj.php?id='.$r['id'].'" method="post"> <input type="hidden" name="a" value="save" />
<input type="hidden" name="id" value="'.$id.'" />
tytul:<br />
<input type="text" name="tytul"
value="'.$r['tytul'].'" /><br />
tresc:
<input type="text" name="tresc"
value="'.$r['tresc'].'" /><br />
<input type="submit" value="popraw" />
</form>';
}
}
elseif($a == 'save') {
/* odbieramy zmienne z formularza */
$id = $_POST['id'];
$tytul = trim($_POST['tytul']); $tresc = trim($_POST['tresc']); /* uaktualniamy tabelę test */
tresc='$tresc' WHERE id='$id'")
or
die('Błąd zapytania'); echo 'Dane zostały zaktualizowane'; }
}
?>
A tu fragment z news.php
echo '<form action="edytuj.php?id='.$rekord[0].'" method="post"><input type="submit" value="Edytuj" /></form>';
Aha i co najważniejsze, nie śmiga niestety :/
Odświeżam.
kpt_lucek
13.08.2013, 03:30:21
<?php
if(!empty($_POST['submit'])) {
mysql_query("UPDATE `newsy` SET `tresc` = '".jakasFunkcjaValidujaca
($_POST['post'])."' WHERE `id` = '".$idNewsa."'") or
die(mysql_error()); }
?>
<form action='' method='post'>
<textarea name="post">
<?php echo $tresc;?></textarea>
<input type="submit" name="submit" value="Zapisz"/>
</form>