PHP: вопросы и ответы

Druid

Старожил
Кекс":3vr0sc3n сказал(а):
Не разобрался с первого раза, но всё равно, большое спасибо, буду разбираться :)

Добавлено спустя 44 минуты 8 секунд:
Появилась проблема. Довольно долго над ней мучился, но так и не нашёл решения:
В общем есть таблице (которая в БД) два поля: file, file_type.
Вот кусок кода:
Код:
require('connect_db.php');
$sql_file = "SELECT ";
$sql_file.= "file_type, file FROM ".$tablename;
$sql_file.= " WHERE id = '".$_GET['id']."'";
$result=mysql_query($sql_file, $link);
$data=mysql_result($result, 0, 'file');
$type=mysql_result($result, 0, 'file_type');
$header="Content-type: ".$type;
header($header);
echo $data;
В данном случае присутствует файл connect_db.php, где содержится скрипт подключения к БД ($link), имя таблицы ($tablename) и выбор нужной БД.
По задумке, скрипт выбирает из БД тип файла и сам заранее загруженный файл из полей с идентификатором (id). Затем заносится в переменную $header тип файла, а в переменную $data сам файл (в моём случае изображение).
Затем в HTTP-заголовок отправляется тип файла
Код:
header($header);
, после чего должно выводится само изображение
Код:
echo $data;
Тем не менее на экране появляется лишь адрес этой картинки (localhost/show.php?id=1) в виде изображения.
Никак не пойму, в чём может быть проблема.
 

Кекс

Старожил
Druid":1dcavx40 сказал(а):
Не разобрался с первого раза, но всё равно, большое спасибо, буду разбираться :-)
Вот чуть подробнее, с примером из моего фотокросса

Код:
$small = imagecreatetruecolor($newwidth, $newheight); 
imagecopyresampled($small, $original, 0, 0, 0, 0, $newwidth, $newheight, $size[0], $size[1]);
Сначала создается сама уменьшенная картинка $small. Ее размеры — $newwidth, $newheight. Именно переменными, потому что высотой-шириной уменьшенной картинки проще манипулировать и делать, например, так, чтобы картинки разных пропорций при уменьшении были одной ширины или одной высоты. У меня все тумбы на главной — одной ширины, а превьюшки на странице самой фотки — всегда одной высоты.

А потом в нее уже записывайтся результат ресайза.

$small, $original — указываем функции, что мелкая картинка будет делаться из большой, которая называется $original. А вот саму переменную $original можно брать откуда угодно, с существующего файла, или загружаемого.

0, 0, 0, 0 — оставляй нулями, если уменьшенная картинка должна полностью соответствовать исходной. Разные циферки — разные координаты для обрезки.

$size[0], $size[1] — размеры исходника. Соответственно, ширина и высота, добытые с помощью функции getimagesize, примененной к исходнику.
 

TAPAKAH

Новичок
Вот такая задачка:
Есть страница, на которой по результатам запроса из БД формируется таблица. В каждую строку таблицы для выбора записи добавляется "checkbox":
print("<input type=\"checkbox\" name=\"C".$i."\" value=\"ON\">");
где значение $i является индексом соответствующей записи в БД и имена "checkbox" типа С1 и т.д. генерируются нормально.
значения "checkbox" передаются в обработчик.

Вопрос звучит так:
Как в обработчике сгенерировать имена этих самых "С".$i - переменных???
 

MeteO

Бывалый
TAPAKAH":10p74so5 сказал(а):
Вот такая задачка: Есть страница, на которой по результатам запроса из БД формируется таблица. В каждую строку таблицы для выбора записи добавляется "checkbox": print("<input type=\"checkbox\" name=\"C".$i."\" value=\"ON\">"); где значение $i является индексом соответствующей записи в БД и имена "checkbox" типа С1 и т.д. генерируются нормально. значения "checkbox" передаются в обработчик. Вопрос звучит так: Как в обработчике сгенерировать имена этих самых "С".$i - переменных???

Код:
...
echo '<input type="checkbox" name="c[]" value="' . $i . '">';
...

Код:
$boxes = isset($_REQUEST['c']) && is_array($_REQUEST['c']) ? $_REQUEST['c'] : null;
...
foreach ($boxes AS $id) {
...
}
 

Кекс

Старожил
Если есть массив, отдельные вещи из него можно прочитать, соответственно записать.
Или там все круче, чем можно понять без поллллллитра?
 

Caianic

Старожил
Приступил вот на днях к изучению PHP :)
Имеется простой скрипт с checkbox'ами. Нужно сделать так:
Если пользователь не выбирает ничего, то выдается СВОЕ сообщение об ошибке, но что бы я не делал, выдается некрасивое и длинное сообщение интерпретатора или как там правильно называется :? вместо моего...
Скрипт в аттаче :)
Посмотреть вложение checkbox.rar
 

MeteO

Бывалый
Например вот так, если что непонятно, пишите, поясню.
 

Caianic

Старожил
Спасибо за проделанную работу! :) Скрипт был совсем чуть-чуть не точен, была одна не заданная переменная, я присвоил ей пустое значение и все заработало как надо.
Я привык гуглить то, что не понятно=) Но если все-таки не найду чего-нибудь непоянтное и гугл не поможет, обязательно спрошу. Ещё, как мне показалось, скрипт стал работать на порядок шустрее.
У меня ещё есть недоделанный скрипт, по выпадающим спискам, но я его пока не буду выкладывать, ещё голову над ним поломаю...это полезно :)
 
Верх