Автор Тема: Help  (Прочитано 3265 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Салажонок

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help
« : 05 Марта 2002, 08:20:07 »
Помогите пожалуйста написать такой фрагмент PHP-кода:

1. На странице редактирования два поля "Тема" и "Линк". В поле "Тема" заносится название темы, а в поле "Линк" ссылка на страницу данной темы.
2. Соответственно, в таблице MySQL "test" два столбца "tema" и "link".
3. На странице "Просмотр" вместо двух строк "Тема" и "Линк", должна быть одна строка "Тема", но если было заполнено поле "Линк", то название темы преобразуется как нормальная ссылка, т.е. в любом случае отображается название темы либо как просто текст либо как ссылка.

Заранее признателен за помошь.

Салажонок

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Help
« Ответ #1 : 05 Марта 2002, 09:59:15 »

<?
print (
$link) ? \'<a href="\'.$link.\'">\'.$tema.\'</a>\' : $tema;
?>
Евгений aka Razor,

  • Гость
Подскажите пожалуйста, где ошибка.
« Ответ #2 : 05 Марта 2002, 17:19:30 »
Спасибо Евгений!

*******************************************
CREATE TABLE test ( test_id INT NOT NULL AUTO_INCREMENT,
   PRIMARY KEY ( test_id ),
   test_descr VARCHAR(255),
   test_link  VARCHAR(255)
   );


***********************************************


$Code;

$host="localhost";
$login="root";
$passwd="root";

$Link = mysql_connect($host,$login,$passwd);

//------------------------------------------------------------------------------

if (!empty($edit_link)) { // {{{

//------------------------------------------------------------------------------

if ($edit_link==1) { // Edit


$Code .= "Add record
";
$Code .= "Back
";

if ($add_record==1) {
 $Query = "insert into test (test_descr,test_link) values (\'new record\',\'new link\')";
 $Result = mysql_query($Query);
 Header("Location: ".$PHP_SELF."?edit_link=1");
}

if (!empty($test_id)) {

 if (!empty($test_descr)) {
  $Query = "UPDATE test set test_descr=\'".$test_descr."\', test_link=\'".$test_link."\' where test_id=".$test_id;
  $Result = mysql_query($Query);
  Header("Location: ".$PHP_SELF."?edit_link=1");
 }

 $Query = "select * from test where test_id=".$test_id ." ORDER BY test_id";
 $Result = mysql_query($Query);
 $Data = @mysql_fetch_array ($Result,0);
 
 $Code .=
 "
 
 Descr:

  Link:

 
  ";

// Header("Location: ".$PHP_SELF."?edit_link=1");
}

$Code .= "

";

$Query = "select * from test ORDER BY test_id";
$Result = mysql_query($Query);

while ($Data = @mysql_fetch_array ($Result,$Row)) {
  $Code .= "";
 
  $Row++;
 }
 
 
 
}

//------------------------------------------------------------------------------

if ($edit_link==2) { // Look

$Code .= "

".$Data["test_descr"]."".$Data["test_link"]."".
"Edit"
  ."
";

$Query =
"select * from test ORDER by test_id";
$Result = mysql_query($Query);
 while ($Data = @mysql_fetch_array ($Result,$Row)) {
 $IsLink = true;
 if (rtrim($Data["test_link"])=="") {
  $IsLink = false;
 }
  $Code .= "";
 
  $Row++;
 }
 
 $Code .= "
".
  (($IsLink)? (""):("

")) .
  $Data["test_descr"] .
  (($IsLink)?"
":"

") . "
";
 
}

//------------------------------------------------------------------------------

} else {

//------------------------------------------------------------------------------

$Code .= "Edit
";
$Code .= "Look
";

//------------------------------------------------------------------------------

} // }}}

//------------------------------------------------------------------------------

print $Code;


?>

Оффлайн Салажонок

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
К сожалению, нет ни сообщений об ошибках, но скрипт не работает.

Может причина в моих не правильных настойках?

Только вчера переинсталлировал PHP 4.1.1.

Кто-нибудь протестируйте, пожалуйста у себя.

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help
« Ответ #4 : 05 Марта 2002, 20:07:21 »
вот мой вариант решения:

<?php
error_reporting
(E_ALL);
$host "localhost";
$user "root";
$pass "";
$db "test";

if(!(
$cn = @mysql_connect($host$user$pass))) {
	
echo 
"Не возможно подключиться к серверу";
	
exit;
}
if(!@
mysql_select_db($db$cn))
	
{
	
echo 
"Не возможно открыть БД";
	
exit;
}


if(isset(
$act) && !empty($act)) {
	
switch(
$act) {
	
	
case 
"edit":
	
	
// форма
	
	
	
$descr null$link null;
	
	
	
if(isset(
$id) && !empty($id)) {
	
	
	
	
$query "SELECT * FROM test WHERE test_id=\'$id\'"
	
	
	
	
// (необходимо добавить проверку $id) ^^^^^^^^^
	
	
	
	
$res mysql_query($query);
	
	
	
	
if(
mysql_errno()!=0) {
	
	
	
	
	
echo 
"MySQL err: ".mysql_error()." [".$query."]";
	
	
	
	
	
exit;
	
	
	
	
}
	
	
	
	
if(
mysql_num_rows($res)!=0) {
	
	
	
	
	
$row mysql_fetch_row($res);
	
	
	
	
	
$id $row[0];
	
	
	
	
	
$descr $row[1];
	
	
	
	
	
$link $row[2];
	
	
	
	
}
	
	
	
}
	
	
	
else {
	
	
	
	
$id null;
	
	
	
}
?>
	
	
	
	
<form action="?act=save" method="POST">
	
	
	
	
<input type="hidden" name="id" value="<?=$id?>">
	
	
	
	
Descr: <input type="text" name="descr" value="<?=$descr?>">

	
	
	
	
Link: <input type="text" name="link" value="<?=$link?>">

	
	
	
	

<input type="submit" value="save">
	
	
	
	
</form>
	
	
	
<?
	
	
	
break;
	
	
case 
"save";
	
	
// сохранить
	
	
	
// (необходимо добавить проверку всех вводимых данных)
	
	
	
if(
$id=="")
	
	
	
	
$query "INSERT INTO test (test_descr,test_link) VALUES (\'$descr\', \'$link\')";
	
	
	
else
	
	
	
	
$query "UPDATE test SET test_descr=\'$descr\', test_link=\'$link\' WHERE test_id=\'$id\'";

	
	
	
$res mysql_query($query);
	
	
	
if(
mysql_errno()!=0) {
	
	
	
	
echo 
"MySQL err: ".mysql_error()." [".$query."]";
	
	
	
	
exit;
	
	
	
}
	
	
	
header("Location: $PHP_SELF");
	
	
	
break;
	
	
case 
"rem";
	
	
	
// удалить
	
	
	
$query "DELETE FROM test WHERE test_id=\'$id\'";
	
	
	
// (необходимо добавить проверку $id) ^^^^^^^^^
	
	
	
$res mysql_query($query);
	
	
	
if(
mysql_errno()!=0) {
	
	
	
	
echo 
"MySQL err: ".mysql_error()." [".$query."]";
	
	
	
	
exit;
	
	
	
}
	
	
	
header("Location: $PHP_SELF");
	
	
	
break;
	
	
default:
	
	
	
echo 
"Не верно указано действие";
	
}
}
else {
	
$query "SELECT * FROM test";
	
$res mysql_query($query);
	
if(
mysql_errno()!=0) {
	
	
echo 
"MySQL err: ".mysql_error()." [".$query."]";
	
	
exit;
	
}
	
if(
mysql_num_rows($res)!=0) {
	
	
while(
$row mysql_fetch_row($res)) {
	
	
	
if(
$row[2]=="")
	
	
	
	
echo 
$row[1];
	
	
	
else
	
	
	
	
echo \
'<a href="\'.$row[2].\'">\'.$row[1].\'</a>\';
	
	
	
echo \' [<a href="?act=edit&id=\'.$row[0].\'">edit</a>]\';
	
	
	
echo \' [<a href="?act=rem&id=\'.$row[0].\'">rem</a>]\';
	
	
	
echo "
\\n";
	
	
}
	
}
	
echo \'
<a href="?act=edit">Add</a>\'."
\\n";
}

?>


PS. если что - на мыло (dmq@mailru.com) или на асю (76555967)
с уважением,
магистр белой магии.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28