2017-01-22 3 views
1

Я выбрать некоторые данные из таблицы pre_product, тогда я показать их пользователю, чтобы он нарвать строку и заполнить несколько ящиков, затем я иду обновить pre_product и вставить новые данные в другая таблицаОбновление таблицы MySQL с помощью Php

`anodization` 

enter image description here

проблема, после представления обновленной информации меняется, чтобы быть 0.00000 не значение, что я хочу, чтобы это было. вот мой кратко

<?php 
$pp_select = mysql_query("SELECT * FROM pre_product 
WHERE pre_product_status != 'anodized' 
AND pre_product_status != 'packed'"); 

    while ($row = mysql_fetch_array($pp_select)) 
    { 
     $pp_id[$loop] = $row['pre_product_number']; 
     $pp_date[$loop] = $row['pre_product_date']; 
     $pp_available[$loop] = $row['pre_product_anodization_availabe']; 


     if($submit[$loop]) 
     { 
       /*PRE-PRODUCT DATABASE*/ 
       $available_update[$loop] = $pp_available[$loop] - $weight[$loop]; 
       //Check if pp is fully anodized 
       if($available_update[$loop] == 0) 
        $pp_new_status[$loop] = "anodized"; 
       else $pp_new_status[$loop] = "semi-anodized"; 
       $update_pp = mysql_query("UPDATE pre_product 
                SET pre_product_anodization_availabe = '$available_update[$loop]' 
                AND pre_product_status = '$pp_new_status[$loop]' 
                WHERE pre_product_number = '$pp_id[$loop]' 
                AND pre_product_date = '$pp_date[$loop]'"); 

      } 
     $loop++; 
     } 

код проблема снова, после подачи значение pre_product_anodization_availabe меняется на 0.00000

+0

Каково значение '$ available_update [$ loop]' в этом примере? и что такое «тип» рассматриваемого поля? – IzzEps

+0

$ Доступное обновление [$ loop] должно быть результатом $ pp_available [$ loop] (db_record) - $ weight [$ loop] (user_input), его тип - float (5,5) –

+0

Прекратить использование устаревшего mysql _ API PHP – Strawberry

ответ

0

Вы значение изменяется на 0.00000, потому что вы используете поплавок типа данных (5,5), где второе число - это количество десятичных знаков.

Заканчивать this ресурсов, в частности, следующим образом:

MySQL позволяет нестандартный синтаксис: Float (M, D) или реальной (M, D) или DOUBLE точности (M, D). Здесь (M, D) означает, что значения могут быть сохранены с точностью до M цифр, из которых D цифр могут быть после десятичной точки. Например, столбец, определенный как FLOAT (7,4), будет выглядеть как -999.9999 при отображении. MySQL выполняет округление при сохранении значений, поэтому, если вы вставьте 999.00009 в столбец FLOAT (7,4), приблизительный результат: 999.0001.

+0

, ее ожидали увидеть другие числа, а не нули, это должен быть результат математической операции, что происходит, когда он дает мне нули, каков бы ни был реальный результат и это моя проблема. –

+0

Извините, я неправильно понял. Можете ли вы подтвердить значение $ available_update [$ loop]? Вы уверены, что значение не равно нулю в php? – gwnp

Смежные вопросы