Вычтите массив строк mysql ORDER BY цена, дата из числа, введенного в форму с использованием php - PullRequest
1 голос
/ 03 апреля 2012

Я новичок в php и уже несколько недель ищу этот ответ, но безуспешно. Это только второй форум, на котором я когда-либо писал, и это первый раз на этом форуме. Пожалуйста, пожалуйста, пожалуйста ... это сводит меня с ума.

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

  <form action='sellconfirmorder.php' method='post'>
  Number of Shares to Sell: 
  <input type='text' name='ask_shares_new'><br /><br />

  Lowest Price Per Share You Will Sell: &nbsp
  <input type='text' name='ask_new'>

  <input type='hidden' name='postcardname' value='$postcardname'>
  <input type='submit' name='submit' value='Sell Shares or Place Ask Order'>
  </form>

Тогда страница подтверждения (вот где я застрял) выполнит некоторые математические операции и после отправки обновит мою базу данных.

мне нужно

$query = mysql_query("
        SELECT * 
        FROM ask, search 
        WHERE search.id = ask.card_search_id
        AND search.card_name = '$postcardname' 
        ORDER BY ask_price ASC
  ");

какой-то массив или цикл, начинающийся с первой строки БД и вычитаемый из числа, введенного пользователем.

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

$example_var - first row of array = answer


($example_var - first row of array) - second row of array = answer

($example_var - first row of array - second row of array) - thrid row of array = answer

и так далее, пока не останется только остаток. Мне нужно будет использовать anser для каждого вычитания в моем коде ОБНОВЛЕНИЯ для mysql, и мне нужно будет использовать остаток. Поэтому мне нужно что-то вроде циклов, массивов или их комбинаций, чтобы выполнить математику, а затем использовать эти числа для обновления моей БД. Любая помощь будет отличной. Еще раз спасибо.

1 Ответ

0 голосов
/ 03 апреля 2012
$answers = array();

// Loop though your query result
while( $row = mysql_fetch_row( $query ) )
{
    // if $example_var get's below 0, abort
    if ( $example_var - $row[0] < 0 )
         break;

    // subtract the current row's value
    $example_var -= $row[0];

    // save the answer
    $answers[] = $example_var;
}

$answer будет содержать промежуточный результат каждого вычитания, $example_var будет содержать остаток.

...