Jump to content

Delete Stmt not deleting or going to header location


Recommended Posts

Hi, I have a delete function and it's not deleting or going to my header location, any idea what I'm not doing right?

 

<?php
require("../config.php");


// DELETE ROW

function del ($conn) {

   if(isset($_GET['ID']) && $_GET['ID'] == "$ID")
    $stmt->query("DELETE FROM contacts WHERE ID = '$ID'");
	header('Location: ' . $_SERVER['HTTP_REFERER']);
}


?>

Link to comment
Share on other sites

For starters, use brackets for conditionals.

if(isset($_GET['ID']) && $_GET['ID'] == "$ID") {
$stmt->query("DELETE FROM contacts WHERE ID = '$ID'");
header('Location: ' . $_SERVER['HTTP_REFERER']);
}

 

Where are you defining $ID?

 

The function parameter is $conn, but you are using $stmt.

Link to comment
Share on other sites

For starters, use brackets for conditionals.

if(isset($_GET['ID']) && $_GET['ID'] == "$ID") {
$stmt->query("DELETE FROM contacts WHERE ID = '$ID'");
header('Location: ' . $_SERVER['HTTP_REFERER']);
}

 

Where are you defining $ID?

 

The function parameter is $conn, but you are using $stmt.

 

If I change it to the following, I'm defining ID in the function, is that right? And your other question...

The function parameter is $conn, but you are using $stmt.
. I changed it to $mysql, does that make a difference? I'm not sure what you mean, bare with me I'm learning! With my select functions, I did function name() { //somthing... }

 

I'm very confused and trying to understand..I had this working until I put my db connection in a class yesterday...now everything is bonkers.

 

<?php
require("../style/inc/config.php");

// DELETE ROW

function del ($conn) {

$ID = $_GET['ID'];

   if(isset($_GET['ID']) && $_GET['ID'] == "$ID") {
    $mysqli->query("DELETE FROM contacts WHERE ID = '$ID'");
	header('Location: ' . $_SERVER['HTTP_REFERER']);
}
}

?>

Link to comment
Share on other sites

If I change it to the following, I'm defining ID in the function, is that right?

 

No, now you are attempting to use $_GET['ID'] before the if conditional which checks to see if it is available. You need to put the assignment inside the if conditional.

if(isset($_GET['ID']) && $_GET['ID'] == $ID) {
    $ID = $_GET['ID'];

 

I changed it to $mysql, does that make a difference?

 

No, it needs to be $conn - because that is what you used for the function parameter.

 

I'm very confused and trying to understand..I had this working until I put my db connection in a class yesterday

 

Can we see that?

Link to comment
Share on other sites

DB Conn

 

<?php

class DatabaseConn {

	public function __construct($host, $username, $pword, $db) {
		if (!@$this->Connect($host, $username, $pword, $db)) {
			echo 'Connection failed.';
		}	
	}


	public function Connect($host, $username, $pword, $db) {
		if(!mysqli_connect($host, $username, $pword, $db)) {
			return false;
		}	else {
			return true;
		}
	}

}

$conn = new mysqli('localhose', 'user', 'pass', 'db')

?>

Link to comment
Share on other sites

That class is doing absolutely nothing, and you're not even instantiating it.

 

Wow...I'm really messed up...where can you point me or what can you show me?

 

So I have a config file with my db connection and it's in a class called DatabaseConn. I've add this to my delete.php page by " require("/config.php");"

 

In my delete.php file, I would also need put $db = new DatabaseConn, so my delete.php starts like this, right?

 

require("/config.php");"
$db = new DatabaseConn();

 

This is what you mean, right?

Link to comment
Share on other sites

simple one for you then?

 

    <?php
    class Database{
    private $host;
    private $user;
    private $pwd;
    private $rows;
    private $error;
    private $result;
    private $dbName;
    private $connection;
    private $isReady;
     
    public function __construct(){
    $this->result = null;
    $this->isReady = false;
    $this->error = array();
    }
    public function __destruct(){ @mysql_close($this->connection); }
     
    /* setters */
    public function setHost($host){ $this->host = $host; }
    public function setUser($user){ $this->user = $user; }
    public function setPassword($pwd){ $this->pwd = $pwd; }
    public function setDbName($dbName){ $this->dbName = $dbName; }
     
    /* other interfaces */
    public function init($host=null,$user=null,$pwd=null,$dbName=null){
    if(!isset($host,$user,$pwd,$dbName))
    die("Please provide require settings.");
    $this->setHost($host);
    $this->setUser($user);
    $this->setPassword($pwd);
    $this->setDbName($dbName);
    $this->isReady = true;
    }
     
    public function select($dbName){
    $this->setDbName($dbName);
    mysql_select_db($this->dbName,$this->connection) or die("The said database does not exist.");
    }
     
    public function query($sql){
    $this->result = mysql_query($sql,$this->connection) or die("Invalid query string!");
    }
     
    public function connect(){
    if(!$this->isReady) die("not ready to connect");
    $this->connection = mysql_connect($this->host,$this->user,$this->pwd) or die("Could not connect to database. please check your credentials.");
    $this->select($this->dbName);
    $this->query("SET NAMES 'utf8'",$this->connection); //persian support
    }
     
    public function isConnected(){
    if($this->connection)
    return true;
    return false;
    }
     
    public function disconnect(){
    mysql_close($this->connection);
    $this->connection = null;
    }
     
    public function countRows($selectMode = true){
    if($selectMode)
    return mysql_num_rows($this->result);
    return mysql_affected_rows($this->connection);
    }
     
    public function loadRows(){
    if(!$this->result) die("Nothing found!");
    $this->rows = array();
    while($r = mysql_fetch_array($this->result,MYSQL_BOTH))
    $this->rows[] = $r;
    mysql_free_result($this->result);
    return $this->rows;
    }
     
    public function siftDown($dataStack){
    if(!is_array($dataStack)){
    $dataStack = ereg_replace("[\'\")(;|`,<>]","",$dataStack);
    $dataStack = mysql_real_escape_string(trim($dataStack),$this->connection);
    $dataStack = stripslashes($dataStack);
    return $dataStack;
    }
    $safeData = array();
    foreach($dataStack as $p=>$data){
    $data = ereg_replace("[\'\")(;|`,<>]","",$data);
    $data = mysql_real_escape_string(trim($data),$this->connection);
    $data = stripslashes($data);
    $safeData[$p] = $data;
    }
    return $safeData;
    }
     
    public function secure($data){
    return sha1(md5(sha1(md5(sha1($data)))));
    }
    }//Database class
    ?>
     
    <?php //usage
    require_once 'path/to/Database.class.php';
    $db = new Database(); //Creating new object
    $db->init("localhost","test_root","test_pwd!","test_db"); //initializing by credentials.
    $db->connect(); //unicode support
    $test_value = $db->siftDown($test_value); //preventing harmful inputs
    $something_testy_else = $db->siftDown($something_testy_else);
    $db->query("SELECT * FROM test_table WHERE test_field = '$test_value' AND second_test_field = '$something_testy_else' LIMIT 1");
    if($db->countRows()==1)
    $dbdata = $db->loadRows(); //returns a numeric/associative array as the result (MYSQL_BOTH)
    //TODO: To Process $dbdata
    $db->disconnect();
    ?>

Link to comment
Share on other sites

besides that fact that my class doesn't do anything and it's not instantiated...how do I get this code to delete my user?

 

function mymy ($conn) {

    if(isset($_GET['ID']) && $_GET['ID'] == "$ID")

$ID = $_GET['ID'];

    $conn->query("DELETE FROM contacts WHERE ID = '$ID'");
	header('Location: ' . $_SERVER['HTTP_REFERER']);
}

Link to comment
Share on other sites

how do I get this code to delete my user?

 

For future reference, this question is WAY too vague. I can answer it correctly and accurate by simply responding 'by writing the code that executes a query to delete the user.'

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.