Issue
I have a search engine that I found on google and I would like to search in the 'barcode' database that I have and if it finds the person it executes the code that is under $statement (I added that code under $statement that wasn't include in the code that I found), I'm not interested in an echo of the information, that is why I eliminated that part and placed with a refresh, I would only be interested in executing the changes in the sql once it finds the person you are looking for, it does not have to be the code like this below, I really don't know how to do it and I'm here for help.
<?php
include 'includes/conn.php';
include 'includes/scripts.php';
if (isset($_POST['no'])) {
$sca=trim($_POST['no'],"");
$credentials="";
$new2 ="SELECT * FROM `barcode`";
$mysqli = new $conn;
$statement= $mysqli->prepare("Insert IGNORE into voters
Select * from barcode where id = id;
DELETE from barcode where id IN(SELECT id from voters)");
$res2=mysqli_query($conn, $new2);
while($row=mysqli_fetch_array($res2)){
if($row['credentials'] == $sca){
$statement->execute();
header("refresh: .5");
}
}
}
$statement->close();
mysqli_close($conn);
?>
Solution
It's not clear what your Insert logic is and what exactly you want to insert but let me give you how I would structure such a query (including some safeguards such as prepared statements) and hopefully you can just change the SQL statements based on what you need. I have left comments on most rows to explain
<?php
include 'includes/conn.php';
include 'includes/scripts.php';
if (isset($_POST['no'])) {
$sca=trim($_POST['no'],"");
$credentials="";
$sql = "SELECT * FROM `barcode`";
$mysqli = new $conn;
// Prepare the statement
$stmt = $mysqli->prepare($sql);
// Attempt to execute
if ($stmt->execute()) {
// Save result
$result = $stmt->get_result();
// save the result in an assoc array
$row = $result->fetch_all(MYSQL_ASSOC);
// If there is a returned entry
if (count($row) > 0) {
if ($row['credentials'] === $sca) {
// close the statement so we can re-use
$stmt->close();
// We assume id is what we need
$id = $row['id'];
// Now you have to fix your INSERT statement here. I am not sure what you need to insert but follow the general docs on how to insert https://www.php.net/manual/en/mysqli-stmt.bind-param.php
$stmt = $mysqli->prepare("INSERT IGNORE INTO `voters` (columnName) VALUES (?)");
// Here you need to decide what you are inserting and change the variable
$stmt->bind_param("s", $whatever_variable_you_insert);
// Attempt to execute
if ($stmt->execute()) {
// if successful, proceed with the deletion too... or you can put it outside this execute condition
$stmt->close();
// Prepare the delete statement
$stmt = $mysqli->prepare("DELETE FROM `barcode` WHERE id=?");
// Bind the param
$stmt->bind_para("s", $id);
if ($stmt->exceute()) {
// something else or as you wanted - refresh
header("refresh: .5");
}
}
}
}
}
}
?>
Answered By - Djongov Answer Checked By - Candace Johnson (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.