Я делаю CRUD для простого домашнего приложения, и по какой-то причине я не могу выяснить, что не так в коде. Моя страница создания продукта не создает продукт, потому что он ничего не размещает, в моей локальной среде PHP 5.3.2 Mamp Pro и в сети на сервере это тоже не работает. Я пытался как с созданием и обновлением страниц, и ничего. Так как я действительно НОВИНКА для ООП и ржавая в PHP и mysql, я публикую код, чтобы вы могли рассказать мне, что с ним не так.
--
-- Table structure for table `products1`
--
CREATE TABLE IF NOT EXISTS `products1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL,
`description` text NOT NULL,
`price` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;
--
-- Table structure for table `menu`
--
CREATE TABLE IF NOT EXISTS `menu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 NOT NULL,
`parent_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=136 ;
<?php
echo "<div class='right-button-margin'>";
echo "<a href='test.php' class='btn btn-default pull-right'>Ver Todos los Productos</a>";
echo "</div>";
?>
<?php
// get database connection
include_once 'config/database.php';
$database = new Database();
$db = $database->getConnection();
// if the form was submitted
if($_POST){
// instantiate product object
include_once 'objects/product.php';
$product = new Product($db);
// set product property values
$product->name = $_POST['name'];
$product->price = $_POST['price'];
$product->description = $_POST['description'];
$product->category_id = $_POST['category_id'];
// create the product
if($product->create()){
echo "<div class=\"alert alert-success alert-dismissable\">";
echo "<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">×</button>";
echo "Creamos el producto!";
echo "</div>";
}
// if unable to create the product, tell the user
else{
echo "<div class=\"alert alert-danger alert-dismissable\">";
echo "<button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">×</button>";
echo "No pude crear el producto!";
echo "</div>";
}
}
?>
<!-- HTML form for creating a product -->
<form action='create_product.php' method='post'>
<table class='table table-hover table-responsive table-bordered'>
<tr>
<td>Nombre</td>
<td><input type='text' name='name' class='form-control' required></td>
</tr>
<tr>
<td>Costo</td>
<td><input type='text' name='price' class='form-control' required></td>
</tr>
<tr>
<td>Descripción</td>
<td><textarea name='description' class='form-control'></textarea></td>
</tr>
<tr>
<td>Categoría</td>
<td>
<?php
// Test connection and list
try {
$objDb = new PDO('mysql:host=111.111.111.111;dbname=nat', 'nat', '123');
$objDb->exec('SET CHARACTER SET utf8');
$sql = "SELECT *
FROM `menu`
WHERE `parent_id` = 0";
$statement = $objDb->query($sql);
$list = $statement->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
echo 'There was a problem';
}
// end// read the product categories from the database
include_once 'objects/category.php';
$category = new Category($db);
// $stmt = $category->read();
// put them in a select drop-down DISABLED not working
/* echo '<select class="update" name="category" id="category">';
echo "<option>Seleccioná la categoría...</option>";
while ($row_category = $stmt->fetch(PDO::FETCH_ASSOC)){
extract($row_category);
echo "<option value='{$id}'>{$name}</option>";
}echo "</select>";*/
?>
<select name="category" id="category" class="form-control update">
<option value="">Seleccionar Categoría</option>
<?php if (!empty($list)) { ?>
<?php foreach($list as $row) { ?>
<option value="<?php echo $row['id']; ?>">
<?php echo $row['name']; ?>
</option>
<?php } ?>
<?php } ?>
</select><select name="level1" id="level1" class="form-control update"disabled="disabled">
<option value="">----</option>
</select>
<select name="level2" id="level2" class="form-control update"disabled="disabled">
<option value="">----</option>
</select>
<select name="level3" id="level3" class="form-control update"disabled="disabled">
<option value="">----</option>
</select>
<select name="level4" id="level4" class="form-control update"disabled="disabled">
<option value="">----</option>
</select>
<select name="level5" id="level5" class="form-control update"disabled="disabled">
<option value="">----</option>
</select>
<select name="level6" id="level6" class="form-control update"disabled="disabled">
<option value="">----</option>
</select>
</td>
</tr>
</td>
</tr>
<tr>
<td></td>
<td>
<button type="submit" class="btn btn-primary">Crear</button>
</td>
</tr>
</table>
Помимо этого я хочу знать, что такое самая низкая самая важная подкатегория передается в POST, поэтому продукт назначен на него.
Задача ещё не решена.
Других решений пока нет …