2010-10-26 5 views
0

Je veux supprimer une utilisation des données:Supprimer les données ne fonctionne pas

$dbc=mysql_connect(_SRV,_ACCID,_PWD) or die(_ERROR15.": ".mysql_error()); 
    $db=mysql_select_db("qdbase",$dbc) or die(_ERROR17.": ".mysql_error()); 

    switch(postVar('action')) { 
       case 'changedata': 
changedata(postVar('id'),postVar('chlotno'),postVar('chrange'),postVar('chS'),postVar('chA'),postVar('chB'),postVar('chC'),postVar('chstatus')); 
       break; 
     case 'deldata': 
       deldata(postVar('delid')); 
       break; 
       } 

    function changedata($id,$chlotno,$chrange,$chS,$chA,$chB,$chC,$chstatus){ 
     $ID = mysql_real_escape_string($id); 
     $Lot_no = mysql_real_escape_string($chlotno); 
     $Range = mysql_real_escape_string($chrange); 
     $S = mysql_real_escape_string($chS); 
     $A = mysql_real_escape_string($chA); 
     $B = mysql_real_escape_string($chB); 
     $C = mysql_real_escape_string($chC); 
     $Status = mysql_real_escape_string($chstatus); 
     $Lot_no=strtoupper($Lot_no); 
     $Range=strtoupper($Range); 

     $sql = "UPDATE inspection_report SET Lot_no = '".$Lot_no."', Range_sampling = '".$Range."', S = '".$S."', "; 
     $sql.= "A = '".$A."', B = '".$B."', C = '".$C."', Status = '".$Status."' "; 
     $sql.= "WHERE id = ".$ID; 

echo $sql; 
$result=mysql_query($sql) or die(_ERROR26.": ".mysql_error()); 
//echo $result; 
mysql_close($dbc); 
} 
function deldata($id){ 
     $ID = mysql_real_escape_string($id); 
     $sql = "DELETE FROM inspection_report WHERE id = '".$ID."'"; 

echo $sql; 
$result=mysql_query($sql) or die(_ERROR26.": ".mysql_error()); 
//echo $result; 
mysql_close($dbc); 
} 

Je n'ai trouvé aucun message d'erreur dans cette requête et afficher « 200, OK ». Mais les données existent toujours (non supprimées). Pourquoi c'est arrivé? Y a-t-il quelque chose qui ne va pas dans ma requête?

echo $sql:DELETE FROM inspection_report WHERE id = '' 
+3

Vous fermez la connexion DB dans la fonction, où vous établissez la connexion? – codaddict

+0

Pouvez-vous publier les résultats d'origine '$ id' et' echo $ sql' aussi? – richaux

+0

@all: j'ai édité la question – klox

Répondre

1

Hüft désolé ... J'ai fait une erreur stupide, voici ma réponse:

$('#balupdate').click(function() { 
      if ($("#editbaldata").valid()){ 
        var params = $('#editbaldata').serialize(); 
        $.ajax({ 
          async : false, 
          cache : false, 
          data : params, 
          success: function(res) { 

me manque le .serialize()

-1

En PHP $ id et $ ID sont deux variables différentes.

+2

Il utilise '$ ID' dans sa requête sql qui est correcte. – Sarfraz

+1

'$ ID = mysql_real_escape_string ($ id);' – pltvs

+0

C'est vrai. Était trop rapide cette fois :) – Mchl

0

assurez-vous que la variable $ id est le même cas partout, $ id! = $ ID

+0

alors quelle est la meilleure façon pour moi? – klox

+0

'$ ID = mysql_real_escape_string ($ id);' – pltvs

+0

je voudrais faire $ safeId = mysql_real_escape_string ($ id); $ sql = "SUPPRIMER FROM inspection_report WHERE id = '". $ SafeId. "'"; Juste pour s'assurer qu'il n'y a aucune confusion quant à la variable à utiliser –

0

postVar est pas une variable. Essayez d'utiliser $postVar. Si votre postVar est une fonction, donnez-nous le code de cette fonction. Je ne vois pas la fin de la fonction switch.

+0

désolé je oublie de poster la fin du commutateur, mais il ne fonctionne toujours pas, mais pour l'éditer, cela fonctionne. – klox

0

Selon l'écho $ sql, il semble que postVar ('delid') renvoie null.

Vous devriez vérifier votre code et voir si 'delid' est ce que vous passez réellement à votre script ou s'il y a une autre raison pour laquelle il n'est pas défini.

Comment 'delid' est-il défini?

Questions connexes