2010-11-08 6 views
0
$result = mysql_query("UPDATE orders SET order_id='".$data['order_id']."',project_ref='".$data['project_ref']."',supp_short_code='".$data['supp_short_code']."',om_part_no='".$data['om_part_no']."',description='".$data['description']."',quantity='".$data['quantity_input']."',cost_of_items='".$data['cost_of_items']."',cost_total='".$data['cost_total_td']."' WHERE order_id = '".$data['order_id']."'") or die(mysql_error()); 

Bizarrement tous ses champs à "2" (la valeur de order_id) j'essaye de créer une page "d'ordres d'édition" mais elle ne va pas à la planification !?PHP Mysql instruction de mise à jour avec intégré _POST

EDIT:

Comment j'envoyer les données à PHP:

$('#submit').live('click',function(){ 

         var postData = {}; 
         postData['data[order_id]'] = $('#order_id').text(); 
         $('#items tr').not(':first').each(function(index, value) { 
          var keyPrefix = 'data[' + index + ']'; 
          postData[keyPrefix + '[supp_short_code]'] = $(this).closest('tr').find('.supp_short_code').text(); 
          postData[keyPrefix + '[project_ref]'] = $(this).closest('tr').find('.project_ref').text(); 
          postData[keyPrefix + '[om_part_no]'] = $(this).closest('tr').find('.om_part_no').text(); 
          postData[keyPrefix + '[description]'] = $(this).closest('tr').find('.description').text(); 
          postData[keyPrefix + '[quantity_input]'] = $(this).closest('tr').find('.quantity_input').val(); 
          postData[keyPrefix + '[cost_of_items]'] = $(this).closest('tr').find('.cost_of_items').text(); 
          postData[keyPrefix + '[cost_total_td]'] = $(this).closest('tr').find('.cost_total_td').text(); 
         }); 

        $.ajax 
         ({ 
         type: "POST", 
         url: "updateorder.php", 
         dataType: "json", 
         data: postData, 
         cache: false, 
         success: function() 
          { 
           alert("Order Updated"); 
          } 
         }); 
       }); 

complet Code PHP:

if (isset($_POST['data']) && is_array($_POST['data'])) { 
        foreach ($_POST['data'] as $row => $data) { 
         $result = mysql_query("UPDATE orders SET project_ref='".$data['project_ref']."',supp_short_code='".$data['supp_short_code']."',om_part_no='".$data['om_part_no']."',description='".$data['description']."',quantity='".$data['quantity_input']."',cost_of_items='".$data['cost_of_items']."',cost_total='".$data['cost_total_td']."' WHERE order_id = '".$data['order_id']."'") or die(mysql_error()); 
        } 
       } 
       var_dump($data); 
+0

1/Je ne comprends rien à votre question, 2/un google-look à "injection sql php mysql" et vous apprenez comment vous ne perdrez pas votre travail/stage/projet. Et je pense que le problème est lorsque vous construisez votre tableau de données $, votre demande (sauf le grand trou de sécurité) ne semble pas fausse. –

+3

Bonjour petit bobby :) – RobertPitt

+1

Que montre 'var_dump ($ data)'? – Quassnoi

Répondre

0
  1. Ceci est dangereux. Vous devriez échapper toutes les valeurs envoyées à MySQL, en utilisant mysql_real_escape_string
  2. A quoi ressemblent les données? Etes-vous sûr (e) que $data contient les bonnes valeurs?
  3. À quoi ressemble la requête générée avant qu'elle ne soit envoyée à MySQL?
  4. Il n'y a pas besoin de mettre à jour le order_id (merci, Fosco)
+0

4. Ne mettez pas à jour le order_id, cela n'a aucun sens. – Fosco

Questions connexes