Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: мин и макс для массива
 
 автор: celovec   (04.03.2012 в 20:46)   письмо автору
 
 

если в цикле выводинтся пременная инвно


while($row = mysql_fetch_array($result))
{
$invno = $row['invno'];

$filename = $row['filename'];


echo"
<tr>
<td><input type=\"text\" size=\"10\" name=\"invno_".$invno."\" value=$invno></td>


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

$speedArr=array();
$speedArr[202]=array('speed'=>26000, 'count'=>75);
$speedArr[203]=array('speed'=>12750, 'count'=>145);
$speedArr[208]=array('speed'=>7800, 'count'=>1);

$arr = array();
foreach($speedArr as $key => $value)
$arr[] .= $value['speed'];

echo max($arr);
echo min($arr);
echo"<br>";


в коде другие массивы, так как я не представляю как туда подставить мой массив.

  Ответить  
 
 автор: cheops   (04.03.2012 в 21:00)   письмо автору
 
   для: celovec   (04.03.2012 в 20:46)
 

Пока не очень понятно, что вызывает затруднение? А самое главное, какой массив мы формируем? Речь идет о $speedArr?

  Ответить  
 
 автор: celovec   (04.03.2012 в 21:17)   письмо автору
 
   для: cheops   (04.03.2012 в 21:00)
 

"в коде другие массивы, так как я не представляю как туда подставить мой массив.!"


мой формируется так:

while($row = mysql_fetch_array($result))
{
      $invno = $row['invno'];



    echo"
    <tr>
    <td><input type=\"text\" size=\"10\" name=\"invno_".$invno."\"   value=$invno></td>



надо вычисли мин и макс для invno_".$invno. не пойму как

  Ответить  
 
 автор: Valick   (04.03.2012 в 21:26)   письмо автору
 
   для: celovec   (04.03.2012 в 21:17)
 

их не надо вычислять, их надо взять из базы

  Ответить  
 
 автор: celovec   (04.03.2012 в 21:29)   письмо автору
 
   для: Valick   (04.03.2012 в 21:26)
 

нельзя из базы
один раз я уже взял, теперь они попали в пост а там надо вычислить, чтобы дальше использовать в седующем скрипте в другой форме

  Ответить  
 
 автор: Valick   (04.03.2012 в 21:37)   письмо автору
 
   для: celovec   (04.03.2012 в 21:29)
 

10 минут сидел думал что вам ответить... не придумал :(
может все таки расскажите что вы делаете, что у вас откуда куда попадает, и кто за все это ответит? :)
ну а если чего-то нельзя взять из базы, то это означает лишь одно... хреновая база

  Ответить  
 
 автор: celovec   (04.03.2012 в 21:48)   письмо автору
 
   для: Valick   (04.03.2012 в 21:37)
 

нет

вначале селектом выбираем диапазон для запроса в базу

echo "<table width=500 border=0 cellspacing=0 cellpadding=0 align=center><form method=post action=?l=instatspecial>
 
  <tr><td>&#207;&#238;&#234;&#224;&#231;&#224;&#242;&#252; &#241;&#247;&#229;&#242;&#224; &#237;&#224;&#247;&#232;&#237;&#224;&#255; &#241;:</td>
    <td>";

$queryx="SELECT * FROM `invoices` ORDER BY invno DESC"; 
$usr=mysql_query($queryx); 
if(!$usr) exit ("&#206;&#248;&#232;&#225;&#234;&#224;; (sql x)");

echo" <select name=start>
      <option value=0 selected>--&#8470; &#241;&#247;&#184;&#242;&#224;--</option>";


while($row=mysql_fetch_array($usr)){
$invno = $row['invno'];


echo"<option value=$invno> $invno </option>"; 

}


echo"    </select></td><td>&#239;&#238;:</td><td>  ";





$queryx="SELECT * FROM `invoices` ORDER BY invno DESC"; 
$usr=mysql_query($queryx); 
if(!$usr) exit ("&#206;&#248;&#232;&#225;&#234;&#224;; (sql x)");

echo" <select name=end>
      <option value=0 selected>--&#8470; &#241;&#247;&#184;&#242;&#224;--</option>";


while($row=mysql_fetch_array($usr)){
$invno = $row['invno'];


echo"<option value=$invno> $invno </option>"; 

}

$pinvno="$_POST[invno]";
echo"    </select></td>";





echo  "<td> <input type=submit name=showinvoices value=&#194;&#251;&#239;&#238;&#235;&#237;&#232;&#242;&#252;></td>
    </tr>

</form></table><br>";




далее циклом выводим то что нужно


$query  = "SELECT * FROM `invoices` WHERE `invno` BETWEEN '". $start ."' AND '". $end ."' ORDER BY `invno` DESC";
$result = mysql_query($query);




while($row = mysql_fetch_array($result))
{
$invno = $row['invno'];



echo"
<tr>
<td><input type=\"text\" size=\"10\" name=\"invno_".$invno."\" value=$invno></td>





а вот сох ранить <input type=submit name=saveinfoinv value='&#209;&#238;&#245;&#240;&#224;&#237;&#232;&#242;&#252; &#232;&#231;&#236;&#229;&#237;&#229;&#237;&#232;&#255;'>

не получается


для сохранения нужен тот же диапазон

код сохранения ниже


if(isset($_POST['saveinfoinv']))
{

 


//$post_name = "$_POST[name_$id]";


$start="$_POST[start]";    -------эти значения тут уже пустые
$end="$_POST[end]";




$sql = "SELECT min(invno) as min, max(invno) as max FROM invoices WHERE `invno` BETWEEN '". $start ."' AND '". $end ."'";
$query = mysql_query($sql);
$row = mysql_fetch_assoc($query);
$min_id = $row['min'];
$max_id = $row['max'];

echo "$start  and $end<br>";
echo "$min_id  and $max_id";



for ($i=$min_id; $i<=$max_id; $i++)



$p_name[$i] = $_POST['name_'.$i];
$p_kv[$i] = $_POST['kv_'.$i];
$p_sum[$i] = $_POST['sum_'.$i];
$p_incom[$i] = $_POST['incom_'.$i];


//echo "x= $p_kv[$i]";

$sq44 = ("UPDATE `invoices` SET


`sum`  = '$p_sum[$i]',
`incom` = '$p_incom[$i]'


WHERE  `invno`='$i'   "); 


if(!mysql_query($sq44)) 
 
exit (mysql_error()); 


}




по моему единственный вариант это вытащиить диапазон из $_POST вот только я незнаю как

  Ответить  
 
 автор: Valick   (04.03.2012 в 23:07)   письмо автору
 
   для: celovec   (04.03.2012 в 21:48)
 

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

  Ответить  
 
 автор: celovec   (04.03.2012 в 23:14)   письмо автору
 
   для: Valick   (04.03.2012 в 23:07)
 

на странице отображаются две формы
Показать счета начиная с ...... и по....... (два селекта) далее кнопка показать.
При нажатии отображается список все строк базы в заданном диапазоне.

в этой отображённом списке есть кнопка сохранить.

проблема: сохранить не получается, так как нужен тот же диапазон. (в первом случае значения диапазона подставляются в запрос из $_POST.)

в этой форме в $_POST.) нет диапазона есть все значения по порядку. как из них выделить мин и макс?

  Ответить  
 
 автор: Valick   (04.03.2012 в 23:30)   письмо автору
 
   для: celovec   (04.03.2012 в 23:14)
 

давно у меня не было такого ступора
поймите я пишу это не для того что бы посмеяться над вами
у вас проблема не только в этом, и даже это не самая главная проблема
как из них выделить мин и макс?
в РНР есть функции min() и max()

  Ответить  
 
 автор: celovec   (04.03.2012 в 23:38)   письмо автору
 
   для: Valick   (04.03.2012 в 23:30)
 

я знаю что есть.

даже нашёл пример

$speedArr=array();
$speedArr[202]=array('speed'=>26000, 'count'=>75);
$speedArr[203]=array('speed'=>12750, 'count'=>145);
$speedArr[208]=array('speed'=>7800, 'count'=>1);

$arr = array();
foreach($speedArr as $key => $value)
$arr[] .= $value['speed'];

echo max($arr);
echo min($arr);
echo"<br>";


но есть вопросы
1. мне нужно согдавать массив или он уже создан?
2. в примере похоже двумерный массив?а у меня одномерный?

3. не могу понять как это код применить (а ведь он сразу решит проблему)

  Ответить  
 
 автор: Valick   (05.03.2012 в 00:16)   письмо автору
 
   для: celovec   (04.03.2012 в 23:38)
 

не могу понять как это код применить
вот в этом самая главная проблема, нужно не применять чужой код, а писать свой код для конкретной ситуации, ну а что бы писать, учиться надо, а чтобы учиться нужна книга в любом случае (и чем больше тем лучше)
1. мне нужно создавать массив или он уже создан?
это же ваш код, кто как ни вы должен это знать?
2. в примере похоже двумерный массив?а у меня одномерный?
про ваш код я писал уже чуть выше, я лично не возьмусь угадывать какой у вас массив :)
____
пишу и по 5 минут подбираю каждое слово, чтобы написать как можно мягче и ни обидеть вас ни чем

  Ответить  
 
 автор: celovec   (05.03.2012 в 01:19)   письмо автору
 
   для: Valick   (05.03.2012 в 00:16)
 

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

"1. мне нужно создавать массив или он уже создан?
это же ваш код, кто как ни вы должен это знать?" - вопрос в том, что нужно ли писать переменная=массив() или просто использовать так как ПОСТ уже массив.


"2. в примере похоже двумерный массив?а у меня одномерный?
про ваш код я писал уже чуть выше, я лично не возьмусь угадывать какой у вас массив :)" - что тут угадывать. у меня одномерный. у одного ключа одно значение и всё а вот в примере что-то посложнее

функцию надо на днях закончить, в документации ответа не нашёл, Вы придираетесь к красоте написания.

пишу как могу я не гений, что-то знаю.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования