|
|
|
| Здравствуйте Уважаемое сообщество.
Спасибо вам за поддержку, дело было оказывается в маске $matches[1] и замене в ней.
У меня есть таблица pm_material_content_into3.sql в ней 3 строки, в поле Field 3 содержится html код, из этого кода я вырезаю все рисунки.
для этого использую скрипт
<?php
header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM material_content_into3";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat))
{
preg_match_all('#src="([^"]+)"#i', $catagory['Field 3'], $matches); // показывает ссылку для изображения
$matches[1] = str_replace('/lessons', 'http://www.photoshop-master.ru/lessons', $matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/
$matches[1] = str_replace('tools', 'http://www.photoshop-master.ru/tools', $matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/
foreach($matches[1] as $link){
$newField_3 = $link;
echo $link."<br />";
}
// $newField_3 = $link;
// Запрос для обновления
$query = "UPDATE material_content_into3
SET `Field 3` = '{$newField_3}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
Но здесь в ячейке таблицы вижу только 1 рисунок, хотя в браузере при выполнении скрипта видно все рисунки.
Как подкорректировать код чтоб все рисунки можно было увидеть в ячейке таблицы? | |
|
|
|
|
|
|
|
для: pautina
(09.01.2012 в 14:33)
| | Ни посмотрите предидущее сообщение, почему в ячейке таблицы я вижу array, как сделать чтобы в содержимом ячейки были рисунки. | |
|
|
|
|
|
|
|
для: pautina
(11.01.2012 в 06:24)
| | "рисунки" - это ссылки на изображения или сами изображения? | |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 09:46)
| | Это ссылки на изображение?
У меня скрипт вырезает из участка html кода ссылки на изображения, адреса ссылок видно в браузере, но не видно в ячейке таблицы.
Нужно в ячейке таблицы увидеть ссылки на рисунки, Сейчас я в ячейке таблицы вижу надпись Array
<?php
header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM material_content_into3";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat))
{
preg_match_all('#src="([^"]+)"#i', $catagory['Field 3'], $matches); // показывает ссылку для изображения
$matches[1] = str_replace('/lessons', 'http://www.photoshop-master.ru/lessons', $matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/
$matches[1] = str_replace('tools', 'http://www.photoshop-master.ru/tools', $matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/
foreach($matches[1] as $link){
$newField_3 = $link;
echo $link."<br />";
}
// $newField_3 = $link;
// Запрос для обновления
$query = "UPDATE material_content_into3
SET `Field 3` = '{$newField_3}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
В браузере видно следующее
http://www.photoshop-master.ru/lessons/les1689/01.jpg
http://www.photoshop-master.ru/tools/Elliptical Marquee.jpg
http://www.photoshop-master.ru/lessons/les1689/02.jpg
http://www.photoshop-master.ru/lessons/les1689/03.jpg
http://www.photoshop-master.ru/lessons/les1689/04.jpg
http://www.photoshop-master.ru/lessons/les1689/05.jpg
http://www.photoshop-master.ru/lessons/les1689/06.jpg
http://www.photoshop-master.ru/lessons/les1689/07.jpg
http://www.photoshop-master.ru/lessons/les1689/08.jpg
...
|
| |
|
|
|
|
|
|
|
для: pautina
(11.01.2012 в 10:18)
| | А что у Вас до этого скрипта в поле Field_3 хранится? можно пример одной записи? | |
|
|
|
|
 88.3 Кб |
|
|
для: Lotanaen
(11.01.2012 в 11:27)
| | Прикрепил файл sql который формирует таблицу. Посмотрите. | |
|
|
|
|
|
|
|
для: pautina
(11.01.2012 в 13:06)
| | т.е. Вы из текста хотите выбрать ссылки и перезаписать это поле? я думаю, что для сохранения ссылок лучше бы отдельную таблицу создать | |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 13:20)
| | Можно ли сохранить все ссылки в этом поле.
Если нет давайте отдельную таблицу делать. | |
|
|
|
|
|
|
|
для: pautina
(11.01.2012 в 13:33)
| | можно и в этом поле, но лучше в новом поле - например записывая ссылки через разделитель ";" либо какой другой. А что Вы потом с этими ссылками будете делать? Какие выборки(запросы) по этому полю планируется делать? | |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 13:44)
| | Давайте делать в этом поле, чтоб на выходе без разделителей в каждой строке была ссылка на рисунок.
После эти рисунки нужно будет копировать в определённую папку по своему пути, путь уникален для каждой ячейки. | |
|
|
|
|
|
|
|
для: pautina
(11.01.2012 в 14:05)
| | попробуйте таким образом:
<?php
header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM material_content_into3";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat))
{
preg_match_all('#src="([^"]+)"#i', $catagory['Field_3'], $matches); // показывает ссылку для изображения
$matches[1] = str_replace('/lessons', 'http://www.photoshop-master.ru/lessons', $matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/
$matches[1] = str_replace('tools', 'http://www.photoshop-master.ru/tools', $matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/
$newField_3 = array();
if (sizeof($matches[1]))
foreach($matches[1] as $link){
$newField_3[] = $link;
echo $link."<br />";
}
// $newField_3 = $link;
// Запрос для обновления
if (sizeof($newField_3)) {
$query = "UPDATE material_content_into3
SET `Field 3` = '".implode(";",$newField_3)."'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Запрос выполнен успешно';
}
else
echo "Not data in newField_3";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 15:50)
| | Выходит сообщение Not data in newField_3Not data in newField_3Not data in newField_3 | |
|
|
|
|
|
|
|
для: pautina
(11.01.2012 в 16:40)
| | да, там неверно я указал поле $catagory['Field_3'] - подчеркивание уберите | |
|
|
|
|
|
|
|
для: Lotanaen
(11.01.2012 в 16:54)
| | Скажите а как сделать переход строки
SET `Field 3` = '".implode(";",$newField_3)."'
|
Чтобы каждый рисунок был на на новой строке. | |
|
|
|
|
|
|
|
для: pautina
(11.01.2012 в 18:46)
| | А для чего это Вам? Это же все равно в БД запись.
А для вывода в окно браузера можно как вариант заменить точку с запятой на тэг <br> | |
|
|
|
|
|
|
|
для: Lotanaen
(12.01.2012 в 09:30)
| | Теперь мне нужно будет копировать адреса рисунков из ячейки таблицы в папку по определённому пути.
Для пути нужно правильно прописать переменную регулярными выражениями
для 1 ячейки
<img height="340" src="/lessons/les1689/03.jpg" width="450" />
для 2-ой
<img height="547" src="/lessons/les1677/1.jpg" width="450" />
для 3-ей
<img height="623" src="/lessons/les1661/1.jpg" width="450" />
|
пути для них соответственно должны быть
$path_1 = images/lessons/les1689/
$path_2 = images//lessons/les1677/
$path_3 = images/lessons/les1661/
...
|
Ни скажете как прописать путь? | |
|
|
|