Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/32: Рейтинг темы: голосов - 32, средняя оценка - 4.94
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576

кнопка удаления

29.09.2011, 02:10. Показов 6758. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите сделать так чтоб рядом с каждой фоткой которая загрузилась была кнопка удаления
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
$imgDir = "img";
@mkdir($imgDir, 0777);
if (@$_REQUEST['doUpload']) {
$data = $_FILES['file'];
$tmp = $data['tmp_name'];       
 
if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['file']['tmp_name']);
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
$name = "$imgDir/".time().".".$p[1];
move_uploaded_file($tmp,$name);
$url = $name;
$result = mysql_query("INSERT INTO image (id,url) VALUES ('$id','$url')");
} else { 
 echo "<h2>Попытка добавить файл недопустимого формата</h2>";
}
} else {
 echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
 
 
$photos = array();
foreach (glob("$imgDir/*") as $path) {
$sz = getimagesize($path);
$tm = filemtime($path);
$photos[$tm] = array(
'time' => $tm,
'name' => basename($path),
'url' => str_replace($_SERVER['DOCUMENT_ROOT'],'',$path),
'w' => $sz[0],
'h' => $sz[1],
'wh' => $sz[3]
);
}
 
krsort($photos);
?>
 
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<hr>
</form>
<?foreach($photos as $n=>$img) {?>
<p><img src="<?=$img['url']?>"
<?=$img['wh']?>
alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
<?}?>
заранее благодарю

Добавлено через 57 минут
как понимаю надо сделать так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
 /* Если была нажата ссылка удаления, удаляем запись */
 if (isset($_GET['del'])) {
   $del = intval($_GET['del']);
   $query = "delete from image where (id='$del')";
   /* Выполняем запрос. Если произойдет ошибка - вывести ее. */
   mysql_query($query) or die(mysql_error());
 }
 
$photos = array();
foreach (glob("$imgDir/*") as $path) {
$sz = getimagesize($path);
$tm = filemtime($path);
$photos[$tm] = array(
'time' => $tm,
'name' => basename($path),
'url' => str_replace($_SERVER['DOCUMENT_ROOT'],'',$path),
'w' => $sz[0],
'h' => $sz[1],
'wh' => $sz[3]
);
}
подскажите как кнопку сделать))))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.09.2011, 02:10
Ответы с готовыми решениями:

Кнопка для удаления выбранной строки из файла
У меня есть файл login.txt, в формате time|ip|browser Нужно чтобы вывелись все результаты в таблицу ...

Кнопка удаления в сообщениях. Передача в POST значения
Добрый день. Я имитирую ленту, или страницу форума, не суть важно. В БД хранятся сообщения и я вывожу их циклом. while ($row =...

Для каждой строки файла - отдельная кнопка удаления строки
Есть файл textfile.txt в нем скажем 10 строк. ( скрипт сам определяет сколько там строк ) Нужно вывести 10 кнопок с надписью удалить...

46
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
29.09.2011, 03:23
Цитата Сообщение от little_dita Посмотреть сообщение
подскажите как кнопку сделать))))
лучше ссылку (тока надо иметь ввиду, что на сайте нельзя делать удаляющие ссылки. Поисковик может пройти по ним и опустошить БД, Или как-то запретить индексацию этой страницы). А админка у нас и так ставится на noindex.
Просто выводи напротив каждой записи или фотки ссылку "Удалить" в виде
PHP
1
2
//  здесь $id - id текущей записи
echo "<a href='javascript: del($id)'>Удалить</a>"
напишем ф-ю удаления. напр. такую
Следи за названиями полей в БД, у тя они могут называться по другому!
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function delete($id, $dbTable)
{
    $q = "SELECT img FROM $dbTable WHERE id = '%d'";
    $query = sprintf($q, mysql_real_escape_string($id));
 
    if ($res = mysql_query($query))
    {
        $row = mysql_fetch_assoc($res);
        @unlink('../' . $row['img']);
    }
 
    $t = "DELETE FROM $dbTable WHERE id = '%d'";
    $query = sprintf($t, mysql_real_escape_string($id));
    $result = mysql_query($query);
 
    if(!$result)
       die ('Не удалось удалить запись!' . mysql_error());
    
    return true;
}
Теперь условие:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
if ($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     delete($id, $dbTable);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: текущий_файл.php");
     exit();
}
и js-обработчик нашего действия
JavaScript
1
2
3
4
5
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("текущий_файл.php?act=del&id=" + id);
}
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
29.09.2011, 12:37  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
ф-ю удаления. напр. такую
и
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
условие:
я понимаю надо вставить в мой код после этого
PHP
1
2
3
 echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
да js куда
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
29.09.2011, 13:32
Условие можешь вписать после вывода фоток
а js - 2 варианта:
1. создать отдельный js-файл для этой ф-ии и подключить этот файл в шапке
2. записать js-функцию между тегами <script>
PHP
1
2
3
4
5
6
7
<script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("текущий_файл.php?act=del&id=" + id);
}
</script>
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
29.09.2011, 14:01  [ТС]
Love_and_Peace,
так посмотрите пожалуйста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
$imgDir = "img";
@mkdir($imgDir, 0777);
if (@$_REQUEST['doUpload']) {
$data = $_FILES['file'];
$tmp = $data['tmp_name'];       
 
if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['file']['tmp_name']);
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
$name = "$imgDir/".time().".".$p[1];
move_uploaded_file($tmp,$name);
$url = $name;
$result = mysql_query("INSERT INTO image (id,url) VALUES ('$id','$url')");
} else { 
 echo "<h2>Попытка добавить файл недопустимого формата</h2>";
}
} else {
 echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
 
 
$photos = array();
foreach (glob("$imgDir/*") as $path) {
$sz = getimagesize($path);
$tm = filemtime($path);
$photos[$tm] = array(
'time' => $tm,
'name' => basename($path),
'url' => str_replace($_SERVER['DOCUMENT_ROOT'],'',$path),
'w' => $sz[0],
'h' => $sz[1],
'wh' => $sz[3]
);
}
 
function delete($id, $dbTable)
{
    $q = "SELECT img FROM $dbTable WHERE id = '%d'";
    $query = sprintf($q, mysql_real_escape_string($id));
 
    if ($res = mysql_query($query))
    {
        $row = mysql_fetch_assoc($res);
        @unlink('../' . $row['img']);
    }
 
    $t = "DELETE FROM $dbTable WHERE id = '%d'";
    $query = sprintf($t, mysql_real_escape_string($id));
    $result = mysql_query($query);
 
    if(!$result)
       die ('Не удалось удалить запись!' . mysql_error());
    
    return true;
}
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
if ($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     delete($id, $dbTable);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: текущий_файл.php");
     exit();
}
 
krsort($photos);
?>
 
<script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("текущий_файл.php?act=del&id=" + id);
}
</script>
 
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<hr>
</form>
<?foreach($photos as $n=>$img) {?>
<p><img src="<?=$img['url']?>"
<?=$img['wh']?>
alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
<?}?>
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
29.09.2011, 14:21
Цитата Сообщение от little_dita Посмотреть сообщение
document.location.replace("текущий_файл. php?act=del&id=" + id);
замени здесь на название своего файла.
и я не вижу ссылку на удаление напротив фотки (или записи). написши там такую ссылку
PHP
1
2
//  здесь $id - id текущей записи
echo "<a href='javascript: del($id)'>Удалить</a>"
P.S. следи за подсветкой, в другой теме я уже про это сказал. расставь где нужно php-теги
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
29.09.2011, 18:22  [ТС]
такой код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
 
include "../config.php";
$dbTable = "image"; 
 
$imgDir = "img";
@mkdir($imgDir, 0777);
if (@$_REQUEST['doUpload']) {
$data = $_FILES['file'];
$tmp = $data['tmp_name'];       
 
if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['file']['tmp_name']);
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
$name = "$imgDir/".time().".".$p[1];
move_uploaded_file($tmp,$name);
move_uploaded_file($tmp,$name);
$url = $name;
$result = mysql_query("INSERT INTO image (id,url) VALUES ('$id','$url')");
 
 
} else { 
 echo "<h2>Попытка добавить файл недопустимого формата</h2>";
}
} else {
 echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
 
 
$photos = array();
foreach (glob("$imgDir/*") as $path) {
$sz = getimagesize($path);
$tm = filemtime($path);
$photos[$tm] = array(
'time' => $tm,
'name' => basename($path),
'url' => $path,
'w' => $sz[0],
'h' => $sz[1],
'wh' => $sz[3]
);
}
 
function delete($id, $dbTable)
{
    $q = "SELECT img FROM $dbTable WHERE id = '%d'";
    $query = sprintf($q, mysql_real_escape_string($id));
 
    if ($res = mysql_query($query))
    {
        $row = mysql_fetch_assoc($res);
        @unlink('../' . $row['img']);
    }
 
    $t = "DELETE FROM $dbTable WHERE id = '%d'";
    $query = sprintf($t, mysql_real_escape_string($id));
    $result = mysql_query($query);
 
    if(!$result)
       die ('Не удалось удалить запись!' . mysql_error());
    
    return true;
}
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
if (($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     delete($id, $dbTable);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: index2.php");
     exit();
}
 
krsort($photos);
?>
 
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<hr>
</form>
<?foreach($photos as $n=>$img) {?>
<p><img src="<?=$img['url']?>"
<?=$img['wh']?>
alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
<?
<?
//  здесь $id - id текущей записи
echo "<a href='javascript: del($id)'>Удалить</a>"?>
}?>
Добавлено через 20 минут
не понимаю куда кнопку вставить вставляю а она не работает подскажите
куда ее вставить
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
 
include "../config.php";
$dbTable = "image"; 
 
$imgDir = "img";
@mkdir($imgDir, 0777);
if (@$_REQUEST['doUpload']) {
$data = $_FILES['file'];
$tmp = $data['tmp_name'];       
 
if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['file']['tmp_name']);
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
$name = "$imgDir/".time().".".$p[1];
move_uploaded_file($tmp,$name);
move_uploaded_file($tmp,$name);
$url = $name;
$result = mysql_query("INSERT INTO image (id,url) VALUES ('$id','$url')");
 
 
} else { 
 echo "<h2>Попытка добавить файл недопустимого формата</h2>";
}
} else {
 echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
 
 
$photos = array();
foreach (glob("$imgDir/*") as $path) {
$sz = getimagesize($path);
$tm = filemtime($path);
$photos[$tm] = array(
'time' => $tm,
'name' => basename($path),
'url' => $path,
'w' => $sz[0],
'h' => $sz[1],
'wh' => $sz[3]
);
}
 
function delete($id, $dbTable)
{
    $q = "SELECT img FROM $dbTable WHERE id = '%d'";
    $query = sprintf($q, mysql_real_escape_string($id));
 
    if ($res = mysql_query($query))
    {
        $row = mysql_fetch_assoc($res);
        @unlink('../' . $row['img']);
    }
 
    $t = "DELETE FROM $dbTable WHERE id = '%d'";
    $query = sprintf($t, mysql_real_escape_string($id));
    $result = mysql_query($query);
 
    if(!$result)
       die ('Не удалось удалить запись!' . mysql_error());
    
    return true;
}
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
if (($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     delete($id, $dbTable);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: index2.php");
     exit();
}
 
krsort($photos);
?>
 
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<hr>
</form>
 
<?foreach($photos as $n=>$img) {?>
<p><img src="<?=$img['url']?>"
<?=$img['wh']?>
"alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
<?
}?>
Добавлено через 37 минут
подскажите все вставляю и все равно ошибкиО_о

Добавлено через 54 минуты
есть кто кто нибудь кто поможет разобраться ???
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
29.09.2011, 20:26
Цитата Сообщение от little_dita Посмотреть сообщение
куда ее вставить
ну там где ты выводишь список своих записей.
я как понял, ты вывождишь записи здесь
Цитата Сообщение от little_dita Посмотреть сообщение
<?foreach($photos as $n=>$img) {?> <p><img src="<?=$img['url']?>" <?=$img['wh']?> "alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>"> <? }?>
Вот здесь и надо добавить
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<table>
<?php foreach($photos as $n=>$img) : ?>
<tr>
  <td>
    <img src="<?=$img['url']?> <?=$img['wh']?>" alt="Добавлена <?=date("d.m.Y H:i:s", $img['time']); ?>" />
  </td>
   <!-- вместо $img['id'] можешь подставить $n  
          я просто незнаю что содержится в $photos и в как называется поле с id
    -->
  <td><a href='javascript: del(<?= $img['id']; ?>)'>Удалить</a></td>
</tr>
<?php endforeach; ?>
</table>
ошибка у тя в этом районе думаю
Цитата Сообщение от little_dita Посмотреть сообщение
<img src="<?=$img['url']?>" <?=$img['wh']?> "alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
это из-за лишней кавычки.
я ее убрал, но опять же не знаю, что находится в этих переменных $img['url'] и $img['wh'], чтобы правильно записать этот момент
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
30.09.2011, 10:21  [ТС]
Love_and_Peace, ne получилось сделала так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
 
include "../config.php";
 
 
$imgDir = "img";
@mkdir($imgDir, 0777);
if (@$_REQUEST['doUpload']) {
$data = $_FILES['file'];
$tmp = $data['tmp_name'];       
 
if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['file']['tmp_name']);
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
$name = "$imgDir/".time().".".$p[1];
move_uploaded_file($tmp,$name);
$url = $name;
$result = mysql_query("INSERT INTO image (id,url) VALUES ('$id','$url')");
} else { 
 echo "<h2>Попытка добавить файл недопустимого формата</h2>";
}
} else {
 echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
 /* Если была нажата ссылка удаления, удаляем запись */
 if (isset($_GET['del'])) {
   $del = intval($_GET['del']);
   $query = "delete from image where (id='$del')";
   /* Выполняем запрос. Если произойдет ошибка - вывести ее. */
   mysql_query($query) or die(mysql_error());
 }
 
$photos = array();
foreach (glob("$imgDir/*") as $path) {
$sz = getimagesize($path);
$tm = filemtime($path);
$photos[$tm] = array(
'time' => $tm,
'name' => basename($path),
'url' => str_replace($_SERVER['DOCUMENT_ROOT'],'',$path),
'w' => $sz[0],
'h' => $sz[1],
'wh' => $sz[3]
);
}
 
krsort($photos);
?>
 
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<hr>
</form>
<?foreach($photos as $n=>$img) {?>
<p><img src="<?=$img['url']?>"
<?=$img['wh']?>
alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
 
<table>
<?php foreach($photos as $n=>$img) : ?>
<tr>
  <td>
    <img src="<$n?> <?=$img['wh']?>" alt="Добавлена <?=date("d.m.Y H:i:s", $img['time']); ?>" />
  </td>
   <!-- вместо $img['id'] можешь подставить   
          я просто незнаю что содержится в $photos и в как называется поле с id
    -->
  <td><a href='javascript: del(<?= $img['id']; ?>)'>Удалить</a></td>
</tr>
<?php endforeach; ?>
</table>
 
<?}
?>
а он мне показывает мои фотки и какие то пустые поля а радом с ними кнопка удалить
помогите
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
30.09.2011, 10:43
зачем здесь
Цитата Сообщение от little_dita Посмотреть сообщение
src="<$n?> <?=$img['wh']?>"
<?=$img['url'] ?> убрала?
Расшифруй пожалуйста, что находится в src, вот это
<?=$img['url'] ?><?=$img['wh']?> что означает?
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
30.09.2011, 10:53  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
Расшифруй пожалуйста, что находится в src, вот это
<?=$img['url'] ?><?=$img['wh']?> что означает?
этот код картинку выводит
PHP
1
<?=$img['wh']?>
а вот это точно не знаю что у вас на форуме сказали надо так написать а зачем не обьяснили
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
30.09.2011, 11:06
понял, это высота и ширина картинки.
я думал это часть пути к картинке ...
так напиши тег img
PHP
1
2
<img src="<?=$img['url']?>" <?=$img['wh']?>
alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
остальное оставь как есть, посмотрим, что получится
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
30.09.2011, 11:18  [ТС]
Love_and_Peace,
sdelala vot tak
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
 
include "../config.php";
 
 
$imgDir = "img";
@mkdir($imgDir, 0777);
if (@$_REQUEST['doUpload']) {
$data = $_FILES['file'];
$tmp = $data['tmp_name'];       
 
if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['file']['tmp_name']);
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
$name = "$imgDir/".time().".".$p[1];
move_uploaded_file($tmp,$name);
$url = $name;
$result = mysql_query("INSERT INTO image (id,url) VALUES ('$id','$url')");
} else { 
 echo "<h2>Попытка добавить файл недопустимого формата</h2>";
}
} else {
 echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
 /* Если была нажата ссылка удаления, удаляем запись */
 if (isset($_GET['del'])) {
   $del = intval($_GET['del']);
   $query = "delete from image where (id='$del')";
   /* Выполняем запрос. Если произойдет ошибка - вывести ее. */
   mysql_query($query) or die(mysql_error());
 }
 
$photos = array();
foreach (glob("$imgDir/*") as $path) {
$sz = getimagesize($path);
$tm = filemtime($path);
$photos[$tm] = array(
'time' => $tm,
'name' => basename($path),
'url' => str_replace($_SERVER['DOCUMENT_ROOT'],'',$path),
'w' => $sz[0],
'h' => $sz[1],
'wh' => $sz[3]
);
}
 
krsort($photos);
?>
 
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<hr>
</form>
<?foreach($photos as $n=>$img) {?>
<p><img src="<?=$img['url']?>"
<?=$img['wh']?>
alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
 
<table>
<?php foreach($photos as $n=>$img) : ?>
<tr>
  <td>
    <img src="<?=$img['url']?>" <?=$img['wh']?>
alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
  </td>
   <!-- вместо $img['id'] можешь подставить   
          я просто незнаю что содержится в $photos и в как называется поле с id
    -->
  <td><a href='javascript: del(<?= $img['id']; ?>)'>Удалить</a></td>
</tr>
<?php endforeach; ?>
</table>
 
<?}
?>
он создал копии картинок и рядом с ним кнопки удалить
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
30.09.2011, 11:31
Цитата Сообщение от little_dita Посмотреть сообщение
он создал копии картинок и рядом с ним кнопки удалить
а кнопки то удаляют?
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
30.09.2011, 11:34  [ТС]
Love_and_Peace,
net
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
30.09.2011, 11:41
м..
а окошко появляется с предложением удалить?
и еще, наведи просто на кнопку удаления мышку (не нажимай), посмотри, что показывает браузер (обычно снизу бывает ссылка видна), вот ее покажи
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
30.09.2011, 11:45  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
м..
а окошко появляется с предложением удалить?
и еще, наведи просто на кнопку удаления мышку (не нажимай), посмотри, что показывает браузер (обычно снизу бывает ссылка видна), вот ее покажи
окна нет
в низу показывает так
javascript: del()
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
30.09.2011, 11:59
понял, js не видит id той картинки, которую надо удалить.
блин, в массиве $photos нет id.
Надо вытащить id последнего добавленной записи. После INSERT'a надо написать такое
PHP
1
2
3
// возвращаем полседний ID или NULL:
$ins_id = @mysql_insert_id();
$insert_id  = ($ins_id != 0) ? $ins_id : null;
Теперь, в массив можно добавить id текущей (только что добавленной) записи.
PHP
1
2
3
4
5
6
7
8
9
$photos[$tm] = array(
'time' => $tm,
'name' => basename($path),
'url' => str_replace($_SERVER['DOCUMENT_ROOT'],'',$path),
'w' => $sz[0],
'h' => $sz[1],
'wh' => $sz[3],
'id' => $insert_id 
);
Теперь должно заработать, хотя бы ококшко должно появиться.

Кстати я не вижу в коде моей ф-ии и js-функции. Без них не заработатет
Это можешь убрать
Цитата Сообщение от little_dita Посмотреть сообщение
/* Если была нажата ссылка удаления, удаляем запись */ if (isset($_GET['del'])) { $del = intval($_GET['del']); $query = "delete from image where (id='$del')"; /* Выполняем запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die(mysql_error()); }
Добавлено через 52 секунды
такую проверку можно и не делеать, (не тот случай)
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
$insert_id = ($ins_id != 0) ? $ins_id : null;
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
30.09.2011, 12:08  [ТС]
Love_and_Peace,
vot kod
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
 
include "../config.php";
 
 
$imgDir = "img";
@mkdir($imgDir, 0777);
if (@$_REQUEST['doUpload']) {
$data = $_FILES['file'];
$tmp = $data['tmp_name'];       
 
if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['file']['tmp_name']);
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
$name = "$imgDir/".time().".".$p[1];
move_uploaded_file($tmp,$name);
$url = $name;
$result = mysql_query("INSERT INTO image (id,url) VALUES ('$id','$url')");
   // возвращаем полседний ID или NULL:
   $ins_id = @mysql_insert_id();
   $insert_id  = ($ins_id != 0) ? $ins_id : null;} else { 
 echo "<h2>Попытка добавить файл недопустимого формата</h2>";
}
} else {
 echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
 /* Если была нажата ссылка удаления, удаляем запись */
 if (isset($_GET['del'])) {
   $del = intval($_GET['del']);
   $query = "delete from image where (id='$del')";
   /* Выполняем запрос. Если произойдет ошибка - вывести ее. */
   mysql_query($query) or die(mysql_error());
 }
 
$photos = array();
foreach (glob("$imgDir/*") as $path) {
$sz = getimagesize($path);
$tm = filemtime($path);
$photos[$tm] = array(
'time' => $tm,
'name' => basename($path),
'url' => str_replace($_SERVER['DOCUMENT_ROOT'],'',$path),
'w' => $sz[0],
'h' => $sz[1],
'wh' => $sz[3],
'id' => $insert_id 
);
}
 
krsort($photos);
?>
 <script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("index2.php?act=del&id=" + id);
}
</script>
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<hr>
</form>
<?foreach($photos as $n=>$img) {?>
<p><img src="<?=$img['url']?>"
<?=$img['wh']?>
alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
 
<table>
<?php foreach($photos as $n=>$img) : ?>
<tr>
  <td>
    <img src="<?=$img['url']?>" <?=$img['wh']?>
alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
  </td>
   <!-- вместо $img['id'] можешь подставить   
          я просто незнаю что содержится в $photos и в как называется поле с id
    -->
  <td><a href='javascript: del(<?= $img['id']; ?>)'>Удалить</a></td>
</tr>
<?php endforeach; ?>
</table>
 
<?}
?>
картинка все равно копируется нажимаю кнопку удалить
выводится окно дейсвительноли хотите удалить нажимаю да
выводит ошибку syntax error, unexpected '}', expecting ',' or ';' in 97
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
30.09.2011, 13:08
это лишнее в конце
Цитата Сообщение от little_dita Посмотреть сообщение
<?} ?>
а копируется потому что 2 раза один и тот же цикл пишешь
Вот этот код скопируй и вставь
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
 
include "../config.php";
 
$dbTable = 'image';
$imgDir = "img";
@mkdir($imgDir, 0777);
if (@$_REQUEST['doUpload']) {
$data = $_FILES['file'];
$tmp = $data['tmp_name'];       
 
if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['file']['tmp_name']);
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
$name = "$imgDir/".time().".".$p[1];
move_uploaded_file($tmp,$name);
$url = $name;
$result = mysql_query("INSERT INTO image (id,url) VALUES ('$id','$url')");
   // возвращаем полседний ID или NULL:
   $insert_id = @mysql_insert_id();
   } else { 
 echo "<h2>Попытка добавить файл недопустимого формата</h2>";
}
} else {
 echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
 
function delete($id, $dbTable)
{
    $q = "SELECT url FROM $dbTable WHERE id = '%d'";
    $query = sprintf($q, mysql_real_escape_string($id));
 
    if ($res = mysql_query($query))
    {
        $row = mysql_fetch_assoc($res);
        @unlink('../' . $row['url']);
    }
 
    $t = "DELETE FROM $dbTable WHERE id = '%d'";
    $query = sprintf($t, mysql_real_escape_string($id));
    $result = mysql_query($query);
 
    if(!$result)
       die ('Не удалось удалить запись!' . mysql_error());
    
    return true;
}
 
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
if ($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     delete($insert_id, $dbTable);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: текущий_файл.php");
     exit();
}
 
 
 
$photos = array();
foreach (glob("$imgDir/*") as $path) {
$sz = getimagesize($path);
$tm = filemtime($path);
$photos[$tm] = array(
'time' => $tm,
'name' => basename($path),
'url' => str_replace($_SERVER['DOCUMENT_ROOT'],'',$path),
'w' => $sz[0],
'h' => $sz[1],
'wh' => $sz[3],
'id' => $insert_id 
);
}
 
krsort($photos);
?>
 <script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("index2.php?act=del&id=" + id);
}
</script>
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<hr>
</form>
<table>
<?php foreach($photos as $n=>$img) : ?>
<tr>
  <td>
    <img src="<?=$img['url']?>" <?=$img['wh']?>
alt="Добавлена <?=date("d.m.Y H:i:s", $img['time'])?>">
  </td>
  <td><a href='javascript: del(<?= $img['id']; ?>)'>Удалить</a></td>
</tr>
<?php endforeach; ?>
</table>
Так должен работать

Добавлено через 4 минуты
Если картинка не будет удалятся в папке, то проверь пути в функции delete($id, $dbTable) вот в этом месте
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
@unlink('../' . $row['url']);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.09.2011, 13:08
Помогаю со студенческими работами здесь

Как сделать что бы кнопка добавилась, а предыдущая кнопка не исчезла с страницы?
Как сделать что бы кнопка3 добавилась, а кнопка2 не исчезла с страницы? &lt;?php if (isset($_POST)) echo...

Как сделать что бы кнопка добавилась, а предыдущая кнопка не исчезла с страницы?
Добрый день. Есть кнопка1, которая добавляет кнопку2, следующая в свою очередь создает кнопку3. Вопрос. Как сделать что бы кнопка3...

кнопка удаления
Как сделать на форме &quot;список личных карточек&quot; кнопку удаления. чтобы при ее нажатии появлялся запрос на ввод табельного номера и при его...

кнопка удаления
как сделать кнопку удаления которая должна удалять записи из таблиц.

Кнопка удаления
Таблица &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; &lt;title&gt;БД Гостинницы&lt;/title&gt; &lt;/head&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru