Меню

Php таблица с одним изображением

Вывод картинки в таблице

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Картинки в таблице
Идея в том , чтобы с рандомным интервалом рандомно менять картинки в таблице . Получится мигающая.

Картинки в таблице
А как вставить картинку в таблицу, с помощью какого тега? Добавлено через 31 минуту Я забыла.

Картинки в таблице
Добрый день! Срочно нужна помощь! Код написан, но нужно подправить. Для знающего человека тут.

картинки в таблице
Привет! Есть форма на ней таблица с синим фоном. в таблице в ячейках содержаться картинки как.

Добавлено через 24 минуты
вообщем ему не нравился полный путь, переместил папку к скрипту.

.png»/>

Ну или «/» не та, или мало.
Сообщение от smokehawker

* * * * echo ‘

‘;
* * * * * * * * echo ‘ ‘;
* * echo ‘ ‘;
* * echo ‘

‘ . $row[‘title15’] . ‘

‘;
* * echo ‘

‘;
* * * * echo ‘

‘;
* * * * * * * * echo ‘ ‘;
* * echo ‘ ‘;
* * echo ‘

‘ . $row[‘title16’] . ‘

‘;
* * echo ‘

‘;
* * * * echo ‘

‘;
* * * * * * * * echo ‘ ‘;
* * echo ‘ ‘;
* * echo ‘

‘ . $row[‘title17’] . ‘

‘;
* * echo ‘

‘;
.

Сообщение от smokehawker

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Сжатие картинки в таблице
Сколько лет встречаюсь с HTML и CSS не могу понять некоторые «тонкости». Вот есть таблица в ворд, я.

Расположение картинки в таблице
Здравствуйте. Помогите пожалуйста новичку. Не могу сдвинуть картинку в таблице вверх и саму таблицу.

Картинки-гипперссылки в таблице
Ребят, помогите чайнику. В общем без гиперссылок картинки прилегают друг к другу, но когда делаю.

Привязка картинки к ячейке в таблице
Здравствуйте! Никак не получается привязать картинку к таблице в pp. В word когда вставляешь.

Источник



PHP Создание таблиц MySQL

В этом уроке вы узнаете, как создавать таблицы в базе данных MySQL с помощью PHP.

Создание таблиц с помощью SQL

В предыдущем уроке мы узнали, как создать базу данных на сервере MySQL. Шаги по созданию таблицы аналогичны созданию баз данных. Разница в том, что вместо создания новой базы данных мы подключимся к существующей базе данных и создадим таблицу в этой базе данных. Для подключения к существующей базе данных мы можем передать дополнительную переменную «имя базы данных» при подключении к MySQL.

Теперь пришло время создать таблицу внутри базы данных, которые фактически будут хранить данные. Информация в таблице организована в строки и столбцы.

Новые таблицы добавляются в существующую базу данных с помощью оператора SQL CREATE TABLE .

За оператором CREATE TABLE следует имя создаваемой таблицы, за которым следует список имен и определений каждого столбца таблицы, разделенный запятыми.

Мы создадим таблицу с именем «persons» и столбцами: «id», «first_name», «last_name» и «email»:

После выбора базы данных в следующем примере создается таблица с именем «persons» и столбцами: «id», «first_name», «last_name» и «email». В first_name, last_name и email столбцы должны содержать значение (т.е. NOT NULL). Столбец id имеет целочисленное значение, которое имеет автоматическое приращение (AUTO_INCREMENT):

Пояснения к таблице:

Обратите внимание, что за каждым именем поля следует объявление типа данных — это объявление указывает, какой тип данных может содержать столбец, будь то целое число, строка, дата и т.д.

В таблице выше используются следующие типы данных:

  1. VARCHAR: содержит строку переменной длины, которая может содержать буквы, числа и специальные символы. Максимальный размер указан в скобках.
  2. INT: тип данных INTEGER принимает числовые значения с подразумеваемой шкалой нуля. Он хранит любое целое число от -2147483648 до 2147483647.

После типа данных вы можете указать другие необязательные атрибуты для каждого столбца:

  • NOT NULL — каждая строка должна содержать значение для этого столбца, нулевые значения не допускаются.
  • DEFAULT — установите значение по умолчанию, которое добавляется, когда не передается никакое другое значение.
  • UNSIGNED — используется для числовых типов, ограничивает хранимые данные положительными числами и нулем.
  • AUTO INCREMENT — MySQL автоматически увеличивает значение поля на 1 каждый раз, когда добавляется новая запись.
  • PRIMARY KEY — используется для однозначной идентификации строк в таблице. Столбец с настройкой PRIMARY KEY часто является идентификационным номером и часто используется с AUTO_INCREMENT.

Каждая таблица должна иметь столбец первичного ключа (в данном случае столбец «id»). Его значение должно быть уникальным для каждой записи в таблице.

Понимание значений NULL и NOT NULL

Если для столбца указано значение NULL, то в базу данных можно добавить строку, если этому столбцу не присвоено значение. И наоборот, если столбец определен как NOT NULL, то перед добавлением строки в таблицу ему должно быть присвоено значение.

Читайте также:  Таблица налогов с зарплаты усн

Первичный ключ PRIMARY KEY

Первичный ключ — это столбец, используемый для идентификации отдельных записей в таблице. Значение столбца первичного ключа должно быть уникальным в контексте таблицы, в которой он существует, или, если несколько столбцов объединены, чтобы составить первичный ключ, комбинация значений ключа должна быть уникальной для каждой строки.

Первичный ключ определяется с помощью оператора PRIMARY KEY во время создания таблицы. Если используется несколько столбцов, они разделяются запятыми:

Автоматическое приращение AUTO_INCREMENT

AUTO_INCREMENT — одно из самых простых, но наиболее полезных определений столбцов в языке SQL. По сути, когда столбец определяется с помощью AUTO_INCREMENT, значение столбца автоматически увеличивается каждый раз, когда в таблицу добавляется новая строка. Это особенно полезно при использовании столбца в качестве первичного ключа. Используя AUTO_INCREMENT, нет необходимости писать операторы SQL для вычисления нового уникального идентификатора для каждой строки. Все это обрабатывается сервером MySQL при добавлении строки.

При использовании AUTO_INCREMENT необходимо соблюдать два правила. Во-первых, статус AUTO_INCREMENT может быть присвоен только одному столбцу в таблице. Во-вторых, столбец AUTO_INCREMENT должен быть проиндексирован (например, объявлен как первичный ключ).

Можно переопределить значение AUTO_INCREMENT столбца, просто указав значение при выполнении оператора INSERT. Пока указанное значение является уникальным, предоставленное значение будет использоваться в новой строке, а последующие приращения начнутся с вновь вставленного значения.

MySQL может быть запрошен для получения самого последнего значения приращения, используя функцию last_insert_id() следующим образом:

Создание таблиц БД в трех различных версиях

Теперь, когда мы понимаем SQL-запрос, давайте воспользуемся PHP для его выполнения.

Ниже описано создание таблиц в трех различных версиях: с использованием синтаксиса объектно-ориентированной процедуры MySQLi, процедурный MySQLi и процедуры PDO.

Источник

Все для создания своего сайта

Часто бывает нужно вывести значения из базы данных в виде таблицы. Например, все позиции вашего прайса в магазине, цены, наименование товара и так далее. Да и много чего. Потому что это нужно практически ежедневно. Сейчас не будем говорить о том, что для профессионалов это уже старая избитая тема. Это статья только для начинающих веб программистов.

Так как же сделать таблицу на странице сайта используя php?

Таблицу, обычно выводят, используя достаточно известную функцию while или for. Профессионалы используют уже готовые скрипты или функции, где просто меняют несколько переменных и файлы, отвечающие за дизайн. Для начинающих скажу, чтобы понять как все работает мы рассмотрим небольшой скрипт чуть ниже. А сейчас немного теории как все работает.

Вначале подключаемся к базе данных, выводим файл конфигурации. Затем делаем запрос к базе, записывая его в переменную, которая содержит значение “SELECT * FROM `users` ORDER by `id` DESC”;.
Атрибут (*) обозначает что мы выбираем все значения из базы users.

Атрибут ORDER by `id` DESC означает что мы сортируем всех пользователей по убыванию id пользователей. То есть вверху будут максимальное значение id. А если в конце указать вместо атрибута desc указать asc. То сортировка по id будет в противоположную сторону, то есть по возрастанию и вверху будет самое меньшее значение по id.

Полученный запрос обрабатываем функцией mysql_fetch_array. Она достаточно универсальная потому что возвращает ассоциативный массив с двумя индексами с численными индексами и индексами по значению таблиц.
Вместо этогй функции многие используют запрос mysql_fetch_assoc который возвращает массив только с индексами по значению таблиц в базе данных.

Далее все помещаем в один массив $mass и выводим все значения массива в цикле while по индексу значения таблиц. А поскольку мы выводим все значения в виде таблицы пишем функцию вывода заначений echo ‘(начало строки)(ячейка, квадрат)$mass[‘id’](переменная по индексу значения таблицы id)(закрывающий тег ячейки)(следующая ячейка, квадрат)$mass[‘mail’](закрывающий тег ячейки)… (закрывающий тег строки).

После закрывающей фигурной скобки, который показывает закрытие цикла while выводим закрывающий тег таблицы .

А вот, и сам пример скрипта

А здесь можно скачать и посмотреть наглядно как все работает на странице. Следует иметь в виду путь к файлу конфигурации в вашем варианте может быть другим.Это напрямую зависит куда вы поместите сам файл конфигурации для всего сайта. Для наглядности файл конфигурации вы найдете в zip-архиве.

Сегодня мы рассмотрели, как работает скрипт для вывода таблицы на php. Скажу сразу, что это всего лишь пример, чтобы иметь представление как все работает. Мы не стали рассматривать как сделать дизайн таблицы, прописать красивые шрифты, изменить заголовок таблицы. Думаю, если вы изучили или изучите в будущем CSS, вам абсолютно не трудно будет это сделать самому.

Читайте также:  Магния сульфат таблица менделеева

Источник

PHP работа с изображениями

PHP работа с изображениями

Здравствуйте, уважаемые читатели блога LifeExample, прошло много времени с публикации предыдущей статьи и вот у меня появилось время пополнить коллекцию моих публикаций новым уникальным и полезным контентом. В этом посте я хочу привести пример работы с изображениями на php. Данная статья навеяна мне задачами по разработке интернет магазина на Moguta.CMS.

PHP работа с изображениями описана во многих источниках с подробным рассмотрением допустимых методов, но мне не встретилось ни одно материала о их практическом применении.

Научившись применять основные из функций php библиотеки GD (Graphics Draw) я нашел ей применение в решении одной задачи, суть которой сводится к выравниванию масштаба всех изображений в наборе.

Дано: набор изображений для товаров интернет магазина.

исходный набор картинок для php работы с изображениями

Если внимательно посмотреть на приведенные изображения, то мы увидим, что по габаритам они отличаются не только размерами холстов, на которых расположена продукция, но и сами товары имеют разные размеры.

Задача: нормализовать все картинки и получить из выше приведенного набора следующий результат.

результат php работы с картинками

Получившиеся изображения товаров должны быть, все одного разрешения и одного масштаба.

Решение задачи ( PHP работа с изображениями )

На первый взгляд мы имеем довольно хитрую задача, требующую особого алгоритма в ее решении, но зная основы в PHP для работы с изображениями и четкое представление того, что должно получиться, задача становится менее проблемной.

Давайте определимся, какую последовательность действий нам нудно выполнить, чтобы достичь желаемого результата, и выровнять все имеющиеся изображения товаров в магазине.

  1. Вычислить размеры холста изображения;
  2. Вычислить ширину и высоту товара на изображении;
  3. Вычислить пропорции для сжатия холста вместе с изображением товара;
  4. Если товар на холсте меньше эталонного, то не сжимать его;
  5. Создать итоговый холст с нужными размерами и поместить в его центр получившуюся при сжатии картинку.

Выполнив каждый пункт текущего алгоритма, на выходе мы получим нормализованные картинки одинакового размера и масштаба.

Как вычислить размеры внутреннего рисунка на холсте

Самой сложной из подзадач является, поиск габаритов изображения:

схема координат поиска размеров изображения

На приведенном рисунке

  • P0 – точка начала области изображения товара
  • H1- высота товара
  • W1- ширина товара
  • H2- расстояние от верхней границы холста до точки P0
  • W2- расстояние от левой границы холста до точки P0
  • H3- высота всего изображения картинки товара
  • W3- ширина всего изображения картинки товара

Чтобы определить все неизвестные нам параметры, мы воспользуемся как встроенными средствами PHP по работе с изображениями, так и собственным «велосипедом».

Найти H3 и W3 можно php функцией getimagesize() , но как бы нам вычислить H1 и W1? Что если мы вернемся к статье по распознаванию капчи? Возьмем из этой статьи алгоритм преобразования изображения в бинарную матрицу.

Бинарная матрица – это представления изображения в виде единиц и нулей, все пикселы изображения отличающиеся от фонового цвета получат значение = 0 , а пикселы составляющие само изображение будут равны 1, в итоге мы получим такую матрицу:

матричное представление изображения

Теперь мы можем запросто вычислить интервалы, в которых находятся 1-цы, о том как это сделать читайте в статье по распознаванию капчи.

После того как нам станут известны все необходимые параметры, можно будет выполнять наш алгоритм нормализации картинок.

В готовом виде PHP скрипт будет выглядеть так:

/**
* Класс нормальзующий картинку по заданному разрешению
*/
class imageWorker <

public $baseWidth = 150 ; // длина эталонного изображения (именно товара внутри картинки)
public $baseHeight = 119 ; // высота эталонного изображения (именно товара внутри картинки)
public $outImageWidth = 600 ; // длина изображения после обработки
public $outImageHeight = 400 ; // высота изображения после обработки
public $im = null ; // дескриптор картитнки
public $binaryMartix = null ; // матричное представление картитнки
public $saveBinaryMartixTofile = false ; // сохранять матричное представление картитнки в файл
public $dir = ‘image/source/’ ; // расположения набора картинок
public $saveMartix = false ; // сохранять матричное представление картитнок
public $extensions = array ( «» , «gif» , «jpeg» , «png» ) ; // допустимые картинки
public $curImageWidth = 1 ; // ширина обрабатываемого изображения
public $curImageHeight = 1 ; // высота обрабатываемого изображения
public $imgFunctionProcess = «imagecreatefromjpeg» ; // функция для работы с изображением
public $curExt = «» ; // расширение картинки
public $curImageName = «» ; // расширение картинки
public $dirUpload = ‘image/result/’ ; // папка для выгрузки (должна быть создана)

function __construct ( $path , $w , $h ) <
$this -> outImageWidth = $w ;
$this -> outImageHeight = $h ;
$this -> curImageName = $path ;

list ( $this -> curImageWidth , $this -> curImageHeight , $type ) = getimagesize ( $this -> dir . $path ) ; // Получаем размеры и тип изображения (число)
$ext = $this -> extensions [ $type ] ;
if ( $ext ) <
$this -> imgFunctionProcess = ‘imagecreatefrom’ . $ext ; // Получаем название функции, соответствующую типу, для создания изображения
$func = $this -> imgFunctionProcess ;
$this -> curExt = $ext ;
$this -> im = $func ( $this -> dir . $path ) ; // Создаём дескриптор для работы с исходным изображением
if ( ! $this -> im ) <
return false ;
>
> else <
echo ‘Ошибка: Неизвестный формат изображения!’ ;
return false ;
>

Читайте также:  Cos 135 таблица брадиса

$this -> binaryMartix = $this -> imageToMatrix ( $this -> im , false ) ;

if ( $this -> saveBinaryMartixTofile ) <
$this -> printMatrix ( $this -> binaryMartix ) ;
>

$res = $this -> explodeMatrix ( $this -> binaryMartix ) ;
$width = $res [ ‘resultInterval’ ] ;
$cropX = $res [ ‘startInterval’ ] ;

$this -> binaryMartix = $this -> imageToMatrix ( $this -> im , true ) ;
$res = $this -> explodeMatrix ( $this -> binaryMartix ) ;
$height = $res [ ‘resultInterval’ ] ;
$cropY = $res [ ‘startInterval’ ] ;

$result = «Размеры изображения (» . $path . «)
width=» . $this -> curImageWidth . «px;
height=» . $this -> curImageHeight . «px;» ;
$result .= «
Размеры изделия внутри изображения
width=» . $width . «px;
height=» . $height . «px;» ;
$result .= «
Коэффициенты сжатия
width=» . $this -> baseWidth / $width . «px;
height=» . $this -> baseHeight / $height . «px;» ;
$result .= «
Отрезать картинку с точки
cropX=» . $cropX . »
cropY=» . $cropY . » » ;

//$this->crop(«2.png», $cropY, $cropX, $width, $height); // Вызываем функцию
//$this->reSizeImage($name, $ext, $tmp, 0.3);
echo $result ;
if ( $this -> baseHeight $height ) <
$this -> resizeImage ( $this -> baseHeight / $height ) ;
> else <
$this -> resizeImage ( 1 ) ;
> ;

imagedestroy ( $this -> im ) ;
>

function explodeMatrix ( $binaryMartix ) <
$temp = array ( ) ;

// сложение столбцов для выявления интервалов
for ( $i = 0 ; $i count ( $binaryMartix ) ; $i ++ ) <
$sum = 0 ;
for ( $j = 0 ; $j count ( $binaryMartix [ 0 ] ) ; $j ++ ) <
$sum += $binaryMartix [ $i ] [ $j ] ;
>
$temp [ ] = $sum ? 1 : 0 ;
>

// вычисление интервалов по полученной строке
$start = false ;
$countPart = 0 ;
$arrayInterval = array ( ) ;
foreach ( $temp as $k => $v ) <

//отсеиваем помехи (мелкие интервалы), Большая картинка, всяко больше 20px.

$resultInterval = 1 ;
$startInterval = 1 ; // начало интервала
foreach ( $arrayInterval as $key => $interval ) <
if ( ( $interval [ ‘end’ ] — $interval [ ‘start’ ] ) > 20 ) <
$resultInterval = $interval [ ‘end’ ] — $interval [ ‘start’ ] ;
$startInterval = $interval [ ‘start’ ] ;
>
>
return
array (
‘resultInterval’ => $resultInterval ,
‘startInterval’ => $startInterval
) ;
>

/**
* Конвертация рисунка в бинарную матрицу
* Все пиксели отличные от фона получают значение 1
* @param imagecreatefrompng $im — картинка в формате PNG
* @param bool $rotate — горизонтальная или вертикальная матрица
*/
function imageToMatrix ( $im , $rotate = false ) <
$height = imagesy ( $im ) ;
$width = imagesx ( $im ) ;

if ( $rotate ) <
$height = imagesx ( $im ) ;
$width = imagesy ( $im ) ;
>

$background = 0 ;
for ( $i = 0 ; $i $height ; $i ++ )
for ( $j = 0 ; $j $width ; $j ++ ) <

if ( $rotate ) <
$rgb = imagecolorat ( $im , $i , $j ) ;
> else <
$rgb = imagecolorat ( $im , $j , $i ) ;
>

//получаем индексы цвета RGB
list ( $r , $g , $b ) = array_values ( imageColorsForIndex ( $im , $rgb ) ) ;

//вычисляем индекс красного, для фона изображения
if ( $i == 0 && $j == 0 ) <
$background = $r ;
>
//echo «red=».$background;
$sensitivity = 15 ;
// если цвет пикселя не равен фоновому заполняем матрицу единицей
$binary [ $i ] [ $j ] = ( $r > $background — $sensitivity ) ? 0 : 1 ;
>
return $binary ;
>

/**
* Выводит матрицу на экран
* @param type $binaryMartix
*/
function printMatrix ( $binaryMartix ) <
$return = » ;
for ( $i = 0 ; $i count ( $binaryMartix ) ; $i ++ ) <
$return .= » \n » ;
for ( $j = 0 ; $j count ( $binaryMartix [ 0 ] ) ; $j ++ ) <
$return .= $binaryMartix [ $i ] [ $j ] . » » ;
>
>
file_put_contents ( $this -> dirUpload . $this -> curImageName . «.txt» , $return ) ;
>

/**
* Функция для ресайза картинки
* @paramint $koef коэффициент сжатия изображения
* @return void
*/
public function resizeImage ( $koef ) <
// получение новых размеров
$newWidth = $koef * $this -> curImageWidth ;
$newHeight = $koef * $this -> curImageHeight ;
// ресэмплирование
$image_p = imagecreatetruecolor ( $this -> outImageWidth , $this -> outImageHeight ) ;
//делаем фон изображения белым, иначе в png при прозрачных рисунках фон черный
$color = imagecolorallocate ( $image_p , 255 , 255 , 255 ) ;
imagefill ( $image_p , 0 , 0 , $color ) ;
imagecopyresampled (
$image_p , $this -> im , ( $this -> outImageWidth — $newWidth ) / 2 , ( $this -> outImageHeight — $newHeight ) / 2 , 0 , 0 , $newWidth , $newHeight , $this -> curImageWidth , $this -> curImageHeight
) ;
$func = «image» . $this -> curExt ;
$func ( $image_p , $this -> dirUpload . $this -> curImageName ) ;
imagedestroy ( $image_p ) ;
>

> // конец тела класса

/**
* Массив имен файлов
*/
$imagesName = array (
‘kameya_medium_1005858593.jpg’ ,
‘kameya_medium_1005862834.jpg’ ,
‘km0210-3_small.jpg’ ,
‘sd0201966_small.jpg’ ,
) ;

/**
* Перебор массива имен файлов и нормализация изображений
*/
foreach ( $imagesName as $image ) <
if ( file_exists ( ‘image/source/’ . $image ) ) <
// каждую картинку нормальзуем и приведем к разрешению 200×200 пикселей
$encrypt = new imageWorker ( $image , 200 , 200 ) ;
> else <
continue ;
>
>

Данный скрипт PHP работает с изображениями из папки image/source/ и по результату своего выполнения складывает нормализованные картинки в папку image/result/ .

Выполнив поставленную задачу и на практике познакомившись с тем, как происходит в php работа с изображениями, мы получили опыт на основе, которого сможем приводить изображения товаров каталога в приятный вид.

Источник

Adblock
detector