2014-01-06 2 views
0

Я создаю пятно на своем веб-сайте своих клиентов, чтобы они могли размещать вакансии для бизнеса. Я хочу дать им возможность редактировать задание, если они ошибаются после публикации.Обновление сообщения с использованием php mysql

Мой вопрос в том, как я могу достичь этого. Или еще лучше, как я могу вытащить информацию из моей базы данных, чтобы я мог ее редактировать или сохранять?

Это то, что я пробовал:

Чтобы получить все началось здесь скриншот моей базы данных.

База данных phpMyAdmin Таблица называется «наем» без кавычек. enter image description here

Я использую 3 файлов/страниц, чтобы попытаться получить это обновление. Первый называется модификация-employment.php

<?php 
$title = 'Modify Employment Opportunities'; 
$page_description = "We offer a complete dock service, rip rap installations, barge service, and custom built breakwaters."; 
$thisPage="employment"; 
include_once($_SERVER['DOCUMENT_ROOT']."/admin/adminheader.php"); 
include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php"); 
/* be safe, not sorry */ 
foreach ($_REQUEST as $k => $v) { 
    $_REQUEST[$k] = mysql_real_escape_string($v); 
} 
/* take cat from url if exists */ 
$category = @$_REQUEST["category"] ? $_REQUEST["category"] : null; 
$images = mysql_query(
    $category ? 
     sprintf(
      "SELECT * FROM hire WHERE data_type = '%s'", 
      $category 
     ) : 
     "SELECT * FROM hire" 
); 
if ($images) { 
    $total = mysql_num_rows($images); 
    if ($total) { 
     $per = 4; 
     $page = @$_REQUEST["page"] ? $_REQUEST["page"] : 1; 
     $pages = ceil($total/$per); 
    } 
    mysql_free_result($images); 
} 
?> 

misc code... 


<section class="grid_8"> 

<ul class="clearfix"> 


<?php 
if ($category) { 
    $images = mysql_query(sprintf(
     "SELECT * FROM hire WHERE data_type = '%s' ORDER BY id DESC LIMIT %d, %d", 
     $category, ($page - 1) * $per, $per 
    )); 
} else $images = mysql_query(sprintf(
    "SELECT * FROM hire ORDER BY id DESC LIMIT %d, %d", 
    ($page - 1) * $per, $per 
)); 

while ($image=mysql_fetch_array($images)) 
{ 
    ?> 
<li data-id="id-<?=$image["id"] ?>"> 
<article class="box white-bg"> 
<h2 class="red3-tx"><?=$image["title"] ?> <span class="date-posted blue2-tx"><?=$image["date"] ?></span></h2> 
<div class="dotline"></div> 
<p class="blue3-tx"><?=$image["description"] ?><br /> 
<br /> 

For more information please call ###-###-####.</p> 


<h4 class="btn-green"><a href="http://<?php echo $_SERVER['SERVER_NAME']; ?>/admin/remove-job-post.php?value=<?=$image["id"] ?>">Delete</a></h4> 

<h4 class="btn-green"><a href="http://<?php echo $_SERVER['SERVER_NAME']; ?>/admin/update-employment.php?value=<?=$image["id"] ?>">Update</a></h4> 
</article> 
</li> 
    <?php 
} 
?> 

Вот скриншот того, что вышеприведенные выглядит как: enter image description here

Итак, используя следующую строку кода:

<h4 class="btn-green"><a href="http://<?php echo $_SERVER['SERVER_NAME']; ?>/admin/update-employment.php?value=<?=$image["id"] ?>">Update</a></h4> 

Я нажимаю кнопку обновления и находит номер идентификатора сообщений. Нажимая кнопку «Обновить», он принимает меня до file # 2 «update-emploment.php» Я хочу, чтобы эта страница привела данные из исходного задания, чтобы я мог редактировать и сохранять информацию. Здесь я теряюсь. Вот мой код для обновления-employment.php

<?php 
$title = 'Admin Employment Opportunities'; 
$page_description = "Add description in here."; 
$thisPage="employment"; 
include_once($_SERVER['DOCUMENT_ROOT']."/admin/adminheader.php"); 
include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php"); 
/* be safe, not sorry */ 
foreach ($_REQUEST as $k => $v) { 
    $_REQUEST[$k] = mysql_real_escape_string($v); 
} 
/* take cat from url if exists */ 
$category = @$_REQUEST["category"] ? $_REQUEST["category"] : null; 
$images = mysql_query(
    $category ? 
     sprintf(
      "SELECT * FROM hire WHERE data_type = '%s'", 
      $category 
     ) : 
     "SELECT * FROM hire" 
); 
if ($images) { 
    $total = mysql_num_rows($images); 
    if ($total) { 
     $per = 4; 
     $page = @$_REQUEST["page"] ? $_REQUEST["page"] : 1; 
     $pages = ceil($total/$per); 
    } 
    mysql_free_result($images); 
} 
?> 

misc code.... 

<form method="post" action="update-hire.php"> 
<input type="hidden" name="ud_id" style="width: 100%" value="<? echo "$id"; ?>" /> 

<div class="grid_6 botspacer60 "> 

Position Title: <input type="text" name="ud_title" value="<?php echo "$title"; ?>"/> 
<br /><br /> 

Date Posted: <input type="text" name="ud_date" value="<? echo "$date"; ?>"/> 
<br /><br /> 

Position Details:<br /> 
<textarea name="ud_description" rows="8"><?php echo str_replace("<br />",chr(13),$des); ?><? echo "$description"; ?></textarea> 
</div> 


<div class="grid_12"> 

<input type="submit" value="Update" class="button orange" /> <div class="float-right"><input type="button" name="Cancel" value="Cancel" class="button orange" onclick="window.location = '/admin' " /></div> 
</div></form> 

только часть работы, которая получает пост отражаемый в это название, не титул в моей базе данных, но заголовок страницы. Смотрите Изображение:

enter image description here

Тогда для действия формы я использую файл # 3: действие = "обновление-hire.php

<?php 
include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php"); 

$ud_id = $_POST['ud_id']; 
$ud_date = $_POST['ud_date']; 
$ud_title = $_POST['ud_title']; 
$ud_description = $_POST['ud_description']; 
$ud_description = nl2br(htmlspecialchars($_POST['description'])); 

// Insert record into database by executing the following query: 
$query="UPDATE hire SET title='$ud_title', description='$ud_description', date='$ud_date' "."WHERE id='$ud_id'"; 
$retval = mysql_query($sql); 

echo "The position has been updated.<br /> 
<a href='modify-employment.php'>Update another position.</a><br />"; 

mysql_close(); 
?> 

Я новичок в PHP и пытается учиться самостоятельно, но я потратил целый день, пытаясь заставить это работать, поэтому я подумал, что увижу, если кто-то один Stack сможет мне помочь, так как в прошлом я нашел здесь несколько полезных людей. help Я был бы признателен. Спасибо!

+0

Что такое ошибка, которую вы получаете при попытке обновления? – Roger

ответ

1

Я не могу взять на себя ответственность за это, поскольку друг помог мне разобраться в этом, но я не хотел оставлять этот вопрос без ответа. Надеюсь, это может помочь кому-то другому.

Мой первый файл модификации-employment.php

Это было прекрасно.


второй файл обновления-emploment.php требуется некоторая работа.

Я прокомментировал исходный код и удалил много кода из верхней части файла.

<?php 
$title = 'Admin Employment Opportunities'; 
$page_description = "Add description in here."; 
$thisPage="employment"; 
include_once($_SERVER['DOCUMENT_ROOT']."/admin/adminheader.php"); 
include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php"); 
?> 

Notice there was much code removed here. 

misc code.... 


    <div class="row"> 
     <?php 
$date = ""; 
$post_title = ""; 
$description = ""; 
$id = $_GET['value']; 
/* $query = "SELECT * FROM hire WHERE id='$id'"; */ 
/* $result = mysql_query("SELECT * FROM hire WHERE id=".$id.""); */ 
$result = mysql_query("SELECT * FROM hire WHERE id='$id'"); 

$date   = mysql_result($result,$i,"date"); 
$post_title  = mysql_result($result,$i,"title"); 
$description = mysql_result($result,$i,"description"); 

/* while($row = mysql_fetch_assoc($result)) { 
    $date = $row->date; 
    $post_title = $row->title; 
    $description = $row->description; 

} */ 
?> 

<form method="post" action="update-hire.php"> 
<input type="hidden" name="ud_id" style="width: 100%" value="<? echo "$id"; ?>" /> 

<div class="grid_6 botspacer60 "> 

Position Title: <input type="text" name="ud_title" value="<?php echo "$post_title"; ?>"/> 
<br /><br /> 

Date Posted: <input type="text" name="ud_date" value="<? echo "$date"; ?>"/> 
<br /><br /> 

Position Details:<br /> 
<textarea name="ud_description" rows="8"><?php echo str_replace("<br />",chr(13),$des); ?><? echo "$description"; ?></textarea> 
</div> 


<div class="grid_12"> 

<input type="submit" value="Update" class="button orange" /> <div class="float-right"><input type="button" name="Cancel" value="Cancel" class="button orange" onclick="window.location = '/admin' " /></div> 
</div></form> 

третий файл, файл действия: обновление-hire.php

Я закомментирована исходного кода.

<?php 
include($_SERVER['DOCUMENT_ROOT'] . "/connections/dbconnect.php"); 

$ud_id   = $_POST['ud_id']; 
$ud_date  = $_POST['ud_date']; 
$ud_title  = $_POST['ud_title']; 
$ud_description = $_POST['ud_description']; 
/* $ud_description = nl2br(htmlspecialchars($_POST['description'])); */ 

// Insert record into database by executing the following query: 
$query="UPDATE hire SET title='$ud_title', description='$ud_description', date='$ud_date' "."WHERE id='$ud_id'"; 

mysql_query($query); 

/* $retval = mysql_query($sql); */ 

echo "The position has been updated.<br /> 
<a href='modify-employment.php'>Update another position.</a><br />"; 

mysql_close(); 
?> 

Всё. Работает, как я хотел.

1

В вашем update-employment.php вам необходимо определить свои переменные. Добавьте это где-то в файле

$date = ""; 
$post_title = ""; 
$description = ""; 
$id = $_GET['id']; 
$result = mysql_query("SELECT * FROM hire WHERE id=".$id.""); 
while($row = mysql_fetch_assoc($result)) { 
    $date = $row->date; 
    $post_title = $row->title; 
    $description = $row->description; 

} 

А затем изменить эту строку, чтобы быть вот так:

Position Title: <input type="text" name="ud_title" value="<?php echo "$post_title"; ?>"/> 

При посещении страницы, добавить идентификатор = 1, чтобы выбрать идентификатор сообщения?. Замените 1 на любой желаемый идентификатор.

+0

Что бы я здесь поместил? ИДЕНТИФИКАТОР ЗДЕСЬ? Я знаю идентификатор, но как бы я его вызвал? – cwd

+0

обновленный ответ. –

+0

так на моей странице изменения занятости добавьте это в мою кнопку обновления: '

Update

' Верно ли это? Просто попробовал, и он просто выбирает id 1 ..? – cwd

Смежные вопросы