Php check if query success

Lets say I have a categories table and then I have products table.

Each product belongs to some category.

Now, I want to remove a category which is assigned to some products.

This will cause an error, because I can not remove something from database because of database relations. My code below removes a row from a table [using jquery] but it removes the category for real only if it no product is using it.

I am trying to create some error warning when I click on Delete icon and the category can not be removed. How can I do that? I would prefer some jQuery popup window with the warning, but I don't really know how should I check for the error in the first place.

EDIT: I have tried to use echo 1; and echo 0; as response for ajax but I am getting the warning message every time I want to remove something, even if there is no error.


   
       
           
           
           
               

Here is script:

$[document].ready[function[]{
   // Delete
   $['.delete_game_cat'].click[function[]{
       var el = this;
       var id = this.id;
       var splitid = id.split["_"];

       // Delete id
       var deleteid = splitid[1];

       // AJAX Request
       $.ajax[{
           url: 'delete_game_cat.php',
           type: 'POST',
           data: { id:deleteid },
           success: function[response]{
                if[response===1]{
                   // Removing row from HTML Table
                   $[el].closest['tr'].css['background','tomato'];
                   $[el].closest['tr'].fadeOut[600, function[]{
                       $[this].remove[];
                   }];
                }else{
                    alert["This category cannot be deleted!"];
                }
           }
       }];
   }];
}];

And sql query:

$id = $_POST['id'];
$query = "DELETE FROM games_category WHERE id =".$id;

if[mysqli_query[$conn, $query]]{
    echo 1;
}else{
    echo 0;
}

[PHP 4, PHP 5]

mysql_querySend a MySQL query

Description

mysql_query[string $query, resource $link_identifier = NULL]: mixed

Parameters

query

An SQL query

The query string should not end with a semicolon. Data inside the query should be properly escaped.

link_identifier

The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect[] is assumed. If no such link is found, it will try to create one as if mysql_connect[] had been called with no arguments. If no connection is found or established, an E_WARNING level error is generated.

Return Values

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query[] returns a resource on success, or false on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query[] returns true on success or false on error.

The returned result resource should be passed to mysql_fetch_array[], and other functions for dealing with result tables, to access the returned data.

Use mysql_num_rows[] to find out how many rows were returned for a SELECT statement or mysql_affected_rows[] to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

mysql_query[] will also fail and return false if the user does not have permission to access the table[s] referenced by the query.

Examples

Example #1 Invalid Query

The following query is syntactically invalid, so mysql_query[] fails and returns false.

Example #2 Valid Query

The following query is valid, so mysql_query[] returns a resource.

ix at nivelzero dot ro

17 years ago

here's a script for parsing a *.sql file [tested only on dumps created with phpMyAdmin] which is short and simple [why do people say "here's a short and simple script" and it has a 100 lines?]. the script skips comments and allows ; to be present within the querys

fernandoleal at loytek dot com

14 years ago

Dunno if is it a bug but when you are working with replications servers and work with multiple databases queries if you don't select the database it will only insert,update,delete into the master and bypass the slave, I think it its because it doesn't insert the sql on the binary log so the work around its to just call mysql_select_db
MYSQL : 5.0.51a-log
PHP: 5.2.6
Example:

Chủ Đề