2010-05-21 3 views
0

J'ai pris un script jQuery qui supprimerait les divs sur un clic, mais je veux implémenter la suppression des enregistrements d'une base de données MySQL. Dans le delete.php:jQuery et MySQL

<?php 

$photo_id = $_POST['id']; 

$sql = "DELETE FROM photos 
    WHERE id = '" . $photo_id . "'"; 

$result = mysql_query($sql) or die(mysql_error()); 

?> 

Le script jQuery:

$(document).ready(function() { 
    $('#load').hide(); 
}); 

$(function() { 
$(".delete").click(function() { 
$('#load').fadeIn(); 
var commentContainer = $(this).parent(); 
var id = $(this).attr("id"); 
var string = 'id='+ id ; 

$.ajax({ 
    type: "POST", 
    url: "delete.php", 
    data: string, 
    cache: false, 
    success: function(){ 
commentContainer.slideUp('slow', function() {$("#photo-" + id).remove();}); 
$('#load').fadeOut(); 
    } 

}); 

return false; 
}); 
}); 

Le div disparaît lorsque je clique dessus, mais après que j'actualisez la page, il apparaît à nouveau ...

Comment l'obtenir pour le supprimer de la base de données?

EDIT: Woopsie ... a oublié d'y ajouter le fichier db.php, donc cela fonctionne maintenant>. <

+0

Lol, j'aime ça: P – MacMac

+0

Où est la connexion à la base de données et la prévention de l'injection sql –

Répondre

0

Vous avez vos données en tant que chaîne GET, mais vous utilisez une requête POST, essayez de changer votre variable de chaîne à un objet. Comme:

$(document).ready(function() { 
    $('#load').hide(); 
}); 

$(function() { 
$(".delete").click(function() { 
$('#load').fadeIn(); 
var commentContainer = $(this).parent(); 
var id = $(this).attr("id"); 
var string = { id : id }; 

$.ajax({ 
    type: "POST", 
    url: "delete.php", 
    data: string, 
    cache: false, 
    success: function(){ 
commentContainer.slideUp('slow', function() {$("#photo-" + id).remove();}); 
$('#load').fadeOut(); 
    } 

}); 

return false; 
}); 
}); 

plus J'espère que vous préparez votre connexion MySQL correctement dans votre PHP, vous ne pouvez pas appeler mysql_query et nous espérons qu'elle saura quelle base de données que vous voulez dire, et comment s'y connecter par lui-même :)

Regardez @Quotidien réponse! :)

+0

Cela ne fonctionne pas? – MacMac

+0

Peu importe, fait un moment de blonde ... édité post – MacMac

1

Il n'y a aucun moyen que le php se rapproche du fonctionnement. Où est la base de données? Découvrez http://www.php.net/manual/en/mysql.examples-basic.php à partir de laquelle vous pouvez voir qu'il y a plus à la base de données que juste une requête.

<?php 
// Connecting, selecting database 
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password') 
    or die('Could not connect: ' . mysql_error()); 
echo 'Connected successfully'; 
mysql_select_db('my_database') or die('Could not select database'); 

// Performing SQL query 
$query = 'SELECT * FROM my_table'; 
$result = mysql_query($query) or die('Query failed: ' . mysql_error()); 

// Printing results in HTML 
echo "<table>\n"; 
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    echo "\t<tr>\n"; 
    foreach ($line as $col_value) { 
     echo "\t\t<td>$col_value</td>\n"; 
    } 
    echo "\t</tr>\n"; 
} 
echo "</table>\n"; 

// Free resultset 
mysql_free_result($result); 

// Closing connection 
mysql_close($link); 
?> 
+0

Est-ce que vous essayez de m'apprendre à utiliser PHP et MySQL avec des bases de données? LOL Je sais déjà comment faire des choses comme ça ... – MacMac

+0

De toute évidence pas. Sql injection –