выберите запись из mysql_fetch_assoc после помещения в таблицу - PullRequest
0 голосов
/ 04 ноября 2011

не уверен, насколько это возможно, но я только что свернул свою собственную форму поиска пользователей, которая просто запрашивает мою базу данных и возвращает все результаты с любым заданным именем пользователя или аналогичным, используя оператор LIKE 'some_username%'.

Мой поиск работает отлично, и я действительно доволен собой, поскольку я новичок в php и mysql.

Я использовал оператор mysql_fetch_assoc ($ result), а затем использовал цикл while для вывода каждой строкииз базы данных в HTML-таблицу.

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

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

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

Большое спасибо !!Eds

Ответы [ 2 ]

0 голосов
/ 04 ноября 2011

всегда начинайте php вот так

0 голосов
/ 04 ноября 2011

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

просто создайте гиперссылку

<a href="edit.php?id=1">name</a>

Вот пример эскиза такого приложения, редактирующего только одно поле, но вы также можете добавить любое число:

основной скрипт:

<?  
mysql_connect(); 
mysql_select_db("new"); 
$table = "test"; 
if($_SERVER['REQUEST_METHOD']=='POST') { //form handler part: 
  $name = mysql_real_escape_string($_POST['name']); 
  if ($id = intval($_POST['id'])) { 
    $query="UPDATE $table SET name='$name' WHERE id=$id"; 
  } else { 
    $query="INSERT INTO $table SET name='$name'"; 
  } 
  mysql_query($query) or trigger_error(mysql_error()." in ".$query); 
  header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);  
  exit;  
}  
if (!isset($_GET['id'])) { //listing part: 
  $LIST=array(); 
  $query="SELECT * FROM $table";  
  $res=mysql_query($query); 
  while($row=mysql_fetch_assoc($res)) $LIST[]=$row; 
  include 'list.php'; 
} else { // form displaying part: 
  if ($id=intval($_GET['id'])) { 
    $query="SELECT * FROM $table WHERE id=$id";  
    $res=mysql_query($query); 
    $row=mysql_fetch_assoc($res); 
    foreach ($row as $k => $v) $row[$k]=htmlspecialchars($v); 
  } else { 
    $row['name']=''; 
    $row['id']=0; 
  } 
  include 'form.php'; 
}  
?>

и два простых шаблона, отвечающих за вывод,
один для отображения формы, form.php

<? include TPL_TOP ?>
<form method="POST">
<input type="text" name="name" value="<?=$row['name']?>"><br>
<input type="hidden" name="id" value="<?=$row['id']?>">
<input type="submit"><br>
<a href="?">Return to the list</a>
</form>
<? include TPL_BOTTOM ?>

и один для отображения списка, list.php

<? include TPL_TOP ?>
<a href="?id=0">Add item</a>
<? foreach ($LIST as $row): ?>
<li><a href="?id=<?=$row['id']?>"><?=$row['name']?></a>
<? endforeach ?>
<? include TPL_BOTTOM ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...