|
|
|
| У меня возник следующий вопрос. В гостевой книге делаю информацию о пользователе:
следующим образом:
$query = "SELECT id_user FROM userlist WHERE name='$postrow[i]['name']'";
//где i будит известно только ниже
$nme = mysql_query($query);
if(!$nme) exit(mysql_erorr());
$id = mysql_result($nme, 0);
|
Как можно 'технично' это вписать в следующий код:
$result = mysql_query("SELECT * FROM guestbook ORDER BY puttime DESC LIMIT $start, $num");
while ( $postrow[] = mysql_fetch_array($result))
for($i = 0, $num = count($postrow)-1; $i < $num; $i++)
{
echo "
<table width='100%' height='98' border='0'>
<tr>
<td height='94'>
<table width='100%' border='0' bgcolor='#808080'>
<tr valign='top'>
<td width='9%' valign='top'><p align='center'><strong><font color='#FFFFFF'><a href=../info.php?id_user=$id>".$postrow[$i]['name']."</a></font></strong></p></td>
<td width='45%'><strong><font color='#FFFFFF'>[ ".$postrow[$i]['puttime']." ] лично для ".$postrow[$i]['privat']."</font></strong></td>
<td width='15%'><div align='center'><strong><font color='#FFFFFF'>wwww</font></strong></div></td>
<td width='6%'><div align='right'><strong><font color='#FFFFFF'>qqqqq</font></strong></div></td>
<td width='10%'><div align='center'><strong><font color='#FFFFFF'>ssssss</font></strong></div></td>
</tr>
<tr>
<td colspan='5' valign='top'> <table width='100%' border='0'>
<tr>
<td height='37' align='left' valign='middle' bgcolor='#C0C0C0'>
<blockquote>
<br>
<p><font color='#333300'>".trim($postrow[$i]['msg'])."<br>$user_name[add]</font></p>
</blockquote></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>";
|
| |
|
|
|
|
|
|
|
для: Roo$
(05.09.2006 в 23:15)
| |
<?php
//где i будит известно только ниже
?>
|
вот этот момент не очень понятен... | |
|
|
|
|
|
|
|
для: cheops
(06.09.2006 в 12:33)
| | Беру id пользователя из БД userlist где его имя = имени из БД guestbook
$query = "SELECT id_user FROM userlist WHERE name='$postrow[i]['name']'";
//где i будит известно только ниже
$nme = mysql_query($query);
if(!$nme) exit(mysql_erorr());
$id = mysql_result($nme, 0);
В гостевой книге по нажатию по имени отправителя у меня должно открывться окно с инфой о пользователе. <a href=../info.php?id_user=$id>".$postrow[$i]['name']."</a>. | |
|
|
|
|
|
|
|
для: Roo$
(05.09.2006 в 23:15)
| | А откуда у Вас уверенность, что name из guestbook и name из userlist - это один и тот же человек? | |
|
|
|
|
|
|
|
для: Trianon
(06.09.2006 в 12:36)
| | Сообщения добавляют только зарегестрированные пользователи | |
|
|
|
|
|
|
|
для: Roo$
(06.09.2006 в 20:54)
| | тогда в таблице guestbook имеет смысл хранить id пользователя, а не только его имя | |
|
|
|
|
|
|
|
для: Trianon
(06.09.2006 в 21:38)
| | Как я об этом не подумал?....Спасибо за совет...
Допустим это будит сслка на удаление..... Как ее сделать? <a href=../fo.php?id_user=$id>www (удалить)</a>.
Создать еще одну страничку для обработки запроса? | |
|
|
|
|
|
|
|
для: Roo$
(06.09.2006 в 21:57)
| | Подскажите как сделать запрос на удаление всей страки из БД guestbook | |
|
|
|
|
|
|
|
для: Roo$
(06.09.2006 в 22:23)
| | Как сделать так чтобы ссылка редактирования сообщения была активна только возле тех сообщений пользователь которых ее написал. <td width='10%'><div align='center'><strong><font color='#FFFFFF'>ssssss (редактирование)</font></strong></div></td> (см.выше) | |
|
|
|
|
|
|
|
для: Roo$
(06.09.2006 в 23:14)
| | Эх,.... Никто мне не поможит? | |
|
|
|
|
|
|
|
для: Roo$
(06.09.2006 в 23:14)
| | нужно опираться на id текущего пользователя. Не автора реплики, а того, чей запрос Вы обарбатываете. Где Вы его держите? | |
|
|
|
|
|
|
|
для: Trianon
(07.09.2006 в 11:34)
| | Сейчас у меня реплики ПРАВКА, УДАЛИТЬ есть на каждом сообщении. А мне нужно чтобы они были только на тех сообщениях пользователь которых их (сообщений) написал. | |
|
|
|
|
|
|
|
для: Roo$
(07.09.2006 в 19:18)
| | Это не разговор. Все сообщения написал какой нибудь пользователь. Так что теперь - на все сообщения ссылки ставить?
Реплики и сообщения в моем понимании - одно и тоже. Синонимы. | |
|
|
|
|
|
|
|
для: Trianon
(07.09.2006 в 19:25)
| | Вот так у меня выгладит сообщения в гостнв. Ссылка Редактирования должна будит появляться только на тех сообщениях пользователь который ее написал. | |
|
|
|
|
|
|
|
для: Roo$
(07.09.2006 в 19:36)
| | Вы не ответили на вопрос. Где хранится id текущего пользователя?
Того, который авторизован в системе? . | |
|
|
|
|
|
|
|
для: Trianon
(07.09.2006 в 19:25)
| | Эту проверку я делаю следующим образом
$resulta = mysql_query("SELECT * FROM guestbook WHERE name='$ulogin' ");
$postrowa = mysql_fetch_array($resulta) ;
$qw=$postrowa['name'];
If (qw==$ulogin) {a="Редактирование"}
else
{
a="";
}
id пользователя хронится в guestbook и userlist | |
|
|
|
|
|
|
|
для: Roo$
(07.09.2006 в 19:46)
| | А $ulogin откуда берется? | |
|
|
|
|
|
|
|
для: Trianon
(07.09.2006 в 19:51)
| | $ulogin это имя зарегестрирован. пользователя, которое хронится в куках.
$ulogin = $HTTP_COOKIE_VARS["name"]; | |
|
|
|
|
|
|
|
для: Roo$
(07.09.2006 в 19:54)
| | Но пароль-то должен проверяться где-то? Эдак любой себе в куки Ваше имя затолкает и писать будет вместо Вас! | |
|
|
|
|
|
|
|
для: Trianon
(07.09.2006 в 19:56)
| | Это все я проверяю при открытии самой страницы guest.php | |
|
|
|
|
|
|
|
для: Trianon
(07.09.2006 в 19:56)
| | Вот сам код главной странички..... Мне нужно чтобы cсылки Цитирование и Удалить были на тех сообщениях пользователь которых их сам и написал...
Помоги пож. Я уже 3-й день над этой задачей бьюсь и без результатно. | |
|
|
|
|
|
|
|
для: Roo$
(07.09.2006 в 22:59)
| | нужно еще посмотреть addmsg.php
Если будет - завтра гляну. | |
|
|
|
|
 15.7 Кб |
|
|
для: Trianon
(07.09.2006 в 23:33)
| | Вот... addmsg.php | |
|
|
|
|
|
|
|
для: Trianon
(07.09.2006 в 23:33)
| | И возможно что еще понадовится файл addsql.php (он выполняется после нажатия в addmsg.php) | |
|
|
|
|
|
|
|
для: Roo$
(07.09.2006 в 23:41)
| |
<?php
error_reporting(0);
include "../config.php";
$ulogin_id = @mysql_result(mysql_query("SELECT id_user FROM userlist where name='$ulogin'"),0);
?>
|
<?php
for($i = 0, $num = count($postrow)-1; $i < $num; $i++)
{
$edit_ref = '';
$del_ref = '';
if($postrow[i]['id_user'] == $ulogin)
$edit_ref ="<a href=../editmsg.php?id=".$postrow[i]['id_msg']." >Правка</a>";
if($postrow[i]['id_user'] == $ulogin)
$del_ref ="<a href=../delmsg.php?id=".$postrow[i]['id_msg']." >Удаление</a>";
echo "
<table width='100%' height='98' border='0'>
<tr>
<td height='94'>
<table width='100%' border='0' bgcolor='#808080'>
<tr valign='top'>
<td width='9%' valign='top'><p align='center'><strong><font color='#FFFFFF'><a href=../info.php?id_user=".$postrow[$i]['id_user'].">".$postrow[$i]['name']."</a></font></strong></p></td>
<td width='45%'><strong><font color='#FFFFFF'>[ ".$postrow[$i]['puttime']." ] лично для ".$postrow[$i]['privat']."</font></strong></td>
<td width='15%'><div align='center'><strong><font color='#FFFFFF'>Цитирование</font></strong></div></td>
<td width='6%'><div align='right'><strong><font color='#FFFFFF'>$del_ref</font></strong></div></td>
<td width='10%'><div align='center'><strong><font color='#FFFFFF'>$edit_ref</font></strong></div></td>
</tr>
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 11:05)
| | А зачем мы делаем этот запрос, если он в дольгейшем у нас ни как не связан
$ulogin_id = @mysql_result(mysql_query("SELECT id_user FROM userlist where name='$ulogin'"),0); | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 13:59)
| | ошибся слегка.
if($postrow[i]['id_user'] == $ulogin_id)
$edit_ref ="<a href=../editmsg.php?id=".$postrow[i]['id_msg']." >Правка</a>";
if($postrow[i]['id_user'] == $ulogin_id)
$del_ref ="<a href=../delmsg.php?id=".$postrow[i]['id_msg']." >Удаление</a>";
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 14:01)
| | Вообще ничего не выводит (ни надписи удалить ни правка) | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 14:07)
| | Первый индекс у массива $postrow должен быть $i.
if($postrow[$i]['id_user'] == $ulogin)
$edit_ref ="<a href=../editmsg.php?id=".$postrow[$i]['id_msg']." >Правка</a>";
if($postrow[$i]['id_user'] == $ulogin)
$del_ref ="<a href=../delmsg.php?id=".$postrow[$i]['id_msg']." >Удаление</a>";
|
попробуйте в целях отладки вывести номера:
$edit_ref = "$ulogin/$ulogin_id/";
$del_ref = $postrow[$i]['name'].'/'.$postrow[$i]['id_user'];
if($postrow[$i]['id_user'] == $ulogin)
$edit_ref ="<a href=../editmsg.php?id=".$postrow[$i]['id_msg']." >Правка</a>";
if($postrow[$i]['id_user'] == $ulogin)
$del_ref ="<a href=../delmsg.php?id=".$postrow[$i]['id_msg']." >Удаление</a>";
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 14:16)
| | НА всех сообщениях (и другихпользователей) выводит следующее / 74/7/
где 74 - это имя пользователя, а 7 - его id | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 14:23)
| | . | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 14:23)
| | похоже, надо вынуть имя из кукисов. Это в начале скрипта
$ulogin = $HTTP_COOKIE_VARS["glusername"];
$ulogin_id = @mysql_result(mysql_query("SELECT id_user FROM userlist where name='$ulogin'"),0);
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 14:43)
| | Куки я с самого начала и вынимал.
Щас у меня выдает следующее...
Там где должна быть правка : 321/6 - это имя отправителя сообщения (на каждом сообщении разное, как и должно быть)
Там где должно быть удаление : 321// - это имя под которым я сейчас захожу в гостевую (на все сообщениях оно одинаково) | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 14:52)
| | У меня правка заработала
if($postrow[$i]['name'] == $ulogin)
$edit_ref ="<a href=../editmsg.php?id=".$postrow[$i]['id_msg']." >Правка</a>"; | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 14:54)
| | У меня все заработало :
$edit_ref = "$ulogin/$ulogin_id/";
$del_ref = $postrow[$i]['name'].'/'.$postrow[$i]['id_user'];
if($postrow[$i]['name'] == $ulogin)
$edit_ref ="<a href=../editmsg.php?id=".$postrow[$i]['id_msg']." >Правка</a>";
if($postrow[$i]['name'] == $ulogin)
$del_ref ="<a href=../delmsg.php?id=".$postrow[$i]['id_msg']." >Удаление</a>";
Но если закаментировать
$edit_ref = "$ulogin/$ulogin_id/";
$del_ref = $postrow[$i]['name'].'/'.$postrow[$i]['id_user'];
Опять вообще ничего не будит работать. | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 15:00)
| | Все я разобрался
$edit_ref = "";
$del_ref = "";
Большое спасибо за помощь... Сам бы я в жизни не дапер | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 14:54)
| | if($postrow[$i]['name'] == $ulogin)
так писать нельзя.
Если у пользователей в последствии будут меняться имена - можно таких дров наломать... | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 15:18)
| | Я об этом не подумал... Надо значит по его id? Но как тогда? | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 15:21)
| | Тогда надо отлаживать первый запрос.
$ulogin = $HTTP_COOKIE_VARS["glusername"];
echo "Current login: $ulogin <br>";
$sql = "SELECT id_user FROM userlist WHERE name='$ulogin'";
$res = mysql_query($sql) or die("Error in $sql: " .mysql_error());
$users_found = mysql_num_rows($res);
$ulogin_id = 0;
echo "$users_found users found. ";
if($users_found) $ulogin_id = mysql_result($res,0);
echo "First login_id = $ulogin_id <br>";
|
| |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 15:55)
| | Current login: 74
Error in SELECT id_user FROM userlist WHERE name='74': No Database Selected | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 15:57)
| | Значит разместить этот кусок надо ниже по тексту. Там, где база данных уже выбрана.
Где она у Вас выбирается, из приведеного текста мне не видно | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 16:00)
| | Вот дурак... Как я сам не догодался... Вот что получилось
Current login: 321
1 users found. First login_id = 6 | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 16:03)
| | теперь убирайте отладочные операторы echo,
а внизу ставьте
$edit_ref = '';
$del_ref = '';
if($postrow[$i]['id_user'] == $ulogin_id)
$edit_ref ="<a href=../editmsg.php?id=".$postrow[$i]['id_msg']." >Правка</a>";
if($postrow[$i]['id_user'] == $ulogin_id)
$del_ref ="<a href=../delmsg.php?id=".$postrow[$i]['id_msg']." >Удаление</a>";
|
| |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 16:03)
| | Вот и нашли ошибку....Невинмательность...... Я строчку
$ulogin_id = @mysql_result(mysql_query("SELECT id_user FROM userlist where name='$ulogin'"),0);
Встовлял перед include "config.php";
Сейчас все заработало.....
Большое спасибо....
Теперь подскажи как мне сделать запрос на удаление самоого сообщения из БД.
Создавать новую страничку del.php который будит выполнять сам код удаления... Или можно сделать и без нее? | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 16:07)
| | 1 создавать страницу delmsg.php c кодом удаления реплики из БД.
2 создавать страницу editmsg.php c кодом формы редактирования реплики.
3 создавать страницу update.php c кодом, который обновляет строку в таблице, записывая туда данные формы предыдущего скрипта.
PS лучше создать новую тему. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 16:15)
| | Запрос на обнавления я знаю
$query1="UPDATE guestbook SET myname = '$myname',...............";
А запрос на удаление подскажи..........
$query1=" | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 16:20)
| |
$query1="DELETE FROM guestbook WHERE id_msg = $id";
|
либо, если предполагается удаление сразу нескольких реплик, выделенных через чекбоксы, например, то:
$query1="DELETE FROM guestbook WHERE id_msg IN ($id_list)";
|
$id_list при этом содержит номера через запятую. '8,12,13,20' | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 16:25)
| | Огромное спасибо за помощь. Буду доделывать..... Я не прощаюсь.... | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 16:25)
| | Удаление сообщений сделал а вот с правкой сообщения что то не получается...
$id = intval($_GET['id']);
$query2 = mysql_query ("Select * FROM guestbook WHERE id_msg = '$id' LIMIT 1");
if(mysql_num_rows($query2) == 1)
{
$user = mysql_fetch_assoc($query2);
$user_msg = $user['msg'];
}
$umsg=$_POST["umsg"];
<form name = "Frm" action="index.php" method="post" >
<textarea name="umsg" style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Helvetica; margin-right: 8; margin-left: 8; height: 200; width:540 ;margin-bottom: 0;BORDER-COLOR: black; BORDER-WIDTH: 1px;BORDER-STYLE:solid" rows="1" cols="20"><? echo $user_msg;?></textarea>
<input type="submit" value="Îòïðàâèòü" style = "FONT-SIZE: 11px; FONT-FAMILY: Verdana, Helvetica; margin-left: 8;width: 100; height: 20; BACKGROUND-COLOR: powderblue ;BORDER-STYLE:solid; BORDER-WIDTH: 1px;" />
</form>
$query7="UPDATE guestbook set msg = '$umsg' where id_msg = '$id' ";
mysql_query($query7);
|
ТО сообщение которое редактируется все время оказывается пустым (после редактирования)
Посмотрите пож. можит что то не так делаю.. | |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 19:47)
| | Я же говорил....
<?php // editmsg.php
mysql_query ("Select ....
echo "<form action='update.php' .....
<textarea name=umsg ...> $umsg </textarea>
</form>";
?>
|
<?php // update.php
mysql_query ("Select .... чтобы проверить, можно ли пользователю редактировать эту реплику
mysql_query ("Update .... чтобы внести изменения
header("Location: .... чтобы перейти на страницу с индексом.
?>
|
это, как Вы понимаете, набросок. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 19:54)
| | ТЫ мне можишь объяснить почему так не работает. Почему параметр $umsg = $_POST['umsg']; не передается в $query3="UPDATE guestbook set msg = '$umsg' where id_msg = '$id' ";
<?php
include "../config.php";
$id = intval($_GET['id']);
$query2 = mysql_query ("Select * FROM guestbook WHERE id_msg = '$id' LIMIT 1");
if(mysql_num_rows($query2) == 1)
{
$user = mysql_fetch_assoc($query2);
$user_msg = $user['msg'];
}
$umsg = $_POST['umsg'];
?>
<form name = "Frm" enctype="multipart/form-data" action="index.php" method="post" >
<p><textarea name="umsg" style="FONT-SIZE: 11px; FONT-FAMILY: Verdana, Helvetica; margin-right: 8; margin-left: 8; height: 200; width:540 ;margin-bottom: 0;BORDER-COLOR: black; BORDER-WIDTH: 1px;BORDER-STYLE:solid" rows="1" cols="20"><? echo $user_msg;?></textarea></p>
<input type="hidden" name="MAX_FILE_SIZE" value="1048576"/>
<input type="submit" value="Îòïðàâèòü" style = "FONT-SIZE: 11px; FONT-FAMILY: Verdana, Helvetica; margin-left: 8;width: 100; height: 20; BACKGROUND-COLOR: powderblue ;BORDER-STYLE:solid; BORDER-WIDTH: 1px;" />
<?php
$query3="UPDATE guestbook set msg = '$umsg' where id_msg = '$id' ";
mysql_query($query3);
?>
</form>
|
| |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 20:50)
| | потому что форма <form .... action="index.php" будет обработана скриптом index.php . И только в нем возникнет $_POST с её полями. Не ранее. | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 20:56)
| | Все понял.... А как тогда я передам в update.php $id = intval($_GET['id']); Который у меня в editmsg.php
$id = intval($_GET['id']);
$query2 = mysql_query ("Select * FROM guestbook WHERE id_msg = '$id' LIMIT 1");
if(mysql_num_rows($query2) == 1)
{
$user = mysql_fetch_assoc($query2);
$user_msg = $user['msg'];
}
|
| |
|
|
|
|
|
|
|
для: Roo$
(08.09.2006 в 21:05)
| | передавайте его в скрытом поле echo "<input type=hidden name=id value=$id />";
ловить в update.php будете не в $_GET, а в в $_POST['id'] | |
|
|
|
|
|
|
|
для: Trianon
(08.09.2006 в 21:09)
| | Я незнал что так можно. Большое спасибо | |
|
|
|
|
|
|
|
для: Roo$
(06.09.2006 в 21:57)
| | Вы кого хотите удалять? Пользователя или реплику?
Если реплику, зачем передавать в ссылке id пользователя? | |
|
|
|
|
|
|
|
для: Roo$
(05.09.2006 в 23:15)
| | Вот это есть единный код. Мне нужно чтобы <a href=../fo.php?id_user=$id>".$postrow[$i]['name']."</a>.
А гогда запускаю код на исполнение и навожу на эту ссылку то после слова ?id_user= ничего не отображается
$query = "SELECT id_user FROM userlist WHERE name='$postrow[i]['name']'";
//где i будит известно только ниже
$nme = mysql_query($query);
if(!$nme) exit(mysql_erorr());
$id = mysql_result($nme, 0);
$result = mysql_query("SELECT * FROM guestbook ORDER BY puttime DESC LIMIT $start, $num");
while ( $postrow[] = mysql_fetch_array($result))
for($i = 0, $num = count($postrow)-1; $i < $num; $i++)
{
echo "
<table width='100%' height='98' border='0'>
<tr>
<td height='94'>
<table width='100%' border='0' bgcolor='#808080'>
<tr valign='top'>
<td width='9%' valign='top'><p align='center'><strong><font color='#FFFFFF'><a href=../info.php?id_user=$id>".$postrow[$i]['name']."</a></font></strong></p></td>
<td width='45%'><strong><font color='#FFFFFF'>[ ".$postrow[$i]['puttime']." ] лично для ".$postrow[$i]['privat']."</font></strong></td>
<td width='15%'><div align='center'><strong><font color='#FFFFFF'>wwww</font></strong></div></td>
<td width='6%'><div align='right'><strong><font color='#FFFFFF'>qqqqq</font></strong></div></td>
<td width='10%'><div align='center'><strong><font color='#FFFFFF'>ssssss</font></strong></div></td>
</tr>
<tr>
<td colspan='5' valign='top'> <table width='100%' border='0'>
<tr>
<td height='37' align='left' valign='middle' bgcolor='#C0C0C0'>
<blockquote>
<br>
<p><font color='#333300'>".trim($postrow[$i]['msg'])."<br>$user_name[add]</font></p>
</blockquote></td>
</tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>";
|
| |
|
|
|