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

вывод определенного id

10.10.2011, 16:59. Показов 9614. Ответов 61
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
извени те меня но опять тупой вопрос
добавляю к новости фографии по ссылки передаю id новости
вот ссылка такая
<a href=ссылка на форму?news_id=".$news['id_news'].">фото</a>
а вот сама форма
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
<script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("ссылка на формы?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="Закачать новую фотографию">
<input type="hidden" name="news_id" value="<?php echo $_REQUEST['news_id']; ?>">
<hr>
</form>
<?php
 
include "../config.php";
$db = 'image';
 
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
function delete($id, $dbTable)
{
    $q = "SELECT url FROM $dbTable WHERE id = '%d'";
// echo $q;
    $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;
}
 
 
// Здесь добавляем
$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,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
      } else { 
         echo "<h2>Попытка добавить файл недопустимого формата</h2>";
   }
} else {
    echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
// Здесь выводим все записи из таблицы для построения списка
$query = 'SELECT `id`, `url` FROM `image`';
$res = mysql_query($query);
 
if(!$res)  die ('Не удалось получить список записей!    ' . mysql_error());
?>
<table><tr>
<?php
$cnt=1;
if (mysql_num_rows($res) != 0)
{
   while ($row = mysql_fetch_array($res))
   {
 if($cnt%4==1) echo '</tr><tr>';
?>
  <td>
    <img src="preview.php?src=<?=$row['url']?>"  alt="Добавлена <?=date("d.m.Y H:i:s", $row['time'])?>">
  </td>
  <td><a href='javascript: del(<?= $row['id']; ?>)'>Удалить</a></td>
<?php
$cnt++;
   }
}
?>
</tr></table>
<?php
if (($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     $id_img = (int)$_GET['id'];
delete($id_img, $db);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: ссылка на форму");
     exit();
}
?>
вот тут то и проблема при открытии показываются все фотки а надо чтоб показывались именно той новости которую выбрали
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.10.2011, 16:59
Ответы с готовыми решениями:

Вывод определённого сообщения
Есть код: &lt;form action=&quot;tag.php&quot; method=&quot;get&quot; accept-charset=&quot;windows-1251&quot;&gt; &lt;nobr&gt; &lt;input type=&quot;text&quot; name=&quot;q&quot;...

Вывод определенного атрибута
Здравствуйте, новичок в php и xml, не получается вывести конкретный атрибут( под id=&quot;100498817&quot;), пытался вывести с помощью if...

Вывод определенного предложения
Нужно вывести определенноe предложение. У меня проблема с этой частью: for (j=0; j &lt; kp ; j++) if (gh==max) for...

61
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
12.10.2011, 12:51  [ТС]
Студворк — интернет-сервис помощи студентам
пробовала ссылка тогда выглядит
adminka/doc/index.php?news_id=
а например что тут можно упростить если не можите скажите
0
93 / 93 / 9
Регистрация: 20.02.2011
Сообщений: 210
12.10.2011, 12:56
я же уже говорил что надо попробовать использовать $_REQUEST для всех переменных
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
12.10.2011, 12:59  [ТС]
да и так тоже не получается
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
<script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("/adminka/doc/index.php?act=del&id=" + id);
}
</script>
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="GET" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<input type="hidden" name="news_id" value="<?php echo  $_REQUEST['news_id'] ?>">
<hr>
</form>
<?php
 
include "../config.php";
$db = 'image';
 
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
function delete($id, $dbTable)
{
    $q = "SELECT url FROM $dbTable WHERE id = '%d'";
// echo $q;
    $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;
}
 
 
// Здесь добавляем
$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,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
      } else { 
         echo "<h2>Попытка добавить файл недопустимого формата</h2>";
   }
} else {
    echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
// Здесь выводим все записи из таблицы для построения списка
$news_id=mysql_real_escape_string($_GET['news_id']);
$query = 'SELECT `id`, `url` FROM `image` WHERE news_id="'.$news_id.'"';
 
$res = mysql_query($query);
 
if(!$res)  die ('Не удалось получить список записей!    ' . mysql_error());
?>
<table><tr>
<?php
$cnt=0;
if (mysql_num_rows($res) != 0)
{
   while ($row = mysql_fetch_array($res))
   {
 if($cnt%4==0 && $cnt!=0) echo '</tr><tr>';
?>
  <td>
    <img src="preview.php?src=<?=$row['url']?>"  alt="Добавлена <?=date("d.m.Y H:i:s", $row['time'])?>">
  </td>
  <td><a href='/adminka/doc/index.php?act=del&id=<?=$row['url']?>&news_id=<?$news_id?>'>Удалить</a></td>
<?php
$cnt++;
   }
}
?>
</tr></table>
<?php
if (($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     $id_img = (int)$_GET['id'];
delete($id_img, $db);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: /adminka/doc/index.php?news_id=".$_GET['news_id']."");
     exit();
}
?>
Добавлено через 50 секунд
передаю место пост гетом
0
93 / 93 / 9
Регистрация: 20.02.2011
Сообщений: 210
12.10.2011, 14:59
Цитата Сообщение от little_dita Посмотреть сообщение
передаю место пост гетом
и работает?
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
12.10.2011, 15:27  [ТС]
djdish,
работает как и работала при загрузки или удалении идет переход на пустую страницу
/adminka/doc/index.php

Добавлено через 15 минут
из за чего даже ума не приложу а вы как думаете
дайте какуенибудь форму рабочию типа жтого чтоб была
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
12.10.2011, 15:34
Цитата Сообщение от little_dita Посмотреть сообщение
з за чего даже ума не приложу а вы как думаете
посмотри перехеод в js:
Цитата Сообщение от little_dita Посмотреть сообщение
/adminka/doc/index.php
Т.е., при удалении (и при добавлении по-моему) страница переходит значит по этому адресу.
Вот в ф-ии js напиши адрес который те нужен

Добавлено через 1 минуту
... после добавления скрипт никуда не переходит
Цитата Сообщение от little_dita Посмотреть сообщение
$result = mysql_query("INSERT INTO image (id,url,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
Напиши после добавления
PHP
1
2
header('Location: куда надо');
exit();
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
12.10.2011, 17:14  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
посмотри перехеод в js:
вы имеете ввиду это
PHP
1
2
3
4
5
6
7
<script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("/adminka/doc/index.php?act=del&id=" + id);
}
</script>
Добавлено через 24 минуты
Цитата Сообщение от 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
// Здесь добавляем
$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,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
      } else { 
         echo "<h2>Попытка добавить файл недопустимого формата</h2>";
   }
} else {
    echo "<h2>Ошибка закачки #{$data['error']}</h2>"; 
header("Location: /adminka/doc/index.php?news_id=".$_GET['news_id']."");
     exit();
}
}
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
12.10.2011, 21:43
каша.
1. Вот это
Цитата Сообщение от little_dita Посмотреть сообщение
header("Location: /adminka/doc/index.php?news_id=".$_GET['news_id'].""); exit();
вставить Сразу после этого
Цитата Сообщение от little_dita Посмотреть сообщение
$result = mysql_query("INSERT INTO image (id,url,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
2. Сколько ввсего файлов участвуют в действии. названия их, и что за что отвечает.
3. Удаление новости происходит на странице списка новостей (url этой страницы) или на странице редактирования (также url в студию)

Добавлено через 2 минуты
т.е., какое действие происходит по какому адресу
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
13.10.2011, 13:36  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
1. Вот это
вставила
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
<script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("/adminka/doc/index.php?act=del&id=" + id);
}
</script>
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="GET" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<input type="hidden" name="news_id" value="<?php echo  $_REQUEST['news_id'] ?>">
<hr>
</form>
<?php
 
include "../config.php";
$db = 'image';
 
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
function delete($id, $dbTable)
{
    $q = "SELECT url FROM $dbTable WHERE id = '%d'";
// echo $q;
    $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;
}
 
 
// Здесь добавляем
$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,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
header("Location: /adminka/doc/index.php?news_id=".$_GET['news_id'].""); exit();
      } else { 
         echo "<h2>Попытка добавить файл недопустимого формата</h2>";
   }
} else {
    echo "<h2>Ошибка закачки #{$data['error']}</h2>";
}
// Здесь выводим все записи из таблицы для построения списка
$news_id=mysql_real_escape_string($_GET['news_id']);
$query = 'SELECT `id`, `url` FROM `image` WHERE news_id="'.$news_id.'"';
 
$res = mysql_query($query);
 
if(!$res)  die ('Не удалось получить список записей!    ' . mysql_error());
?>
<table><tr>
<?php
$cnt=0;
if (mysql_num_rows($res) != 0)
{
   while ($row = mysql_fetch_array($res))
   {
 if($cnt%4==0 && $cnt!=0) echo '</tr><tr>';
?>
  <td>
    <img src="preview.php?src=<?=$row['url']?>"  alt="Добавлена <?=date("d.m.Y H:i:s", $row['time'])?>">
  </td>
  <td><a href='/adminka/doc/index.php?act=del&id=<?=$row['url']?>&news_id=<?$news_id?>'>Удалить</a></td>
<?php
$cnt++;
   }
}
?>
</tr></table>
<?php
if (($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     $id_img = (int)$_GET['id'];
delete($id_img, $db);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: /adminka/doc/index.php?news_id=".$_GET['news_id']."");
     exit();
}
?>
syntax error, unexpected $end in в 107



Цитата Сообщение от Love_and_Peace Посмотреть сообщение
2. Сколько ввсего файлов участвуют в действии. названия их, и что за что отвечает.
есть файлы создания и редактирования новостей в админке есть краткич вывод новостей радом с ним ссылка на форму выше
<a href=../doc/index.php?news_id=".$news['id_news'].">добавить фото к новости</a>
при переходе по этой ссылки показывается эта форма где можно посмотреть уже загруженые фотографии, можно удалить фотографии и конечно же загрузить

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
3. Удаление новости происходит на странице списка новостей (url этой страницы) или на странице редактирования (также url в студию)
удалении происходит на странице которая отвечает за показ редактирование и добавления фоток т.е которая выше и в которой я ваз запутала.
прошу извенения за все но помогите пожайлуста

Добавлено через 12 часов 55 минут
Love_and_Peace, подскажите что теперь не так? пожайлуста
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
13.10.2011, 14:45
Цитата Сообщение от little_dita Посмотреть сообщение
syntax error, unexpected $end in в 107
где то пропустила закрывающую скобку.

Раз у тя на странице со списком новостей ничего не происходит (покажи пожалста url этой страницы), тогда сдеаем так:
1. Назовем страницу со списком - /doc/index.php
2. Страница добавления - /doc/index.php?act=add
3. Страница редактирования (обновление, удаление) - /doc/index.php?act=edit&news_id=номер новости

Теперь, что куда будет переходить при действии.
Начну с удаления,
- т.к. при удалении новости больше нет, тогда логичней вернуть скрипт к списку новостей.
- При обновлении переход на самого себя ($_SERVER['QUERY_STRING'])
- а при добавлении можно пойти двумя путями:
1) вернуться к списку новостей;
2) Получить, сразу после добавления новости, id этой новости через ф-ю mysql_insert_id(); и подставить его в url

Вид перехода, уже был представлен
PHP
1
2
header("Location: /adminka/doc/index.php ... дальше в зависимости от действий (в случае удаления - пусто)"); 
exit();
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
13.10.2011, 23:38  [ТС]
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("/adminka/doc/index.php?act=del&id=" + id);
}
</script>
<body>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="GET" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" name="doUpload" value="Закачать новую фотографию">
<input type="hidden" name="news_id" value="<?php echo  $_REQUEST['news_id'] ?>">
<hr>
</form>
<?php
 
include "../config.php";
$db = 'image';
 
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
function delete($id, $dbTable)
{
    $q = "SELECT url FROM $dbTable WHERE id = '%d'";
// echo $q;
    $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;
}
 
 
// Здесь добавляем
$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,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
header("Location: /adminka/doc/index.php?news_id=".$_GET['news_id'].""); exit();
      } else { 
         echo "<h2>Попытка добавить файл недопустимого формата</h2>";
   }
} else {
    echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
// Здесь выводим все записи из таблицы для построения списка
$news_id=mysql_real_escape_string($_GET['news_id']);
$query = 'SELECT `id`, `url` FROM `image` WHERE news_id="'.$news_id.'"';
 
$res = mysql_query($query);
 
if(!$res)  die ('Не удалось получить список записей!    ' . mysql_error());
?>
<table><tr>
<?php
$cnt=0;
if (mysql_num_rows($res) != 0)
{
   while ($row = mysql_fetch_array($res))
   {
 if($cnt%4==0 && $cnt!=0) echo '</tr><tr>';
?>
  <td>
    <img src="preview.php?src=<?=$row['url']?>"  alt="Добавлена <?=date("d.m.Y H:i:s", $row['time'])?>">
  </td>
  <td><a href='/adminka/doc/index.php?act=del&id=<?=$row['url']?>&news_id=<?$news_id?>'>Удалить</a></td>
<?php
$cnt++;
   }
}
?>
</tr></table>
<?php
if (($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     $id_img = (int)$_GET['id'];
delete($id_img, $db);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: /adminka/doc/index.php?news_id=".$_GET['news_id']."");
     exit();
}
?>
выдает ошибку закачки

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
(покажи пожалста url этой страницы)
вот он /adminka/news/news.php
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
Раз у тя на странице со списком новостей ничего не происходит (покажи пожалста url этой страницы), тогда сдеаем так:
1. Назовем страницу со списком - /doc/index.php
2. Страница добавления - /doc/index.php?act=add
3. Страница редактирования (обновление, удаление) - /doc/index.php?act=edit&news_id=номер новости
у меня просто радом с каждой новостью кнопка добавить фото есть при нажатии показывается эта форма

Добавлено через 5 часов 14 минут
вот в чем проблема поняла вот так все работает
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
108
<script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("/adminka/doc/index.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="Закачать новую фотографию">
<input type="hidden" name="news_id" value="<?php echo  $_REQUEST['news_id'] ?>">
<hr>
</form>
<?php
 
include "../config.php";
$db = 'image';
 
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
function delete($id, $dbTable)
{
    $q = "SELECT url FROM $dbTable WHERE id = '%d'";
// echo $q;
    $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;
}
 
 
// Здесь добавляем
$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,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
header("Location: /adminka/doc/index.php?news_id=".$_GET['news_id'].""); exit();
      } else { 
         echo "<h2>Попытка добавить файл недопустимого формата</h2>";
   }
} else {
    echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
// Здесь выводим все записи из таблицы для построения списка
$news_id=mysql_real_escape_string($_GET['news_id']);
$query = 'SELECT `id`, `url` FROM `image` WHERE news_id="'.$news_id.'"';
 
$res = mysql_query($query);
 
if(!$res)  die ('Не удалось получить список записей!    ' . mysql_error());
?>
<table><tr>
<?php
$cnt=0;
if (mysql_num_rows($res) != 0)
{
   while ($row = mysql_fetch_array($res))
   {
 if($cnt%4==0 && $cnt!=0) echo '</tr><tr>';
?>
  <td>
    <img src="preview.php?src=<?=$row['url']?>"  alt="Добавлена <?=date("d.m.Y H:i:s", $row['time'])?>">
  </td>
  <td><a href='/adminka/doc/index.php?act=del&id=<?=$row['url']?>&news_id=<?$news_id?>'>Удалить</a></td>
<?php
$cnt++;
   }
}
?>
</tr></table>
<?php
if (($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     $id_img = (int)$_GET['id'];
delete($id_img, $db);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: /adminka/doc/index.php?news_id=".$_GET['news_id']."");
     exit();
}
?>
все загружается и записывается но единственное переход осуществляется по
/adminka/doc/index.php?news_id=
т.е не определяется вот это
".$_GET['news_id']."
почему подскажите пожайлуста
если здесь место POST написать GET то вообще ошибку выдает
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST" enctype="multipart/form-data">
подскажите пожайлуста)

Добавлено через 25 минут
Love_and_Peace, ОТВЕТТЕ НА ЭТО
смотрите
если написать вот так
PHP
1
2
$result = mysql_query("INSERT INTO image (id,url,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
header("Location: /adminka/doc/index.php?news_id=".$_POST['news_id'].""); exit();
тогда переводит правильно т.е по адресу
/adminka/doc/index.php?news_id=7 это нормально что через POST проходит или нет
и как сделать чтоб при удалении переводило так же
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
14.10.2011, 02:09
Цитата Сообщение от little_dita Посмотреть сообщение
это нормально что через POST проходит или нет
не совсем.
Сматри, при добавлении в таблице появляется новвое поле со своим id. И если написать в header
Цитата Сообщение от little_dita Посмотреть сообщение
news_id=".$_GET['news_id']."
, то скрипт конечно же не поймет куда ему переходить, потому что он пока не знает о созданном id.
Чтобы скрипт узнал о нем надо вывести id последней добавленной записи (новости) и передать в header
PHP
1
2
3
$result = mysql_query("INSERT INTO image (id,url,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
$new_insert_id = mysql_insert_id($result);
header("Location: /adminka/doc/index.php?news_id=$new_insert_id"); exit();
вот так должно сработать.

На счет удаления этот трюк, (да и любой другой) не пройдет, так как никаким путем нельзя перевести скрипт на страницу той новости, которой уже нет. Поэтому переводить надо на странцу списка новостей, как я понял эта страница - /adminka/doc/index.php
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
14.10.2011, 02:19  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
Чтобы скрипт узнал о нем надо вывести id последней добавленной записи (новости) и передать в header
sdelala
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
108
109
<script type='text/javascript'>
function del(id)
{
    if(confirm("Вы действительно хотите удалить запись?"))
        document.location.replace("/adminka/doc/index.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="Закачать новую фотографию">
<input type="hidden" name="news_id" value="<?php echo  $_REQUEST['news_id'] ?>">
<hr>
</form>
<?php
 
include "../config.php";
$db = 'image';
 
// Определяем массив GET
$act = (isset($_GET['act'])) ? htmlspecialchars($_GET['act']) : "";
// можно как тип string установить еще
// то же самое и для id только с типом (int)
 
function delete($id, $dbTable)
{
    $q = "SELECT url FROM $dbTable WHERE id = '%d'";
// echo $q;
    $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;
}
 
 
// Здесь добавляем
$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,news_id) VALUES ('$id','$url','".$_POST['news_id']."')");
$new_insert_id = mysql_insert_id($result);
header("Location: /adminka/doc/index.php?news_id=$new_insert_id"); exit();
      } else { 
         echo "<h2>Попытка добавить файл недопустимого формата</h2>";
   }
} else {
    echo "<h2>Ошибка закачки #{$data['error']}</h2>";      
}
}
// Здесь выводим все записи из таблицы для построения списка
$news_id=mysql_real_escape_string($_GET['news_id']);
$query = 'SELECT `id`, `url` FROM `image` WHERE news_id="'.$news_id.'"';
 
$res = mysql_query($query);
 
if(!$res)  die ('Не удалось получить список записей!    ' . mysql_error());
?>
<table><tr>
<?php
$cnt=0;
if (mysql_num_rows($res) != 0)
{
   while ($row = mysql_fetch_array($res))
   {
 if($cnt%4==0 && $cnt!=0) echo '</tr><tr>';
?>
  <td>
    <img src="preview.php?src=<?=$row['url']?>"  alt="Добавлена <?=date("d.m.Y H:i:s", $row['time'])?>">
  </td>
  <td><a href='javascript: del(<?= $row['id']; ?>)'>Удалить</a></td>
<?php
$cnt++;
   }
}
?>
</tr></table>
<?php
if (($act) && ($act == 'del'))
{
      // сюда подставляешь id текущей записи и название таблицы
     $id_img = (int)$_GET['id'];
delete($id_img, $db);
 
     // перекидываем/перзагружаем на нашу же страницу
     header("Location: /adminka/doc/index.php?news_id=".$_GET['news_id']."");
     exit();
}
?>
при загрузки переводит сюда adminka/doc/index.php?news_id=
вы вроде не поняли новости совсем отдельно создаются а к фоткам записывается их id в строку news_id в табличе image
я не понимаю зачем делать так чтоб выводился id последней добавленной новости?
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
14.10.2011, 02:39
подожди...
1. С новостями как я понимаю проблем нет, так?
2. url страницы, которой принадлежит представленный вами код, какой? в студию!
3. Попытаюсь вообразить вашу ситуацию ...
Имеется список новостей:
I. news_1
II. news_2
III. news_3
Теперь можно переходить по этим ссылкам на страницу добавления к ним фоток (тут можно также редактировать и удалять фотки), так? Остается не понятным вопрос, - новость как и где удаляется?
Ну ладно, перешли по ссылке, напр.
/adminka/doc/index.php?news_id=1
-- Добавляю фотку и переход должен быть сюда же... Тогда так попробуй
PHP
1
header("Location: " . $_SERVER['QUERY_STRING']); exit();
что это?
Цитата Сообщение от little_dita Посмотреть сообщение
<?=$_SERVER['SCRIPT_NAME']?>
и какое же имя у скрипта?
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
14.10.2011, 02:50  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
1. С новостями как я понимаю проблем нет, так?
нету

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
2. url страницы, которой принадлежит представленный вами код, какой? в студию!
../doc/index.php?news_id=".$news['id_news']."(эта ссылка рядом с каждой новостью т.е это ".$news['id_news']." ид новости передается в форму загрузки фотографий)

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
Теперь можно переходить по этим ссылкам на страницу добавления к ним фоток (тут можно также редактировать и удалять фотки), так? Остается не понятным вопрос, - новость как и где удаляется?
все так а вот ссылка на удаление новости отображается радом с новостями т.е не на этой странице

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
Ну ладно, перешли по ссылке, напр.
/adminka/doc/index.php?news_id=1
-- Добавляю фотку и переход должен быть сюда же... Тогда так попробуй
вставила перешло сюда
adminka/doc/index.php?news_id=

Цитата Сообщение от Love_and_Peace Посмотреть сообщение
что это?
вот это точно не помню(а если чесно даже не знаю сказали надо именно так написать
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
14.10.2011, 03:00
запутался ))
Следующий вариант перехода
PHP
1
header("Location: " basename(__FILE__)); exit();
Добавлено через 5 минут
воов... блин, ответ на поверхности.. Если форма в коде, - форма для добавления фоток, тогда header такой как ты уже писала, ведь мы передаем id новости по скрытому полю, так же и задумывалось ))
PHP
1
header("Location: /adminka/doc/index.php?news_id=".$_POST['news_id'].""); exit();
Добавлено через 57 секунд
для удаления попробуй такой же header
1
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
14.10.2011, 03:02  [ТС]
Love_and_Peace,
перешел на это
adminka/doc/basename(__FILE__)
a если делаю так
PHP
1
header("Location: /adminka/doc/index.php?news_id=".$_POST['news_id'].""); exit();
то переходит правильно на /adminka/doc/index.php?news_id=11
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
14.10.2011, 03:04
Цитата Сообщение от little_dita Посмотреть сообщение
то переходит правильно на /adminka/doc/index.php?news_id=11
это и есть правда, я просто недо понял
0
26 / 23 / 9
Регистрация: 12.08.2011
Сообщений: 576
14.10.2011, 03:05  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
воов... блин, ответ на поверхности.. Если форма в коде, - форма для добавления фоток, тогда header такой как ты уже писала, ведь мы передаем id новости по скрытому полю, так же и задумывалось ))
вот тыт то и конец
я так делала переходит на
adminka/doc/index.php?news_id=
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
14.10.2011, 03:06
Цитата Сообщение от little_dita Посмотреть сообщение
я так делала переходит на
adminka/doc/index.php?news_id=
ты же говоришь переходит нормально
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.10.2011, 03:06
Помогаю со студенческими работами здесь

Вывод из определенного ресурса
Добрый день у меня есть такое дерево ресурсов О компании -Факт 1(35) -Факт 2(40) -Факт 3(41) в блок див пытаюсь вывести ]...

Вывод определенного текста
Помогите сделать так, чтобы при выборе марки автомобиля и нажатии на кнопку, появлялся определенный текст для каждой марки. &lt;form...

Вывод определенного столбца из БД
Пользователь выбирает столбец, который нужно вывести. Значение заносится в $p $result = mysql_query(&quot;SELECT $p FROM...

Вывод определенного значения из файла
Ребят помогите написать вывод определенного значения из файла. Допустим в файле у меня такой html код &lt;div...

Вывод определенного слова из html
Подскажите вот я знаю как вывести отпределенную строку но не знаю как вывести в строке допустим Hello world как вывести только world без...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru