Спустя 24 минуты, 55 секунд (9.11.2010 - 21:15) Slays написал(а):
в БД меню имеем уникальный id и название name
в БД новостей - уникальный id, заголовок новости head, текст новости text и связующий элемент id_menu, которое и показывает к какому разделу относится новость
меню выводим с гет параметром
<a href=' index.php?id=$id '>$name</a>
в индексе проверяем $_GET['id'] и выводим соответствующие новости
"SELECT * FROM news WHERE id_menu = ". (int)$_GET['id'];
вот тебе и весь принцип, это основа основ
в БД новостей - уникальный id, заголовок новости head, текст новости text и связующий элемент id_menu, которое и показывает к какому разделу относится новость
меню выводим с гет параметром
<a href=' index.php?id=$id '>$name</a>
в индексе проверяем $_GET['id'] и выводим соответствующие новости
"SELECT * FROM news WHERE id_menu = ". (int)$_GET['id'];
вот тебе и весь принцип, это основа основ
Спустя 17 минут, 8 секунд (9.11.2010 - 21:32) inpost написал(а):
Это прям вообще основы пхп...
Если хочешь круто: irbis-team.com
Если лишь бы научиться, но быстро: Попов, PHP+MySQL, видеоуроки
Если хочешь круто: irbis-team.com
Если лишь бы научиться, но быстро: Попов, PHP+MySQL, видеоуроки
Спустя 13 часов, 58 минут, 48 секунд (10.11.2010 - 11:31) m4a1fox написал(а):
Вот такая ошибка возникает! Ошибка - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #8' at line 1
Спустя 4 минуты, 59 секунд (10.11.2010 - 11:36) nugle написал(а):
Ну тут всё понятно, ты же выложил листинг со всем кодом, как ту не ра3обраться!!
Э, алё чё тормо3им, выкладывай код, мы тут экстросенсорными способностями не обладаем
Э, алё чё тормо3им, выкладывай код, мы тут экстросенсорными способностями не обладаем
Спустя 4 минуты, 26 секунд (10.11.2010 - 11:40) m4a1fox написал(а):
Извините! НЕ подумал) Вот код
<?phpСобственно вопрос уже в другом! Как объединить две таблицы? menu и data! Что бы выводились новости только этого меню!
include ("admin/blocks/db.php");
$result = mysql_query("SELECT * FROM menu WHERE id=$_GET[ind]");
if(!result)
{
echo '<Ups>';
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
}
else
{
echo 'Yeha';
exit();
}
?>
<html>
<head>
<title><?php echo $myrow[title];?></title>
<meta name="description" content="<?php echo $myrow['description'];?>">
<meta name="keywords" content="<?php echo $myrow['keywords'];?>">
</head>
<link href="style.css" rel="stylesheet" type="text/css">
<body topMargin="0">
<table border=0 width="900px" align="center" topMargin="0"
<?php
include 'blocks/head.php';
?>
<tr>
<td COLSPAN=3>
<table border=0 class="menu"><tr>
<?php
$query = "SELECT * FROM menu";
$id = mysql_query($query);
if(!$id) exit("Ошибка - ".mysql_error());
while($ind=mysql_fetch_array($id))
{
echo "<td VALIGN=MIDDLE><a href=page.php?ind=$ind[id]><img src='$ind[img]'> $ind[name]</a> </td>";
}
?>
</tr></table>
</td>
</tr>
<tr height="900px">
<?php
include 'blocks/lefttd.php';
?>
<td width="500px" valign="top" style="padding-top: 20px;">
<?php
echo $myrow['text'];
echo '<hr />';
?>
<?php
$r = mysql_query('SELECT * FROM data ORDER BY date DESC');
$i=0;
$cnt = mysql_num_rows($r);
while($d = mysql_fetch_assoc($r))
{
$i++;
echo '
<div>'.$d['title'].'</div>
<div>'.html_entity_decode($d['text'],ENT_QUOTES).'</div>
';
if ($i<$cnt) echo '<BR>';
}
?>
</td>
<?php
include 'blocks/righttd.php';
?>
</tr>
<?php
include 'blocks/bottom.php';
?>
</table>
</body>
</html>
Спустя 1 минута, 15 секунд (10.11.2010 - 11:42) Slays написал(а):
я собственно тебе и описал как это сделать
Спустя 1 минута, 28 секунд (10.11.2010 - 11:43) m4a1fox написал(а):
Да это так! Но вопросы блин возникают! Я не специально, чес слово!
Спустя 1 минута, 35 секунд (10.11.2010 - 11:45) m4a1fox написал(а):
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\qwerty\page.php on line 64
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\qwerty\page.php on line 66 вот такие ошибки возникают!
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\qwerty\page.php on line 66 вот такие ошибки возникают!
Спустя 1 минута, 39 секунд (10.11.2010 - 11:46) m4a1fox написал(а):
Это если делать как Вы сказали!
Спустя 3 минуты, 26 секунд (10.11.2010 - 11:50) m4a1fox написал(а):
Блин! Ну тут точно нужен запрос на объединение таблиц!
Спустя 5 минут, 12 секунд (10.11.2010 - 11:55) linker написал(а):
$result = mysql_query("SELECT * FROM menu WHERE id=" . (integer)$_GET['ind']);
Спустя 8 минут, 54 секунды (10.11.2010 - 12:04) m4a1fox написал(а):
Вопрос! Почему необходимо вынимать из menu! Меню и так нормально выводится с ind=id, мне необходимо вывести из базы data текст который бы равнялся ind[id] в пункте меню!
Спустя 5 минут, 31 секунда (10.11.2010 - 12:09) m4a1fox написал(а):
Если вставляю вашу строку вместо своей, то возникает ошибка! То есть ничего не выводится! А если оставляю свою - то все нормально! $result = mysql_query("SELECT * FROM menu WHERE id=$_GET[ind]"); - это работает, а это - $result = mysql_query("SELECT * FROM menu WHERE id=" . (integer)$_GET['ind']); - нет!
Спустя 2 минуты, 47 секунд (10.11.2010 - 12:12) nugle написал(а):
Вот так попробуй вставить
$result = mysql_query("SELECT * FROM menu WHERE id='" . (integer)$_GET['ind']."');
Спустя 5 минут, 11 секунд (10.11.2010 - 12:17) m4a1fox написал(а):
nugle
Нет! Так тоже не получается! А вы не могли бы объяснить, почему именно эта строка! Ведь, насколько я понимаю, необходимо вывести данные из таблицы, где id_menu = id(в табл. menu!)
Нет! Так тоже не получается! А вы не могли бы объяснить, почему именно эта строка! Ведь, насколько я понимаю, необходимо вывести данные из таблицы, где id_menu = id(в табл. menu!)
Спустя 3 минуты, 44 секунды (10.11.2010 - 12:21) nugle написал(а):
Вам нужно в таблице menu и таблицы data сделать одинаковые поля равные допустим строке одинаковы
Пример
Новости спорта - строчка в menu, она же при 3апросе вы3ывает и3 таблицы data все строки, где имеется это строчка
Если я так понял, то постараюсь помочь, я тоже один ра3 так делал, ра3бирался правда весь день
Пример
Новости спорта - строчка в menu, она же при 3апросе вы3ывает и3 таблицы data все строки, где имеется это строчка
Если я так понял, то постараюсь помочь, я тоже один ра3 так делал, ра3бирался правда весь день
Спустя 6 минут, 41 секунда (10.11.2010 - 12:28) m4a1fox написал(а):
У меню второй пошел!)
Спустя 30 секунд (10.11.2010 - 12:28) m4a1fox написал(а):
nugle Если вам не трудно! Буду благодарен!
Спустя 1 минута, 9 секунд (10.11.2010 - 12:30) linker написал(а):
m4a1fox
Эта строка потому, что синтаксис SQL-запроса кривой, тебе написали как необходимо. Не работает - это не ответ, ответом будет текст ошибки а именно
Эта строка потому, что синтаксис SQL-запроса кривой, тебе написали как необходимо. Не работает - это не ответ, ответом будет текст ошибки а именно
$result = mysql_query("SELECT * FROM menu WHERE id=" . (integer)$_GET['ind']) or die(mysql_error());Но скорее всего $_GET['ind'] не передается, поэтому нужно так
$ind = isset($_GET['ind']) ? (integer)$_GET['ind'] : 0;
$result = mysql_query("SELECT * FROM menu WHERE id=" . $ind) or die(mysql_error());
Спустя 5 минут, 52 секунды (10.11.2010 - 12:35) m4a1fox написал(а):
Попробую!
Спустя 42 секунды (10.11.2010 - 12:36) m4a1fox написал(а):
Работает!
Спустя 52 секунды (10.11.2010 - 12:37) m4a1fox написал(а):
А в чем тогда разница? И так и так работало!
Спустя 7 минут, 35 секунд (10.11.2010 - 12:45) linker написал(а):
Разница как минимум в безопасности.
$r = mysql_query("SELECT * FROM `data` WHERE `menu` = '" . $ind . "' ORDER BY `date` DESC");
Спустя 1 минута, 6 секунд (10.11.2010 - 12:46) m4a1fox написал(а):
Согласен!
Спустя 2 минуты, 12 секунд (10.11.2010 - 12:48) linker написал(а):
Или так
$r = mysql_query("SELECT * FROM `data` WHERE " . (!$ind ? "" : "`menu` = '" . $ind . "'") . " ORDER BY `date` DESC");
Спустя 4 минуты, 20 секунд (10.11.2010 - 12:52) m4a1fox написал(а):
Я поставил ваш запрос! Спасибо! Но возникают ошибки:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\qwerty\page.php on line 65
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\qwerty\page.php on line 67
От одной точно можно избавиться!
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\qwerty\page.php on line 65
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\qwerty\page.php on line 67
От одной точно можно избавиться!
Спустя 1 минута, 9 секунд (10.11.2010 - 12:53) m4a1fox написал(а):
Если заменить строку $cnt = mysql_num_rows($r); на $cnt = mysql_query($r); тогда ошибка пропадает только одна! а вторая так и остается!
Спустя 12 минут, 1 секунда (10.11.2010 - 13:05) m4a1fox написал(а):
Вроде получилось! При вот таком $r = mysql_query("SELECT * FROM `data` WHERE id_menu = $_GET[ind] ORDER BY `date` DESC"); запросе все нормально работает!
Спустя 30 секунд (10.11.2010 - 13:06) m4a1fox написал(а):
Если что, можно к вам обращаться за помощью?
Спустя 29 минут, 26 секунд (10.11.2010 - 13:35) linker написал(а):
Да, конечно.
Спустя 30 минут, 4 секунды (10.11.2010 - 14:05) m4a1fox написал(а):
linker
Спасибо! Может есть способ на этом форуме что бы с вами связаться?
Спасибо! Может есть способ на этом форуме что бы с вами связаться?
Спустя 40 минут, 12 секунд (10.11.2010 - 14:46) inpost написал(а):
Быстро надоешь! Лучше уж пиши тут на форуме, поможем все, чем сможем
Спустя 8 минут, 2 секунды (10.11.2010 - 14:54) m4a1fox написал(а):
Хорошо!
Спустя 39 секунд (10.11.2010 - 14:54) linker написал(а):
Да, чем больше народу, тем быстрее помогут.
Спустя 12 минут, 37 секунд (10.11.2010 - 15:07) m4a1fox написал(а):
<form name="form1" method="post" action="add_news_form_conf.php" enctype='multipart/form-data'>
<p>
<label>
<input type="hidden" name="id" value="<?php echo $_GET[ind]?>" id="id">
</label>
</p>
<p>
<label><b>Введите название новости:</b>
<input type="text" name="name" value="" id="title">
</label>
</p>
<p>
<label><b>Слова для описания:</b>
<input type="text" name="title" value="" id="meta_k">
</label>
</p>
<p> <label><b>Ключевые слова:</b>
<input type="text" name="description" value="" id="meta_d">
</label>
</p>
<p> <label><b>Краткое описание:</b>
<textarea name="text" id="description" cols="80" rows="10"></textarea>
</label>
</p>
<p>
<label><b>Введите текст:</b><br />
<textarea name="text" id="text" cols="80" rows="25"></textarea>
</label>
</p>
<p>
<lable><b>Картинка</b><br />
<input class=input type=file name=image>
</lable>
</p>
<p> <label>
<input type="submit" id="submit" value="Занести">
</label>
</p>
</form>
есть такая форма, в теории должна занасить данные в базу и соответствовать id menu который подставляется в первую скрытую строку, блин... не могу даже правильно сформулировать! Ну в общем как то так! Если будут вопросы по уточнению то смогу поточнее описать!
Спустя 2 минуты, 31 секунда (10.11.2010 - 15:09) m4a1fox написал(а):
Насколько понимаю, изначально проверка
if (isset($_POST['id'])) {$id = $_POST['id'];}
if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}}
if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}}
if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}}
if (isset($_POST['description'])) {$description = $_POST['description']; if ($description == '') {unset($description);}}
if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}[code]
а теперь заносим данные
$query = "INSERT INTO data VALUES (NULL,
'".$_POST['id_menu']."',
".$_POST['meta_d'].",
".$_POST['meta_k'].",
".$_POST['description'].",
".$_POST['text'].",
".$_POST['id'].")";
Спустя 12 минут, 1 секунда (10.11.2010 - 15:21) m4a1fox написал(а):
А если вот такой обработчик:
и вот такая форма:
<?
include("blocks/db.php");
mysql_query("SET NAMES UTF8");
if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}}
if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}}
if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}}
if (isset($_POST['description'])) {$description = $_POST['description']; if ($description == '') {unset($description);}}
if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}
if (isset($_POST['id'])) {$id = $_POST['id'];}
?>
<html>
<head>
<title> Главная для редактирования </title>
</head>
<link href="style.css" rel="stylesheet" type="text/css">
<body leftMargin=0 topMargin=0>
<table class="tabel" width="100%" CELLPADDING=0 CELLSPACING=0>
<tr valign="top" height="50px" bgcolor="#a50f10" align="center">
<td valign="middle" colspan="2">
<?php
include ("blocks/top.php");
?>
</td>
</tr>
<tr >
<td width="150px" style="margin-right: 50px; border-right: 2px solid black;" valign="top">
<div style="margin-left: 10px; margin-top: 20px; text-decoration:none;">
Изменить меню гелереи<br /><hr />
<a href="index.php">Назад</a>
</div>
</td>
<td width="700px" valign="top">
<div style="margin-left: 10px; margin-top: 20px; text-decoration:none;" align="center">
<p><?php
if (isset($title, $meta_k, $meta_d, $description, $text)) {
/* Здесь заносим инфо в базу */
$resul = mysql_query ("INSERT INTO data SET title='$title', meta_k='$meta_k', $meta_d='meta_d', description='$description', text='$text' WHERE id='$id'");
if ($resul == 'TRUE') {
echo "Добавленно";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'>
</HEAD>";
} else {
"Не обновленно";
}
}
else {
echo "<p>Вы ввели не всю информацию</p>";
}
?></p>
</div>
</td>
</tr>
</table>
</body>
</html>
и вот такая форма:
<?php
include ("blocks/db.php");
mysql_query("SET NAMES UTF8");
?>
<html>
<head>
<title> Страница для обновления главной </title>
</head>
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="tinymce/tiny_mce.js"></script>
<script type="text/javascript" src="tinymce/tiny_mce.js"></script>
<script type='text/javascript'>
tinyMCE.init({
mode : "textareas",
theme : "advanced",
relative_urls : false,
plugins : "markettoimages,safari,table,save,inlinepopups,contextmenu,paste,advimage",
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyrigh t,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockqu ote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,foreco lor,backcolor,",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,markettoimages",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_resize_horizontal : true,
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
editor_deselector : "ignorewysywig",
content_css : "editor/myownerfolder/css/content.css",
template_external_list_url : "editor/myownerfolder/lists/template_list.js",
external_link_list_url : "editor/myownerfolder/lists/link_list.js",
external_image_list_url : "editor/myownerfolder/lists/image_list.js",
media_external_list_url : "editor/myownerfolder/lists/media_list.js",
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234" }
});
</script>
<body leftMargin=0 topMargin=0>
<table class="table" CELLPADDING=0 CELLSPACING=0 width=100%>
<tr valign="top" height="50px" bgcolor="#a50f10" align="center">
<td valign="middle" colspan="2">
<?php
include ("blocks/top.php");
?>
</td>
</tr>
<tr >
<td width="150px" valign="top" style="border-right: 2px solid black;">
<div style="margin-left: 10px; margin-top: 20px; text-decoration:none;">
Добавить новость<br /> <hr />
<a href="index.php">Назад</a>
</div>
</td>
<td width="700px" valign="top">
<div style="padding-left: 10px; margin-top: 20px; text-decoration:none;">
<form name="form1" method="post" action="add_news_form_conf.php" enctype='multipart/form-data'>
<p>
<label>
<input type="hidden" name="id" value="<?php echo $_GET[ind]?>" id="id">
</label>
</p>
<p>
<label><b>Введите название новости:</b>
<input type="text" name="title" value="" id="title">
</label>
</p>
<p>
<label><b>Слова для описания:</b>
<input type="text" name="meta_k" value="" id="meta_k">
</label>
</p>
<p> <label><b>Ключевые слова:</b>
<input type="text" name="meta_d" value="" id="meta_d">
</label>
</p>
<p> <label><b>Краткое описание:</b>
<textarea name="description" id="description" cols="80" rows="10"></textarea>
</label>
</p>
<p>
<label><b>Введите текст:</b><br />
<textarea name="text" id="text" cols="80" rows="25"></textarea>
</label>
</p>
<p> <label>
<input type="submit" id="submit" value="Занести">
</label>
</p>
</form>
</div>
</td>
</tr>
</table>
</body>
</html>
Спустя 28 минут, 18 секунд (10.11.2010 - 15:50) inpost написал(а):
m4a1fox
Я убрал всё ненужное, чтобы ты понял схему, тут не надо создавать 2 отдельных файла для формы и внесения данных. Смотри, как оформлено, думаю, будет интересно:
Теперь по самой теме, когда делаешь INSERT, то:
1) Нету никакого $_GET['id'].
2) Не надо писать WHERE id=id!!! Эту строчку надо убрать вообще, так как у тебя добавление стоит через autoincrement(? вроде так слово пишется, лень проверять хД).
3) Если ты с JS не работаешь, то и ID тебе вообще не нужен, достаточно писать только name для формы и инпутов.
Я убрал всё ненужное, чтобы ты понял схему, тут не надо создавать 2 отдельных файла для формы и внесения данных. Смотри, как оформлено, думаю, будет интересно:
<?php session_start();
include("blocks/bd.php");
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
header("Content-Type: text/html; charset=utf-8");
if (count($_POST) > 0)
{
$result = mysql_query("INSERT INTO `metodi` SET
`title`='".$_POST['title']."',
`number`='".(int)$_POST['number']."',
`text`='".$_POST['text']."'
",$db);
if ($result == true)
{
header("Location: http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?status=ok");
}
else
{
header("Location: http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?status=bad");
}
exit();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form method="post" action="">
<div align="justify" style="background-color:#DDE1C1 ">Методы работы (добавление): </div>
<?php
if (isset($_GET['status']))
{
if($_GET['status'] == "ok")
{
echo '<div align="justify" class="cat2" style="background-color:#AEEECB ">Ваши методы добавлены</div>';
}
else
{
echo '<div align="justify" class="cat2" style="background-color:#F8787B ">Ваши методы не были добавлены</div>';
}
}
?>
<p align="justify"><label>Введите название метода:<br><input type="text" name="title" size="70" /></label></p>
<p align="justify"><label>Введите порядковый номер (сортировка):<br><input type="text" name="number" size="11" /></label></p>
<p align="justify"><label>Введите текст:<br><textarea rows="30" cols="80" name="text"></textarea></label></p>
<p align="justify"><label><input type="submit" name="submit" value="Занести методы в базу" /></label></p>
</form>
</body>
</html>
Теперь по самой теме, когда делаешь INSERT, то:
1) Нету никакого $_GET['id'].
2) Не надо писать WHERE id=id!!! Эту строчку надо убрать вообще, так как у тебя добавление стоит через autoincrement(? вроде так слово пишется, лень проверять хД).
3) Если ты с JS не работаешь, то и ID тебе вообще не нужен, достаточно писать только name для формы и инпутов.
Спустя 52 минуты, 28 секунд (10.11.2010 - 16:42) nugle написал(а):
Вот это у вас тут листинги....
Я проще всё делал...
И второй код с выводом собстно новостей
Я проще всё делал...
<?php
require('blocks/bd.php');
mysql_set_charset('utf8');
$sql="Select name_menu from menu'";
$result = mysql_query($sql) or die(mysql_error() ."<br/>".
while($row = mysql_fetch_assoc($sql))
{
echo "<a href = "data.php?name_menu = '".$row['name_menu']."'";
}
?>
И второй код с выводом собстно новостей
<?php
require('blocks/bd.php');
mysql_set_charset('utf8');
$name_menu = !empty($_POST['name_menu']) ? $_POST['name_menu'] : null;
$sql="Select * from articles where class='" . mysql_real_escape_string($name_menu) . "'";
$result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);
while ($row = mysql_fetch_assoc($result))
{
echo "$row['name_news']";
}
Спустя 53 минуты, 22 секунды (10.11.2010 - 17:35) m4a1fox написал(а):
nugle
Спасибо!
Но пока еще я сделал как у меня и было! Тоесть пусть он и большой, но - работает!) У меня тут теперь другая задача! Надо еще и картинку вставить в новость! Буду сейчас думать как!
Спасибо!
Но пока еще я сделал как у меня и было! Тоесть пусть он и большой, но - работает!) У меня тут теперь другая задача! Надо еще и картинку вставить в новость! Буду сейчас думать как!
Спустя 12 минут, 43 секунды (10.11.2010 - 17:48) m4a1fox написал(а):
// Если во временном каталоге имеется соответствующий полю image
// файл, копируем его из временного каталога в каталог /files
if (!empty($_FILES['image']['tmp_name']))
{
// Определяем расширение файла
$ext = strrchr($_FILES['image']['name'], ".");
// Формируем путь к файлу
$image = "file/".date("YmdHis",time())."$ext";
$smallimage = "file/".date("YmdHis",time())."_s$ext";
// Перемещаем файл из временной директории сервера в
// директорию /files Web-приложения
if (copy($_FILES['image']['tmp_name'], "".$image))
{
// Уничтожаем файл во временной директории
unlink($_FILES['image']['tmp_name']);
// Изменяем права доступа к файлу
chmod("".$image, 0644);
}
} else links($_POST['id'], "Фотография не передана на сервер");
// Вызываем функцию resizeimg(), создающую уменьшенную копию фотографии
// $image и помещающую её в файл $smallimage
if(!resizeimg($image, $smallimage, 133, 100))
links($_POST['id'], "Ошибка при создании уменьшенной копии изображения с помощью библиотеки GDLib");
// Заменяем одинарные кавычки обратными
$_POST['name'] = str_replace("'", "`", $_POST['name']);
есть такой вот скрипт! Кто может, посмотрите! Тут насколько я понимаю есть название картинки, и большая картинка, если я их удалю, это будет катострофически или нет?
Спустя 1 час, 33 минуты, 40 секунд (10.11.2010 - 19:22) m4a1fox написал(а):
Мда, с этим проблемка выходит!
Спустя 10 минут (10.11.2010 - 19:32) inpost написал(а):
Хочешь уметь им пользоваться? Напиши его сам =)
Спустя 14 минут, 44 секунды (10.11.2010 - 19:47) m4a1fox написал(а):
inpost
Дельный совет!) Буду пробывать!
Дельный совет!) Буду пробывать!
Спустя 18 минут, 19 секунд (10.11.2010 - 20:05) m4a1fox написал(а):
А если вот такой загрузчик(форма):
Собственно сама обработка:
<tr>
<td><p class=zag2>Изображение</td>
<td><input type="checkbox" name="chk_filename" onclick="freeze_filename(this.form)" <?php echo htmlspecialchars($chk_filename); ?>></td>
<td><input class=input size=70 type=file name=filename></td>
</tr>
Собственно сама обработка:
// Если поле выбора картинки не пустое - закачиваем её на сервер
$path = "";
// Если требуется загрузить файл - загружаем
if($_POST['chk_filename'] == "on")
{
if (!empty($_FILES['filename']['tmp_name']))
{
// Формируем путь к файлу
$path = "files/".date("YmdHis",time());
// Если оператор пожелал переименовать файл - переименовываем
if($_POST['chk_rename'] == "on")
{
// Проверяем, чтобы не было прямых и обратных слешей
$_POST['rename'] = str_replace("\\","",$_POST['rename']);
$_POST['rename'] = str_replace("/","",$_POST['rename']);
$_POST['rename'] = stripcslashes($_POST['rename']);
$path = "files/".substr($_POST['rename'], 0, strrpos($_POST['rename'], "."));
}
// Проверяем, не является ли файл скриптом PHP или Perl, html, если это так преобразуем его в формат .txt
$extentions = array("#\.php#is",
"#\.phtml#is",
"#\.php3#is",
"#\.html#is",
"#\.htm#is",
"#\.hta#is",
"#\.pl#is",
"#\.xml#is",
"#\.inc#is",
"#\.shtml#is",
"#\.xht#is",
"#\.xhtml#is");
// Извлекаем из имени файла расширение
$ext = strrchr($_FILES['filename']['name'], ".");
$add = $ext;
foreach($extentions AS $exten)
{
if(preg_match($exten, $ext)) $add = ".txt";
}
$path .= $add;
// Перемещаем файл из временной директории сервера в
// директорию /files Web-приложения
if (copy($_FILES['filename']['tmp_name'], "../".$path))
{
// Уничтожаем файл во временной директории
@unlink($_FILES['filename']['tmp_name']);
// Изменяем права доступа к файлу
@chmod("../".$path, 0644);
}
}
else links("Не указан файл для загрузки");
}
Спустя 32 секунды (10.11.2010 - 20:05) m4a1fox написал(а):
Что скажите?
Спустя 1 час, 1 секунда (10.11.2010 - 21:05) m4a1fox написал(а):
Может кто пожет! Есть так штука:
в теории при выборе файла в форме:
она должне заносить путь к картинке в бд. НО ОНА НЕ ЗАНОСИТ! В чем может быть причина! Спасибо!
<?
include("blocks/db.php");
mysql_query("SET NAMES UTF8");
if (isset($_POST['title'])) {$title = $_POST['title']; if ($title == '') {unset($title);}}
if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; if ($meta_k == '') {unset($meta_k);}}
if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; if ($meta_d == '') {unset($meta_d);}}
if (isset($_POST['date'])) {$date = $_POST['date']; if ($date == '') {unset($date);}}
if (isset($_POST['description'])) {$description = $_POST['description']; if ($description == '') {unset($description);}}
if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}
if (isset($_POST['ind'])) {$ind = $_POST['ind'];}
?>
<html>
<head>
<title> Главная для редактирования </title>
</head>
<link href="style.css" rel="stylesheet" type="text/css">
<body leftMargin=0 topMargin=0>
<table class="tabel" width="100%" CELLPADDING=0 CELLSPACING=0>
<tr valign="top" height="50px" bgcolor="#a50f10" align="center">
<td valign="middle" colspan="2">
<?php
include ("blocks/top.php");
?>
</td>
</tr>
<tr >
<td width="150px" style="margin-right: 50px; border-right: 2px solid black;" valign="top">
<div style="margin-left: 10px; margin-top: 20px; text-decoration:none;">
Изменить меню гелереи<br /><hr />
<a href="index.php">Назад</a>
</div>
</td>
<td width="700px" valign="top">
<div style="margin-left: 10px; margin-top: 20px; text-decoration:none;" align="center">
<p><?php
if (isset($title, $meta_k, $meta_d, $date, $description, $text, $ind)) {
// Если требуется загрузить файл - загружаем
if (!empty($_FILES['image']['tmp_name']))
{
// Определяем расширение файла
$ext = strrchr($_FILES['image']['name'], ".");
// Формируем путь к файлу
$smallimage = "file/".date("YmdHis",time())."_s$ext";
// Перемещаем файл из временной директории сервера в
// директорию /files Web-приложения
if (copy($_FILES['image']['tmp_name'], "".$image))
// Перемещаем файл из временной директории сервера в
// директорию /files Web-приложения
if (copy($_FILES['image']['tmp_name'], "".$image))
{
// Уничтожаем файл во временной директории
unlink($_FILES['image']['tmp_name']);
// Изменяем права доступа к файлу
chmod("".$image, 0644);
}
else links("Не указан файл для загрузки");
}
/* Здесь заносим инфо в базу */
$resul = mysql_query ("INSERT INTO data (title, meta_k, meta_d, date, description, text, small, id_menu) VALUES ('$title', '$meta_k', '$meta_d', '$date', '$description', '$text', '$smallimage', '$ind')");
if ($resul == 'TRUE') {
echo "Добавленно";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'>
</HEAD>";
} else {
"Не обновленно";
}
}
else {
echo "<p>Вы ввели не всю информацию</p>";
}
?></p>
</div>
</td>
</tr>
</table>
</body>
</html>
в теории при выборе файла в форме:
<form name="form1" method="post" action="add_news_conf.php">
<p>
<label><b>Введите название новости:</b>
<input type="text" name="title" value="" id="title">
</label>
</p>
<p>
<label><b>Слова для описания:</b>
<input type="text" name="meta_k" value="" id="meta_k">
</label>
</p>
<p> <label><b>Ключевые слова:</b>
<input type="text" name="meta_d" value="" id="meta_d">
</label>
</p>
<p> <label><b>Введите дату добавления новости:</b>
<input type="text" name="date" value="<?php $date = date("Y-m-d"); echo $date?>" id="date">
</label>
</p>
Изображение
<input type="file" name="filename" id="path">
<p> <label><b>Краткое описание:</b>
<textarea name="description" id="description" cols="80" rows="10"></textarea>
</label>
</p>
<p>
<label><b>Введите текст:</b><br />
<textarea name="text" id="text" cols="80" rows="25"></textarea>
</label>
</p>
<p>
<label>Категория:<br />
<select name="ind">
<?php
$query = "SELECT id, name FROM menu";
$id = mysql_query($query);
if(!$id) exit("Ошибка - ".mysql_error());
while($ind=mysql_fetch_array($id))
{
echo "<option value='$ind[id]'>$ind[name]</option><br />";
}
?>
</select>
</label>
</p>
<p> <label>
<input type="submit" id="submit" value="Занести">
</label>
</p>
</form>
она должне заносить путь к картинке в бд. НО ОНА НЕ ЗАНОСИТ! В чем может быть причина! Спасибо!
Спустя 5 минут, 5 секунд (10.11.2010 - 21:11) vinnie написал(а):
if (copy($_FILES['image']['tmp_name'], "".$image))
здесь просто
if (copy($_FILES['image']['tmp_name'], $image))
Спустя 14 часов, 55 минут, 44 секунды (11.11.2010 - 12:06) m4a1fox написал(а):
vinnie
Не сработало! Не заносится он и все тут(
Не сработало! Не заносится он и все тут(
Спустя 1 час, 4 минуты, 42 секунды (11.11.2010 - 13:11) m4a1fox написал(а):
Значит никто не поможет? Печально! Ну тем не менее спасибо всем кто учавствовал!
Спустя 1 час, 29 минут, 53 секунды (11.11.2010 - 14:41) inpost написал(а):
m4a1fox
я тебе дал код выше, как надо исправить хотя бы логику и сделать всё на одной странице! Ты не хочешь исправляться, я не хочу помогать...
я тебе дал код выше, как надо исправить хотя бы логику и сделать всё на одной странице! Ты не хочешь исправляться, я не хочу помогать...
Спустя 3 часа, 5 минут, 24 секунды (11.11.2010 - 17:46) m4a1fox написал(а):
inpost Я не понимаю! Как то что вы написали связано с тем что я хочу добиться от загрузчика! В вашем коде даже намека на загрузку файлов нет! У меня же, все что мне надо заносится в базу и успешно из нее выводится! Кроме, разумеется, картинки, почему то она не хочет заносится в БД!
Спустя 21 минута, 4 секунды (11.11.2010 - 18:07) inpost написал(а):
Ты пишешь так, как учил батенька Попов... а он, увы, пример того, как не надо программировать.
Вот держи этот код, разбирай! Ещё одно, у тебя на папку, куда добавляются фотографии должен быть установлены права 755 (если не работает, то 775->777, в зависимости от хостинга).
Вот держи этот код, разбирай! Ещё одно, у тебя на папку, куда добавляются фотографии должен быть установлены права 755 (если не работает, то 775->777, в зависимости от хостинга).
<?php session_start();
include("blocks/bd.php");
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
header("Content-Type: text/html; charset=utf-8");
if (isset($_POST['title']))
{
if($_FILES['userfile']['name'] != "")
{
$allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // Здесь мы перечисляем допустимые типы файлов
$max_filesize = 524288; // Максимальный размер загружаемого файла в байтах (в данном случае он равен 0.5 Мб).
$upload_path = '../img/video/'; // Место, куда будут загружаться файлы (в данном случае это папка 'files').
$filename = $_FILES['userfile']['name']; // В переменную $filename заносим точное имя файла (включая расширение).
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // В переменную $ext заносим расширение загруженного файла.
if(!in_array($ext,$allowed_filetypes))
die('Данный тип файла не поддерживается.');
if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('Фаил слишком большой.');
if(!is_writable($upload_path))
die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');
move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename);
}
else
{
$filename = '';
}
$result = mysql_query("INSERT INTO `video` SET
`title`='".$_POST['title']."',
`number`='".(int)$_POST['number']."',
`text`='".$_POST['text']."',
`photo`='".$filename."'
",$db);
if ($result == true)
{
header("Location: http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?status=ok");
}
else
{
header("Location: http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?status=bad");
}
exit();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form method="post" action="" enctype="multipart/form-data">
<?php
if (isset($_GET['status']))
{
if($_GET['status'] == "ok")
{
echo '<div align="justify" class="cat2" style="background-color:#AEEECB ">Ваше видео добавлено</div>';
}
else
{
echo '<div align="justify" class="cat2" style="background-color:#F8787B ">Ваше видео не было добавлено</div>';
}
}
?>
<p><label>Введите название видео:<br><input type="text" name="title" size="70" /></label></p>
<p><label>Введите порядковый номер (сортировка):<br><input type="text" name="number" size="11" /></label></p>
<p><label>Введите текст:<br><textarea rows="30" cols="80" name="text"></textarea></label></p>
<p><label>Выберите фотографию видео:<br><input type="file" name="userfile"></label></p>
<p><label><input type="submit" name="submit" value="Занести видео в базу" /></label></p>
</form>
</body>
</html>
Спустя 4 часа, 30 минут, 34 секунды (11.11.2010 - 22:38) m4a1fox написал(а):
inpost
Спасибо тебе добрый человек! ВЫРУЧИЛ!
Спасибо тебе добрый человек! ВЫРУЧИЛ!