PHP / MYSQL Добавить кнопку в столбец - PullRequest
0 голосов
/ 13 июня 2011

ColumnOne   ColumnTwo   ColumnThree Columnfour  Columnfive    ColumnSix
one           two          three       four        0        'Button Here'

Как вы можете видеть выше, у меня есть шесть столбцов, пять из которых содержат какой-то текст, а шестой столбец должен содержать кнопку.Моя конечная цель состоит в том, чтобы шестой столбец содержал три кнопки, как показано на рисунке ЗДЕСЬ .Эти кнопки позволят мне редактировать, удалять и, возможно, еще одну функцию.

На данный момент мне просто интересно, как сделать так, чтобы кнопка отображалась в последнем столбце с использованием моего кода ниже:

<?php

// Create variables to retrieve the POST data

$ID= $_POST['Input1'];
$Email= $_POST['Input2'];
$Name= $_POST['Input3'];
$Company= $_POST['Input4'];
$Price= $_POST['Input5'];

// Connect to the database

mysql_connect ("localhost","Username","Password") or die ('Error: ' . mysql_error());

echo "connected to database!";

mysql_select_db ("Database");

// Insert data into table

$query = "INSERT INTO CustomerInformation (ID, Email,Name,Company,Price,Tab Count,Action) VALUES(
'NULL', '".$ID."', '".$Email."', '".$Name."', '".$Company."', '".$Price."', "Form input type = "button" (something like this!) )";

// Above is my best attempt... I'm sure it's nowhere close (sorry!).

mysql_query($query) or die ('Error updating database');

echo "Database updated successfully!";

?>

Ответы [ 2 ]

2 голосов
/ 13 июня 2011

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

<?php
// Connect to the database

mysql_connect ("localhost","Username","Password") 
  or die ('Error: ' . mysql_error());

echo "connected to database!";

mysql_select_db ("Database");

// Insert data into table

$Email= mysql_real_escape_string($_POST['Input2']);
$Name= mysql_real_escape_string($_POST['Input3']);
$Company= mysql_real_escape_string($_POST['Input4']);
$Price= mysql_real_escape_string($_POST['Input5']);

$action = mysql_real_escape_string('insert php code for button here');

$query = "INSERT INTO CustomerInformation 
         (Email,Name,Company,Price,Tab Count,Action) 
         VALUES
         ('$Email', '$Name', '$Company', '$Price', '$action') ";
mysql_query($query) or die ('Error updating database');

echo "Database updated successfully!";

?>

Обратите внимание, что вам не нужно вставлять id в таблицу.Если у вас есть поле автоинкремента id, MySQL автоматически создаст для вас идентификатор.
mysql_real_escape_string() экранирует значения для вас.Всегда окружайте ваш $var в запросе ' одинарными кавычками или mysql_real_escape_string() будет не работать!И никогда не используйте его для имен столбцов / таблиц или баз данных, только для значений.

См. Эти вопросы для получения дополнительной информации:

Внедрение SQL в целом: Как работает встраивание SQL из комикса XKCD "Таблицы Бобби"?
защитапротив внедрения SQL при использовании динамических имен таблиц: Как предотвратить внедрение SQL с динамическими именами таблиц?

0 голосов
/ 13 июня 2011

Ну, вам понадобится одна или две вещи (зависит ...).Вам, вероятно, придется назвать кнопку отправки:

<input type="submit" name="delete" value="Delete this ugly thing" />

Чем в PHP, вы можете сделать это, если:Вы также должны будете добавить вход с идентификатором записи.Это немного сложнее, потому что форма покрывает всю таблицу, и вы не знаете, какой идентификатор выбрать для ввода.Одним из возможных решений является присвоение имени кнопке ввода идентификатором записи, например:

<input type="submit" name="delete_5" value="Delete this ugly thing" />

Чем в PHP вы могли бы сделать это:

foreach ($_POST as $name => $value) {
    if (preg_match("/^delete_[0-9]+$/", $name)) {
        $idArray = explode("_", $name);
        $id = addSlashes($idArray[1]);

        mysql_query("DELETE FROM ... WHERE id = '" . $id . "'");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...