|
|
|
| Проблема в том что при добавлении изображения на сервер имя в БД (MySQL) у меня не получается считать. Вот то что я делала:
if(isset($_POST['save'])){
mysql_connect("localhost","root","");
mysql_select_db("realtyy");
$imgDir = "images";
@mkdir($imgDir, 0777);
if (@$_REQUEST['doUpload']) {
$data = $_FILES['file1'];
$tmp = $data['tmp_name'];
if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['file1']['tmp_name']);
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
$name = "$imgDir/".time().".".$p[1];
move_uploaded_file($tmp, $name);
} else {
echo "<h2>Попытка добавить файл недопустимого формата!</h2>";
}
} else {
echo "<h2>Ошибка закачки #{$data['error']}!</h2>";
}
}
|
далее отправка всех данных в БД:
$sql="INSERT INTO `dob` ( `id`, `kind`, `type`, `area`, `street`, `metric`, `price`, `val`, `phone`, `e-mail`, `img`, `detail` )
VALUES ( '', '".$_POST['kind']."', '".$_POST['t']."', '".$_POST['r']."', '".$_POST['st']."', '".$_POST['metr']."',
'".$_POST['cena']."', '".$_POST['val']."', '".$_POST['phone']."', '".$_POST['email']."', '".$_POST['file1']."',
'".$_POST['det']."')";
$res = mysql_query($sql);
}
|
и вот данные отправки изображения:
<tr id="iM38"><td class="manTd1" id="iM39">изображения (GIF, JPEG, PNG):
<div class="fHelp">макс.размер - <b>500</b>Kb</div></td>
<td class="manTd2" id="iM40"><div style="display:inline;" id="iplus">
<input class="button" style="width:24px;" type="button" value=" + " onclick="addImgF();" title="добавить поле для файла"> </div>
<input type="file" id="fln1" name="file1" size="20" onchange="getimage(1);"><span id="iCode1"></span>
<div id="imblock"></div></td></tr>
|
| |
|
|
|
|
|
|
|
для: solomusic
(12.06.2008 в 13:25)
| | объясните что такое $_POST['file1'] :) | |
|
|
|
|
|
|
|
для: Root
(12.06.2008 в 14:46)
| | это запрос в БД названия файла введенного в
<input type="file" id="fln1" name="file1" size="20" onchange="getimage(1);">
| самый обыкновенный запрос... как и все остальные.
Только этот запрос как я понимаю нужно делать немного инначе.. но как.... пока еще не разобралась... в прочем для этого и создана тема! ;) | |
|
|
|
|
|
|
|
для: solomusic
(12.06.2008 в 15:03)
| | файлы доступны через массив $_FILES. | |
|
|
|
|
|
|
|
для: Root
(12.06.2008 в 15:05)
| | ой, точно.. но тогда еще вопрос... при таком запросе... в БД выводится Array... и еще ... мне нужно загрузить не сам фаил... а только его имя!!! | |
|
|
|
|
|
|
|
для: solomusic
(12.06.2008 в 15:10)
| | $_FILES - двумерный массив
$_FILES['file1']['name'] - имя файла на клиентской машине
$_FILES['file1']['tmp_name'] - временное имя файла | |
|
|
|
|
|
|
|
для: Root
(12.06.2008 в 15:15)
| | а да... СПАСИБО!!! а то я уже замучалась... ;)))))))))))) | |
|
|
|
|
|
|
|
для: solomusic
(12.06.2008 в 15:18)
| | еще вопрос... название выводит... но почему-то загрузка изображения на страницу не происходит. Показываю код:
<script>
function win(detail, street, phone, img)
{
msg=window.open("","msg","height=400,width=400,left=200,top=200");
msg.document.write("<html><head><title>" + street + "</title></head>");
msg.document.write("<body>");
msg.document.write("<Table><tr><td>" + detail + "</td></tr>");
msg.document.write("<tr><td>тел: " + phone + "</td></tr>");
msg.document.write("<tr><td><a rel='lightbox[roadtrip]' title='фото' href='images/" + img + "'><img src='images/" + img + "' ></a></td></tr>");
msg.document.write("</table></body></html>");
msg.focus();
}
</script>
|
и php:
ini_set('display_errors',1);
error_reporting(E_ALL);
mysql_connect ("localhost", "root", "");
mysql_select_db('realtyy');
$sql = "SELECT * FROM `dob` WHERE `type` LIKE 'aa' ORDER BY `id` DESC";
$result = mysql_query($sql);
$data = array();
while($res=mysql_fetch_array($result))
{
echo "<TR bgcolor=#FLEFE5>";
echo "<TD ALIGN=CENTER>".$res['id']."</TD>";
echo "<TD ALIGN=CENTER><B><i>".$res['area']."</i></B></TD>";
echo "<TD ALIGN=CENTER>".$res['street']."</TD>";
echo "<TD ALIGN=CENTER>".$res['metric']."</TD>";
echo "<TD ALIGN=CENTER><pre>".$res['price']." ".$res['val']."</pre></TD>";
echo "<TD ALIGN=CENTER>".$res['phone']."</TD>";
echo "<TD width='30%' ALIGN='CENTER'>
<a href='#' onclick='win(\"" . htmlentities($res['detail'], ENT_QUOTES, "cp1251") . "\",
\"" . htmlentities($res['street'], ENT_QUOTES, "cp1251") . "\",
\"" . htmlentities($res['phone'], ENT_QUOTES, "cp1251") . "\",
\"".htmlentities($res['img'], ENT_QUOTES, "cp1251")."\")'>открыть</a></TD> ";
echo "<TD ALIGN=CENTER>".$res['date']."</TD>";
echo "</TR>";
};
|
вот.. рисунок должен выводится в дополнительном окошке вместе с инфо... здесь наверняка как всегда элементарная ошибка, но пока я ее не вижу... увы... | |
|
|
|
|
|
|
|
для: solomusic
(12.06.2008 в 20:06)
| | Да тут не элементарная ошибка, а грубая. Вы не на код свой смотрите, а на результирующую страничку, которую получите. Обратите внимание на JS функцию и передачу в нее аргументов. | |
|
|
|
|
|
|
|
для: sim5
(12.06.2008 в 20:23)
| | да я на это обращала внимание, но увы не очень хорошо знаю JS, точнее очень плохо, и не могу сообразить как его нужно выводить... так что если знаете, помогите! | |
|
|
|
|
|
|
|
для: solomusic
(12.06.2008 в 20:29)
| | Во-первых, чтобы ваш РНР код можно было читать без напряжения в глазах, обрамляйте его тегами РНР, иначе следить за кавычками, втсавками и прочее в коде трудно. И переносит его, чтобы он не растягивал страницу, иначе...
Что качается JS функции, то как это вы хотите сотворить такое:
//это неправильно
<a rel='lightbox[roadtrip]' title='фото' ...
//вставку РНР перменной в JS код нужно производить, например, так:
<a rel='<?php echo lightbox[roadtrip]; ?>' title='фото' ...
|
Но это еще не все. Вы хотите использовать Lightbox, а для этого нужно подключить соответствующие библиотеки, а где у вас подключение их? Если вы указываете параметр lightbox[roadtrip], то значит вы применяете эффект для нескольких фотографий - как вы думаете, что вы увидите передав одно изображение в вашу функцию, или вы ожидаете что там будет прописан массив изображений? Для одного изображения параметр rel должен быть прописан: rel="lightbox".
В общем чтобы вам конкретно увидеть все - просмотрите результирующий HTML-код вашей страницы.
PS. Подправьте свой РНР код чтобы он не растягивал страницу, и обрамите его в теги, чтобы была подсветка, ей богу глаза и так устают, еще и вглядываться в то, что вы пишите. Тяжело. | |
|
|
|
|
|
|
|
для: sim5
(12.06.2008 в 20:46)
| | ок. подключение вот:
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
|
мне просто показалось это и так понятным... но ладно
и изображение может быть не одно... точнее одно как мин. макс 4-5 в одном окошке...
а по поводу html... ну JS эт понятно и так как выводит.. а php вот:
[HTML]<TR bgcolor=#FLEFE5>
<TD ALIGN=CENTER>35</TD>
<TD ALIGN=CENTER><B><i>Святошинский</i></B></TD>
<TD ALIGN=CENTER></TD>
<TD ALIGN=CENTER></TD>
<TD ALIGN=CENTER><pre> y.e.</pre></TD>
<TD ALIGN=CENTER></TD>
<TD width='30%' ALIGN='CENTER'><a href='#' onclick='win("", "", "","112755_168954.jpg")'>открыть</a></TD>
<TD ALIGN=CENTER>0000-00-00</TD>
</TR>[/HTML]
|
да и еще как на этом сайте можно написать php c выделением тегов... ? | |
|
|
|
|
|
|
|
для: solomusic
(12.06.2008 в 20:56)
| | сейчас все работает... простите... видемо заработалась и не обратила внимание... я ведь загружаю на сервер под именем а в БД просто вывожу имя файла... вместо того что загружается в БД... | |
|
|
|
|
|
|
|
для: solomusic
(12.06.2008 в 20:56)
| | Дело в том, что указывая для Lightbox rel="lightbox[roadtrip]", вы сообщаете, что будет применен эффект к группе изображений. Если теперь, это связать с запросом к базе... Я решил, что вы таким образом передаете имена групп изображений в функцию для Lightbox, что конечно же неверно, ибо по событию onclick, вы передаете всего одно изображение для нее. Смысла в данном случае нет. Да и вообще, зачем вам это окно, которое вы создаете? Видели вы же работу Lightbox, значит знаете, что основное содержимое будет приглушено, и на этом фоне будет красивый эффект. Вместо открытия окна нового, лучше выполнять все в одном, основном окне, но немножко не так, правда вам потребуется немного изменить код в библиотеке lightbox.js. | |
|
|
|