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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: запутался сотправкой формы

Сообщения:  [1-10]    [11-20]   [21-30]  [31-32] 

 
 автор: Trianon   (23.03.2009 в 00:21)   письмо автору
 
   для: dimon76   (23.03.2009 в 00:12)
 

while($row = mysql_fetch_row($result1))
{
  $line = ''; $sep = '';
  foreach($row as $n => $value)
  {
    if($n == 5) $value = str_replace('.',',', $value);
    $value = str_replace('"', '""', $value);
    $value = '"' . $value . '"' ;
    
    $line .= $sep . $value;
    $sep = "\t";
  }
  $data .= $line."\r\n";
}

  Ответить  
 
 автор: dimon76   (23.03.2009 в 00:12)   письмо автору
 
   для: Trianon   (23.03.2009 в 00:10)
 

ЗАРАБОТАЛО!!!


СПАСИБИЩЕ ОГРОМЕННОЕ!

  Ответить  
 
 автор: Trianon   (23.03.2009 в 00:10)   письмо автору
 
   для: dimon76   (23.03.2009 в 00:08)
 

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

Но тогда что за вопрос?
В $value и меняйте.

  Ответить  
 
 автор: dimon76   (23.03.2009 в 00:08)   письмо автору
 
   для: Trianon   (23.03.2009 в 00:05)
 

ну как бы в ексель все нормально выводит за исключением точек в ценах. но точки в ценах беруться из базы.

честно говоря я не понимаю в чем там перегрузка :(

  Ответить  
 
 автор: Trianon   (23.03.2009 в 00:05)   письмо автору
 
   для: dimon76   (23.03.2009 в 00:00)
 

вот здесь у Вас имя $value явно перегружено

foreach($row as $value){
    if(!isset($value) || $value == ""){
      $value = "\t";
    }else{

      $value = str_replace('"', '""', $value);


      $value = '"' . $value . '"' . "\t";
    }
    $line .= $value;
  } 

исправляйте - тогда будет понятно где менять.

  Ответить  
 
 автор: dimon76   (23.03.2009 в 00:00)   письмо автору
 
   для: Trianon   (22.03.2009 в 23:36)
 

ЗАРАБОТАЛО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!

ВЕСЬ мой тупизм проявился !
всего навсево нужно было цикл засандалить. а я в обработчике с самого начала просто для проверки оставил вывод и забыл про него. НО сейчас все РАБОТАЕТ!!!! СПАСИБО ОГРОМНОЕ!


P.S. обнагле окончательно с еще одним вопросом - база не хочет считать числа с запятыми - я их меняю (автоматом) на точки. но после всех пересчетов я экспортирую в ексель и получаю вместо некоторых чисел - месяцы (автозамена срабатывает). где мне влепить обратную замену на запятые из базы? вот куски:

# читаю файл и меняю запятые на точки#
list($n1,$n2,$n3,$n4,$n5,$n6,$n7,$n8,$n9,$n10,$n11,$n12,$n13,$n14) = split("\t",$tovar[$i]);
$n_6 = str_replace(",",".","$n6");


вот вывод в ексель:


include('info.inc.php');

$connect=mysql_connect($host, $account, $password) or die ('íåò ñîåäèíåíèÿ');
$db=mysql_select_db($dbname, $connect);

$result = "SELECT * FROM price";
$result1 = mysql_query($result);

$count = mysql_num_fields($result1);

for ($i = 0; $i < $count; $i++){
    $header .= mysql_field_name($result1, $i)."\t";
}

while($row = mysql_fetch_row($result1)){
  $line = '';
  foreach($row as $value){
    if(!isset($value) || $value == ""){
      $value = "\t";
    }else{

      $value = str_replace('"', '""', $value);


      $value = '"' . $value . '"' . "\t";
    }
    $line .= $value;
  }
  $data .= trim($line)."\n";
}


  $data = str_replace("\r", "", $data);



if ($data == "") {
  $data = "\nno matching records found\n";
}


header("Content-type: application/octet-stream");

# replace excelfile.xls with whatever you want the filename to default to
header("Content-Disposition: attachment; filename=price.xls");
header("Pragma: no-cache");
header("Expires: 0");

echo $header."\n".$data; 
?> 

  Ответить  
 
 автор: Trianon   (22.03.2009 в 23:57)   письмо автору
 
   для: dimon76   (22.03.2009 в 23:38)
 

А Вы посмотрите HTML-код страницы, сгенерированной сервером, и увидите, что не то же.

  Ответить  
 
 автор: dimon76   (22.03.2009 в 23:38)   письмо автору
 
   для: Trianon   (22.03.2009 в 23:26)
 

а разве вот это

echo "<input name='id' type='text' value='".$n1."' size='5'>
<input name='brand' type='text' value='".$n2."' size='15'>
<input name='kode' type='text' value='".$n4."' size='8'>
<input name='cena' type='text' value='".$n_6."' size='5'>
<input name='model' type='text' value='".$n7."' size='8'>
<input name='name' type='text' value='".$n9."' size='25'>
Коеффициент :<input name='coeff' type='text' value='1' size='3'>
Желаемая цена:<input name='cena_zelan' type='text' value='' size='5'>";


не тоже самое что и это:

echo "<input name='id[$n1]' type='text' value='".$n1."' size='5'>
........................................
Желаемая цена:<input name='cena_zelan[$n1]' type='text' value='' size='5'>";

  Ответить  
 
 автор: Trianon   (22.03.2009 в 23:37)   письмо автору
 
   для: dimon76   (22.03.2009 в 23:33)
 

$cena_to_be = $cena * $coeff;

if ($cena < $cena_zelan){
$cena_to_be = $cena_zelan;
$coeff_back = $cena_zelan/$cena;
}

$pic="UPDATE price SET cena_to_be='".$cena_to_be."', coeff='".$coeff."',cena_zelan='".$cena_zelan."',coeff_back='".$coeff_back."' WHERE id='".$id."'" ;

$res=mysql_query($pic) ;

эти строки нужно поместить внутрь цикла foreach

  Ответить  
 
 автор: Trianon   (22.03.2009 в 23:36)   письмо автору
 
   для: dimon76   (22.03.2009 в 23:31)
 

если обработчик - отдельный файл, то непонятно, зачем там вообще этот printf() . Тем более, что форму он не создает.

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]  [31-32] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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