Ru-Board.club
← Вернуться в раздел «Web-программирование»

» MySql/PHP: общие вопросы

Автор: werdikt
Дата сообщения: 02.06.2008 14:00
Так я ж русский)))) и кто такой альтруист??? честно, не знаю )))
Автор: GRUZ222
Дата сообщения: 22.06.2008 15:36
Проблемка с выводом изображения из бд вот пример кода:

<?
require 'connect.php';
$query="SELECT * FROM table";
$result=mysql_query($query);

$data=array();

while ($row = mysql_fetch_assoc($result))
$data[$row['id']]=$row;
?>
<?
header("Content-type: image/gif");
echo $data[1]['img']
?>

Изображение выводиться в виде символов, по идее эта строка должна была мне помоч
...
header("Content-type: image/gif");
...
но браузер по прежнему выводит символы и ошибку:

Warning: Cannot modify header information - headers already sent by...

в чём же проблема??
Автор: Brodyaga
Дата сообщения: 22.06.2008 15:40
На кой, простите, хрен, делать так:

Код:
?>
<?
Автор: GRUZ222
Дата сообщения: 22.06.2008 16:04
Так как я новичёк в этом деле, конечно могут быть ошибки, именно поэтому я здесь и задал этот вопрос, так как хотел получить помощь от знающих людей. Именно для этого и существует форум! И вместо того, чтобы кричать какой я "идиот", можно было просто указать на ошибки и всё... Хотя я так и не пойму, что здесь идиотского и о каком пробеле идёт речь? Был бы очень благодарен, если бы кто-то показал, что именно не так...
Автор: Ternik
Дата сообщения: 22.06.2008 16:16
GRUZ222
все довольно элементарно. Ты пишешь в файле, а в файле каждый символ это - символ. Ну вот собственно когда мы ставим символ новой строки (нажимаем энтер), в файле появляется символ, который говорит интерпретатору начать вывод. А заголовки после вывода, не печатаются. Проблемы нет на самом деле, ну ты пойми, бывают и плохие дни в жизни, может человек просто устал... но все же помог. Пусть и грубовато.
Автор: Brodyaga
Дата сообщения: 22.06.2008 16:27
GRUZ222
Я не говорил, что автор кода идиот. Я сказал, что такая запись отвратительна, и в ней собственно и кроется ошибка. Советую читать все так, как написано, а не так, как хочется подразумевать.
А суть ошибки Ternik уже разжевал.
Автор: GRUZ222
Дата сообщения: 22.06.2008 16:51
Ternik
Я поудалял все лишние пробелы и энтеры заключил код в одинарные теги<?...?> и всё равно пишет ошибку, не могли бы вы пожалуйста на примере моего кода показать где именно должен находиться этот проклятый header и где же всётаки этот пробел, из-за которого заголовки не выводятся!!!

Добавлено:
<?php
$db_host = "localhost";
$db_uname = "name";
$db_pass = "pass";
$db_name = "dbname";
$error_sql = "Ошибка в составлении запроса.";
$error_db = "Ошибка подключения к БД.";
$msg_error_tabl = "Произошла ошибка в выборе таблицы.";

@mysql_connect($db_host, $db_uname, $db_pass) or die($error_sql);
@mysql_select_db($db_name) or die($error_db);

$imgResult = mysql_query("SELECT * FROM images WHERE id=1");
$image = mysql_result($imgResult, 0, "images");
header("Content-type: image/gif");
echo $image;
?>

Вот нашел другой код, картина таже самая, хотя есть люди котрые утверждают, что он работает!! Вы хотите сказать, что и здесь ошибка? Я уже начинаю думать может это у меня Денвер "ругается"...
Автор: Cheery
Дата сообщения: 22.06.2008 18:53
GRUZ222

Цитата:
Warning: Cannot modify header information - headers already sent by...

полностью, плиз.. не нужно приводить часть предупреждения


Цитата:
Вы хотите сказать, что и здесь ошибка?

пробелы убрать перед <?php
Автор: GRUZ222
Дата сообщения: 22.06.2008 20:26
Cheery
Спасибо огромное!!! заработало! Только есть одно "но", я даже и не догадывался, что картинку прийдёться вызывать таким методом <img src="img.php">, так как внутри <body> не работает и приходиться код пихать в отдельный файл!!! Я то думал, что можно будет выводить потом как обычную переменную в начале документа запрос а потом уже где удобно выводить - echo $image;. Или всё таки есть способ?
Автор: Cheery
Дата сообщения: 22.06.2008 20:28
GRUZ222

Цитата:
Или всё таки есть способ?

нет.. один запрос в http - один content-type

поэтому и говорят - не нужно сохранять картинки в базу
Автор: GRUZ222
Дата сообщения: 22.06.2008 20:55
Я понял) всем большое спасибо, вы действительно мне помогли!
Автор: uasash
Дата сообщения: 27.06.2008 10:51
где указать в mysql 5 количество сесий для одного пользователя
Автор: zerkms
Дата сообщения: 27.06.2008 13:06

Цитата:
In MySQL 5.0, you can limit the following server resources for individual accounts:

*

The number of queries that an account can issue per hour
*

The number of updates that an account can issue per hour
*

The number of times an account can connect to the server per hour


(c) http://dev.mysql.com/doc/refman/5.0/en/user-resources.html
Автор: kkRiz
Дата сообщения: 27.06.2008 16:09

Цитата:
поэтому и говорят - не нужно сохранять картинки в базу

Картинки можно прекрасно вытаскивать в ходе генерации страницы и рассовывать в base64 закодированную data. Это чаще всего не оправдано, и всё-же бывает полезно.

Ну, а в самой идеологии хранения изображений в базе, нет совершенно ничего плохого.
Автор: Cheery
Дата сообщения: 27.06.2008 17:48
kkRiz

Цитата:
Ну, а в самой идеологии хранения изображений в базе, нет совершенно ничего плохого.

кроме, опять же, лишней и ненужной нагрузки
Автор: kkRiz
Дата сообщения: 27.06.2008 22:36

Цитата:
кроме, опять же, лишней и ненужной нагрузки

В том случае если таскать их оттуда при каждом запросе, что естественно жутко.

Хотя, у меня есть пример базы с 9,8 миллионами записей к которым содержится около 50 тысяч изображений, и ничего - летает вполне себе. (а клиенты при этом сосут данные исключительно через коннект к БД без потребности в поднятии ещё и веб\фтп сервера)
Автор: Cheery
Дата сообщения: 28.06.2008 00:24
kkRiz

Цитата:
Хотя, у меня есть пример базы с 9,8 миллионами записей к которым содержится около 50 тысяч изображений, и ничего - летает вполне себе.

зависит от числа запросов.. опять же - по данному вопросу есть отдельная тема указанная выше
Автор: ak13boda
Дата сообщения: 29.06.2008 16:32

Цитата:
Ну, а в самой идеологии хранения изображений в базе, нет совершенно ничего плохого.

Разве-что руками реализовать все фичи протокола, как то кеширование. Тогда действительно ничего плохого, если мощности MySQL сервера и канал связи позволяет.
Автор: kkRiz
Дата сообщения: 29.06.2008 17:27

Цитата:
Разве-что руками реализовать все фичи протокола, как то кеширование. Тогда действительно ничего плохого, если мощности MySQL сервера и канал связи позволяет.

Какого, простите, протокола?
Тем более Вы себе противоречите, при кешировании мощность базы и пропускная способность совершенно не важна.
Автор: Cheery
Дата сообщения: 29.06.2008 17:30
ak13boda
kkRiz
сюда
upload картинок в базу данных
Автор: FUTURiTY
Дата сообщения: 10.08.2008 02:28
Вопрос конечно не в тему
но всё же как убрать из php кода эти колонтитулы переноса (см. скрин)

при сравнении файлов эти переносы только гадят..

Заранее Спасибо !
Автор: Cheery
Дата сообщения: 10.08.2008 02:33
FUTURiTY
а при чем тут данная тема??
заменить \r\n на \n
Автор: FUTURiTY
Дата сообщения: 10.08.2008 14:57
Cheery

Цитата:
заменить \r\n на \n

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

извиняюсь за офф.топ

Автор: Cheery
Дата сообщения: 10.08.2008 19:28
FUTURiTY

Цитата:
можно по подробнее..

извиняюсь за офф.топ

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

в windows новая строка это \r\n
в unix она просто \n
в маке так вообще \r
Автор: FUTURiTY
Дата сообщения: 11.08.2008 15:10

Цитата:
используйте php редактор, который позволяет сохранять переносы на новую строку в unix стиле

например?
в PHP Expert Editor 4.2 можно конвертануть?

извиняюсь за офф.топ
Автор: kosola
Дата сообщения: 12.08.2008 08:26
gVim самый лучший редактор для написания кода (html, php, js и многие другие)

попробуй тупо открыть в блокноте скопировать от туда текст и вставить в свою прогу
Автор: FUTURiTY
Дата сообщения: 12.08.2008 13:07

Цитата:
gVim самый лучший редактор для написания кода (html, php, js и многие другие)

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


Цитата:
попробуй тупо открыть в блокноте скопировать от туда текст и вставить в свою прогу

пробовал, тоже самое, колонтитулы как были так и остались,
в принципи куда они могут деться, они тоже также копируются
Автор: kosola
Дата сообщения: 12.08.2008 13:49

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

Он это может сделать...
Также можно попробовать старым добрым вордом сделать замену, используя спец.символы.
Следующий вариант "Штырлиц" он перекодирует в разные кодировки, может поможет

Либо передай мне файлик я попробую помочь...
Автор: zerkms
Дата сообщения: 12.08.2008 14:06
да возьми наконец нормальный блокнот вроде EmEditor и сделай нужные переносы...
разводят тут проблемы на пустом месте...
Автор: FUTURiTY
Дата сообщения: 12.08.2008 16:49
Все всем спасибо !
код кодвертанул в AkelPad'е
там можно Win/Unix стили менять

Страницы: 12345678910111213

Предыдущая тема: PHP: лимит времени на выполнение скрипта


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.