|
|
|
| смысл изменения данных состоит в том, чтобы имея много однотипных разделов, редактировать их двумя скриптами - одним выводить информацию в поля редактирования, присваивая странице методом GET идентификатор раздела, чтобы не создавать кучу однотипных файлов с разными идентификаторами, а вторым изменять от одного до нескольких полей в зависимости от кол-ва выведенных таковых на экран.
<table align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="186" align="center" valign="top">
<div class="i">
<Form><Input Type="hidden" Name="select value">
<Select Size="1" OnChange="top.location.href = this.options[this.selectedIndex].value;">
<Option selected>Выберите нужный раздел</Option>
<Option value="http://localhost/a_a.php?nav=nknk">2</Option>
<Option value="http://localhost/a_a.php?nav=nknm">3</Option>
<Option value="http://localhost/a_a.php?nav=nknp">4</Option>
<Option value="http://localhost/a_a.php?nav=nknsd">4</Option>
<Option value="http://localhost/a_a.php?nav=nknsn">7</Option>
<Option value="http://localhost/a_a.php?nav=nknsn">7</Option>
</Select></Form></div>
</td>
<td width="402" align="center" valign="top">
<?php
if(empty($_GET['nav'])) $nav="nknk"; //dghjdghjdghjdghj
$msconnect=@mysql_connect($mshost, $msuser, $mspassword);
@mysql_select_db($msname, $msconnect);
$sql="SELECT * FROM roma WHERE proz='{$nav}'";
$result=@mysql_query($sql, $msconnect);
if(!$result) exit("<div class=\"ss\">blblbl</div>");
$posts=mysql_num_rows($result);
if(!$posts) exit("<div class=\"ss\">blblbl</div>");
$total=intval(($posts-1)/$pnumber)+1; //sghshdfghdfghfdghd
if(!empty($_GET['page']))
{
if($page<=0) $page=1;
elseif($page>$total) $page=$total;
elseif(!(int)$page) $page=1; // проверить!!!!!!!!!!!!!!!!
elseif(!intval($page)) $page=1;
}
else
{
$page=1;
}
echo "<div class=\"ss\">";
//dfghdfghdfgh
if($page!=1)
{
$pervpage ='<a href='."$_SERVER[PHP_SELF]".'?page='.($page-1)."&nav=".$nav.'>'." "."dghjdgh"." ".'</a>';
echo $pervpage;
}
//'<a href= ./n_kn_k.php?page=1>'." "."|<<"." ".'</a>'
if($page-2>0)
{
$page2left=" "."..."." ".'<a href='."$_SERVER[PHP_SELF]".'?page='.($page-2)."&nav=".$nav.'>'." ".($page-2)." ".'</a>';
echo $page2left;
}
if($page-1>0)
{
$page1left='<a href='."$_SERVER[PHP_SELF]".'?page='.($page-1)."&nav=".$nav.'>'." ".($page-1)." ".'</a>';
echo $page1left;
}
echo "<font color=\"#FF0000\"><b>"." ".$page." "."</b></font>";
if($page+1<=$total)
{
$page1right='<a href='."$_SERVER[PHP_SELF]".'?page='.($page+1)."&nav=".$nav.'>'." ".($page+1)." ".'</a>';
echo $page1right;
}
if($page+2<=$total)
{
$page2right='<a href='."$_SERVER[PHP_SELF]".'?page='.($page+2)."&nav=".$nav.'>'." ".($page+2)." ".'</a>'." "."..."." ";
echo $page2right;
}
if($page!=$total)
{
$nextpage='</a><a href='."$_SERVER[PHP_SELF]".'?page='.($page+1)."&nav=".$nav.'>'." "."dhgjdg"." ".'</a>';
echo $nextpage;
}
//. '<a href= ./n_kn_k.php?page='.($total).'>'." ".">>|"." ";
echo "</div>";
echo "<br>";
$start=(($page-1)*$pnumber);
$sql="SELECT * FROM roma WHERE proz='{$nav}' LIMIT $start, $pnumber";
$result=@mysql_query($sql, $msconnect);
if(!$result) exit("Error");
if(mysql_num_rows($result)>0)
{
while($row=mysql_fetch_array($result))
{
$pn=$row['pn'];
$proz=$row['proz'];
$calc=$row['calc'];
$name=$row['name'];
$msg=$row['msg'];
$mobile=$row['mobile'];
$email=$row['email'];
echo "<table width=\"588\"><tr><td><div class=\"i\" align=\"left\">";
echo "<form action=\"a_update.php\" method=\"post\">
<TEXTAREA name=\"msg\" style=\"color:#000000; font-style:inherit; background-color:#FFFFFF\" ROWS=7 COLS=70>".$msg."</TEXTAREA><br>"
."<input type=\"submit\" value=\"Изменить пост\">"
."<input type=\"hidden\" value=\"".$start."\" name=\"start\">"
."<input type=\"hidden\" value=\"".$pnumber."\" name=\"pnumber\">"
."</form>";
echo "
</div>
</td>
</tr>
</table>";
}
}
?>
</td>
</tr>
</table>
в выводе ссылок навигации я передаю параметр nav методом GET, что должно сообщить скрипту-обработчику какой раздел я редактирую, но следующий скрипт пишет ошибку:
<?php
$nav=$_GET['nav'];
$msg=$_POST['msg'];
$start=$_POST['start'];
$pnumber=$_POST['pnumber'];
$mshost = "localhost"; // Хост
$msuser = "root"; // Имя пользователя
$mspassword = "138"; // Пароль
$msname = "roma"; // Имя базы данных
$msconnect = @mysql_connect($mshost, $msuser, $mspassword);
@mysql_select_db($msname, $msconnect);
$res=@mysql_query($sql="UPDATE roma SET msg='$msg' WHERE proz='$nav' LIMIT $start, $pnumber");
if(!$res) exit("Error:".mysql_error());
mysql_close($msconnect);
?>
$nav=$_GET['nav'];
// если присутствует эта строка - выводит сообщение об ошибке в ней
я уже пробовал без нее, в надежде, что метод GET автоматически передаст второму сценарию переменную $nav, но и это чето не работает.
можно конечно создать кучу одинаковых файлов, но все же хочется обойтись одним динамическим скриптом.
вот и проблема передать изменяющийся в форме идентификатор.
мне тут еще посоветовали попробовать применить сессии, они ведь сохраняют переменные из сценария в сценарий.
как будет проще? | |
|
|
|
|
|
|
|
для: Рома
(28.10.2008 в 00:59)
| | а может надо так
<form action"update.php&nav=$nav">
кстати идея, попробую - отпишусь... | |
|
|
|
|
|
|
|
для: Рома
(28.10.2008 в 01:12)
| | не а, не работает!
пишет тоже самое:
Error: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 ' 10' at line 1
кстати msg и proz - это столбцы базы
засада, даже нет идей, в каком направлении думать:(( | |
|
|
|
|
|
|
|
для: Рома
(28.10.2008 в 01:18)
| | может нужно каждое сообщение по своему назвать, чтобы было десять разных сообщений? | |
|
|
|
|
|
|
|
для: Рома
(28.10.2008 в 17:48)
| | разобрав чьюто гостевую, я понял, что все это одна сплошная ошибка, у меня уже все редактирует, все ок.
я просто слишком заморочился mysql, что совсем забыл про php.
вот как я исправился:
<table align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="186" align="center" valign="top">
<div class="i">
<Form><Input Type="hidden" Name="select value">
<Select Size="1" OnChange="top.location.href = this.options[this.selectedIndex].value;">
<Option selected>Выберите нужный раздел</Option>
<Option value="http://localhost/a_a.php?nav=nknk">2</Option>
<Option value="http://localhost/a_a.php?nav=nknm">3</Option>
<Option value="http://localhost/a_a.php?nav=nknp">4</Option>
<Option value="http://localhost/a_a.php?nav=nknsd">4</Option>
<Option value="http://localhost/a_a.php?nav=nknsn">7</Option>
<Option value="http://localhost/a_a.php?nav=nknsn">7</Option>
</Select></Form></div>
</td>
<td width="402" align="center" valign="top">
<?php
if(empty($_GET['nav'])) $nav="nknk"; //dghjdghjdghjdghj
$msconnect=@mysql_connect($mshost, $msuser, $mspassword);
@mysql_select_db($msname, $msconnect);
$sql="SELECT * FROM roma WHERE proz='{$nav}'";
$result=@mysql_query($sql, $msconnect);
if(!$result) exit("<div class=\"ss\">blblbl</div>");
$posts=mysql_num_rows($result);
if(!$posts) exit("<div class=\"ss\">blblbl</div>");
$total=intval(($posts-1)/$pnumber)+1; //sghshdfghdfghfdghd
if(!empty($_GET['page']))
{
if($page<=0) $page=1;
elseif($page>$total) $page=$total;
elseif(intval($page<=0)) $page=1;
}
else
{
$page=1;
}
echo "<div class=\"ss\">";
//dfghdfghdfgh
if($page!=1)
{
$pervpage ='<a href='."$_SERVER[PHP_SELF]".'?page='.($page-1)."&nav=".$nav.'>'." "."dghjdgh"." ".'</a>';
echo $pervpage;
}
//'<a href= ./n_kn_k.php?page=1>'." "."|<<"." ".'</a>'
if($page-2>0)
{
$page2left=" "."..."." ".'<a href='."$_SERVER[PHP_SELF]".'?page='.($page-2)."&nav=".$nav.'>'." ".($page-2)." ".'</a>';
echo $page2left;
}
if($page-1>0)
{
$page1left='<a href='."$_SERVER[PHP_SELF]".'?page='.($page-1)."&nav=".$nav.'>'." ".($page-1)." ".'</a>';
echo $page1left;
}
echo "<font color=\"#FF0000\"><b>"." ".$page." "."</b></font>";
if($page+1<=$total)
{
$page1right='<a href='."$_SERVER[PHP_SELF]".'?page='.($page+1)."&nav=".$nav.'>'." ".($page+1)." ".'</a>';
echo $page1right;
}
if($page+2<=$total)
{
$page2right='<a href='."$_SERVER[PHP_SELF]".'?page='.($page+2)."&nav=".$nav.'>'." ".($page+2)." ".'</a>'." "."..."." ";
echo $page2right;
}
if($page!=$total)
{
$nextpage='<a href='."$_SERVER[PHP_SELF]".'?page='.($page+1)."&nav=".$nav.'>'." "."dhgjdg"." ".'</a>';
echo $nextpage;
}
//. '<a href= ./n_kn_k.php?page='.($total).'>'." ".">>|"." ";
echo "</div>";
echo "<br>";
//($i=$pnamber;)
$start=(($page-1)*$pnumber);
$sql="SELECT * FROM roma WHERE proz='{$nav}' LIMIT $start, $pnumber";
$result=@mysql_query($sql, $msconnect);
if(!$result) exit("Error");
if(mysql_num_rows($result)>0)
{
while($row=mysql_fetch_array($result))
{
$pn=$row['pn'];
$proz=$row['proz'];
$calc=$row['calc'];
$name=$row['name'];
$msg=$row['msg'];
$mobile=$row['mobile'];
$email=$row['email'];
echo "
<table width=\"588\">
<tr>
<td>
<div class=\"contur\"><div class=\"end\">
<div class=\"t\">$msg</div>
<div class=\"i\" align=\"right\">$mobile, $name</div>
<br>
<div class=\"i\" align=\"left\">
<a href=\"xpost.php?action=edit&pn=$pn\">"." "."Изменить"." "."</a>
<a href=\"xpost.php?action=delete&pn=$pn\">"." "."Удалить"." "."</a></div>
</div></div></td>
</tr>
</table>";
}
}
?>
</td>
</tr>
</table>
|
и этим файлом обрабатываю:
<?php
include "../../config.php";
if($action=="edit")
{
$msconnect=@mysql_connect($mshost, $msuser, $mspassword);
@mysql_select_db($msname, $msconnect);
$sql="SELECT * FROM roma WHERE pn='$pn'";
$result=@mysql_query($sql, $msconnect);
if(!$result) exit("<div class=\"ss\">blblbl</div>");
$posts=mysql_num_rows($result);
if(!$posts) exit("<div class=\"ss\">blblbl</div>");
while($row=mysql_fetch_array($result))
{
$pn=$row['pn'];
$proz=$row['proz'];
$calc=$row['calc'];
$name=$row['name'];
$msg=$row['msg'];
$mobile=$row['mobile'];
$email=$row['email'];
echo "<table width=\"588\"><tr><td><div class=\"i\" align=\"left\">";
echo "<form action=\"xpost.php\" method=\"post\">"
."<input type=\"hidden\" value=\"".$pn."\" name=\"pn\">"
."<input type=\"hidden\" value=\"ok_edit\" name=\"action\">";
echo "Имя:<br>"."<input style=\"color:#000000; font-style:inherit; background-color:#FFFFFF\" type=\"text\" name=\"name\" size=\"25\" maxlength=\"50\" value=\"".$name."\"><br>";
echo "Телефон:<br>"."<input style=\"color:#000000; font-style:inherit; background-color:#FFFFFF\" type=\"text\" name=\"mobile\" size=\"25\" maxlength=\"50\" value=\"".$mobile."\"><br>";
echo "Текст объявления:<br>"."<TEXTAREA name=\"msg\" style=\"color:#000000; font-style:inherit; background-color:#FFFFFF\" ROWS=7 COLS=70>".$msg."</TEXTAREA><br>";
echo "<input style=\"background-color:#000000; color:#FFFFFF\" type=\"submit\" value=\"Изменить пост\">"."</form>";
echo "</div></td></tr></table>";
}
}
elseif($action=="ok_edit")
{
$name=addslashes($name);
$mobile=addslashes($mobile);
$msg=addslashes($msg);
//$mail=addslashes($mail);
$msconnect=@mysql_connect($mshost, $msuser, $mspassword);
@mysql_select_db($msname, $msconnect);
$sql="update roma set msg='{$msg}' where pn='$pn'";
$result=@mysql_query($sql, $msconnect);
if(!$result) exit("<div class=\"ss\">blblbl".mysql_error()."</div>");
echo "Текст объявления изменен!";
}
//elseif($action=="delete")
//{
//echo "<div class=\"b\" align=\"left\">delete</div>";
//}
?>
|
все просто! | |
|
|
|