Я новичок в PHP, MYSQL, пытаюсь добавить какие-то данные в таблицу, которую я сделал в коде html и php. моя база данных находится в phpmyadmin, это просто случайный список вещей, таких как канцелярские товары и прочее. Я предоставлю информацию в таблице ниже. Теперь я также сделал вставку, где, если вы нажмете на нее, вы попадете в поля ввода, где вы можете добавить или вставить данные в базу данных. Я повторил, каков был бы результат, если бы вставленные данные действительно были вставлены, и если бы это не сработало, что бы всплыло. Между прочим, у меня нет никаких ошибок, поэтому я действительно не уверен, в чем проблема. Также, пожалуйста, имейте в виду, что мой английский плохой, поэтому я не могу объяснить это должным образом. Вот коды, есть 4 отдельных файла: вот код ссылки на базу данных:
<?php
$servername = 'localhost';
$user ='mysql1_user';
$password ='ABCD1234';
$databasename ='mysqldb1';
$con= mysqli_connect($servername, $user, $password, $databasename);
if (!$con){
die("Wrong Entry for database". mysqli_connect_error());
}
else{
//echo "Correct Entry";
}
?>
вот основной код:
<html>
<head>
<title>MYSQL</title>
<script src = "https://code.jquery.com/jquery-3.3.1.js"
integrity = "sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60 = "
crossorigin = "anonymous"></script>
</head>
<body>
<a href = "f1.php?page=insert">INSERT</a><br><br><br>
<?php
@$v1=$_GET['page'];
if ($v1=='insert'){
$insertp = <<<t1
Name: <input id = "name">
Quantity: <input id = "qty">
Type: <input id = "type">
Price: <input id = "price">
<button id = "add">Add</button>
<script>
$("add").click(function(){
$.post("insert.php", {
name: $("#name").val(),
qty: $("#qty").val(),
type: $("#type").val(),
price: $("#price").val(),
},
function(result){
$("body").append(result);
})
})
</script>
t1;
echo $insertp;
}
else{
require "config/con1.php";
echo "<input type='search'><button id='search'>Search</button>";
$sql1 = "SELECT *FROM products
-- WHERE name='Pen' ORDER BY price DESC WHERE type='Office' AND price BETWEEN 10 and 700 ";
$result= mysqli_query($con, $sql1);
$value = mysqli_num_rows($result);
echo "<table border=2>";
while($line = mysqli_fetch_assoc($result)){
echo "<tr><td>".$line ['name']. "</td><td>".$line["qty"]."</td><td>".$line['type']."</td><td>".$line['price']."</td><td><a href=edit.php?id = ".$line['id']."><img src='pencil.png' width='50'></a></td><td><img src='delete.png' width='50' class='delete' id = ".$line['id']."></td></tr>";
}
echo "</table>";
}
?>
<script>
$("#search").click(function(){
var varval=$("input[type='search']").val();
$.post("search.php", {vtext: varval}, function (value){
$("table").html(value)
})
})
$(".delete").click(function(){
var delid=$(this);
$.post("delete.php", {deleteid:$(this).attr("id")}, function(result){
$(delid).parent().parent().hide(2000)
});
})
</script>
</body>
</html>
Вот где находится код вставки:
<?php
require "config/con1.php";
$name=$_POST['name'];
$qty=$_POST['qty'];
$type=$_POST['type'];
$price=$_POST['price'];
$secure_name=mysqli_real_escape_string($con, $name);
$secure_qty=mysqli_real_escape_string($con, $qty);
$secure_type=mysqli_real_escape_string($con, $type);
$secure_price=mysqli_real_escape_string($con, $price);
$sql = "INSERT INTO products(name, qty, type, price) VALUES ('$secure_name', '$secure_qty', $secure_type, $secure_price)";
if (mysqli_query($con, $sql)){
echo "One detail has been inserted into the database";
}
else{
echo "Wrong ". mysqli_error($con);
}
?>
В операторе SELECT отсутствует пробел. Должен быть один после *.
Хорошо, поэтому я добавил # для добавления в качестве идентификатора, а также пробел после звездочки, и теперь он работает нормально, спасибо!
Урок? Всегда проверяйте, что ваши конечные точки сети (программы php), принимающие операции .post()
, действительно вызываются и содержат нужные вам параметры.
Измените свой запрос INSERT на:
$sql = "INSERT INTO products(name, qty, type, price) VALUES ('$secure_name', '$secure_qty', '$secure_type', '$secure_price')";
$ (‘Add’) должно быть $ (‘# add’). Если вы хотите привязать идентификатор, вам нужно добавить #.
вы проверили наличие ошибок в одном запросе, но не в другом. У вас есть серьезные проблемы с кодированием.