Witam,
Mam plik formularza ( zrobiłem to na szybko na potrzeby wątku na forum).
Można w nim dodawać informacje wraz z plikiem ( np. doc, pdf). To działa bez problemu. Wszystko ładnie się wyświetla w dalszej części pliku.
Jest też opcja edycji, która zaczytuje dane z bazy i pozwala zmodyfikować.
Plik formularza wygląda jak poniżej:
<h2>Dodawanie</h2>
<table>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data">
<tr><td>Imię:</td><td><input type="text" name="imie" /></td></tr>
<tr><td>Nazwisko:</td><td><input type="text" name="nazwisko" /></td></tr>
<tr><td>Dołącz plik:</td><td><input type="file" name="file"/></td></tr>
<tr><td></td><td><input type="submit" name="add" style="background-color:yellow" value="Dodaj"/></tr>
</form></table>
<hr>
<?php $get = $test->load_all(); ?>
<table width="50%" border="1">
<tr bgcolor="yellow">
<td width="20%"><b>Imie</b></td>
<td width="20%"><b>Nazwisko</b></td>
<td width="20%"><b>Plik</b></td>
<td width="10%"><b>Zarządzaj</b></td></tr>
<?php
echo '<tr><td width="20%">'.$set['imie'].'</td> <td width="20%">'.$set['nazwisko'].'</td>
<td width="20%">'.$set['plik'].'</td>
<td width="2%"><a href="panel.php?get=testowy&set=edit&id='.$set['Id'].'" alt="Edytuj" title="Edytuj miasto"><img src="../images/edit.png" width="20" height="20" ></a></td>';
}
?>
</table>
<?php
if( isset( $_GET['set']) && $_GET['set'] == 'edit'){ ?>
<hr>
<table>
<h3>Edytuj</h3>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST" >
<tr><td>Imię:</td><td><input type="text" name="imie" value="
<?php echo $set['imie']; ?>"/></td></tr>
<tr><td>Nazwisko:</td><td><input type="text" name="nazwisko" value="
<?php echo $set['nazwisko']; ?>"/></td></tr>
<tr><td>Dołącz plik:</td><td><input type="file" name="file"/></td></tr>
<tr><td></td><td><input type="submit" name="edit" style="background-color:yellow" value="Edytuj"/></tr>
</form>
</table>
<?php }?>
Drugi plik zawiera zapytania do bazy:
<?php
class Testowy{
public $imie;
public $nazwisko;
public $file;
public function add(){
$query = mysql_query("INSERT INTO `test1` (`id`,`imie`, `nazwisko`, `plik`) VALUES (NULL,'$this->imie', '$this->nazwisko', '$this->file')") ;}
public function edit( $id){
$query = mysql_query("UPDATE `test1` SET `imie` = '$this->imie', `nazwisko` = '$this->nazwisko', `plik` = '$this->file' WHERE `id` = '$id'") ;}
public function get( $id){
return $query = mysql_query("SELECT * FROM `test1` WHERE `id` = '$id'"); }
public function load_all(){
return $query = mysql_query("SELECT * FROM `test1` ORDER BY `nazwisko`") ; } }?>
W trzecim najważniejszym pliku wszystko się wykonuje:
if ($_SESSION['upr_test']=='1'){
require_once('../class/class.SQL.php');
require_once('../class/class.User.php');
require_once('../class/class.Testowy.php');
$sql = new SQL;
$sql->connection();
$user = new User;
$test = new Testowy;
if( $user->checkSession() == false){
header('Location: ../login.php'); }
if( isset( $_POST['add'])){
if( $_FILES['file']['type'] == 'application/pdf' or $_FILES['file']['type'] == 'application/msword' or $_FILES['file']['type'] == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' or $_FILES['file']['type'] == 'application/vnd.ms-excel' or $_FILES['file']['type'] == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
$file_name = explode( '.', $_FILES['file']['name']); $test->file = $file_name;
}
$test->add();
}}
elseif( isset( $_POST['edit'])){
if( $_FILES['file']['type'] == 'application/pdf' or $_FILES['file']['type'] == 'application/msword' or $_FILES['file']['type'] == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' or $_FILES['file']['type'] == 'application/vnd.ms-excel' or $_FILES['file']['type'] == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
$file_name = explode( '.', $_FILES['file']['name']); $test->file = $file_name;
}
$test->edit( $id);
}}
$title = 'Zarządzaj';
require_once('../themes/header.php');
require_once('../admin/menu_slownik.php');
require_once('../themes/admin/testowy.php');
}
Dodawanie danych wraz w nową nazwą pliku do bazy, a także umieszczeniem pliku np. doc w odpowiednim folderze na serwerze działa dobrze.
Problem pojawia się w sytuacji edycji. Oczywiście problem dotyczy pliku.
Zrobiłem wszystko analogicznie jak w przypadku dodawania, ale efektu nie ma.
Chciałbym by nazwa pliku w bazie podmieniła się na nową nazwę pliku z edycji i by nowy plik dodał się do folderu na serwerze. Stary plik na serwerze zostaje.
Jak to można zrobić, skoro robiąc identycznie jak przy dodawaniu, w edycji to nie działa?