Собственно вот код , всё работает , но при открытии файла в базу уходят пустые поля , а потом уже правильные данные. Как исправить ?
И второй вопрос : в поле «умножить на» необходимо , чтобы можно было вставлять и десятичные числа (3.5) например, а в «Итоге» можно округлять .
Пример 10кг3.5= 35 , а не 30 или 40 , а если 1кг3.5 = 4 — это нормально.
toFixed(1) пробовал , но не получилось .
А сейчас у вас первая запись в бд добавляется, когда вы открываете страницу в браузере. Вторая — при отправке формы.
Dmitry
Спасибо , с этим исправлением вроде работает !
А как сделать чтобы 3.5 тоже можно было записать в поле2 так , чтобы в поле3 при подсчете например 10*3.5 = 35 , а не 30 ?
function summ() {
var value1 = parseInt(document.getElementById("ves").value);
var value2 = parseInt(document.getElementById("umnozit_na").value.toFixed(1));
var value3 = parseInt(document.getElementById("plus").value);
document.getElementById("itogo").value = (value1 * value2)\;
document.getElementById("vsego").value = value1 * value2 + value3;
}
Dmitry
Не правильно написал , вот так надо :
А как сделать чтобы 3.5 можно было записать в «umnozit_na» так ,
чтобы в поле «itogo» при подсчете, получалось например 10*3.5 = 35 , а не 30 ?
И соответственно в базу потом уходило 3.5 и результат 35 ?
toFixed вот в таком виде не работает ...
function summ() {
var value1 = parseInt(document.getElementById("ves").value);
var value2 = parseInt(document.getElementById("umnozit_na").value.toFixed(1));
var value3 = parseInt(document.getElementById("plus").value);
document.getElementById("itogo").value = (value1 * value2)\;
document.getElementById("vsego").value = value1 * value2 + value3;
}
Alex
Используйте функцию parseFloat() в JavaScript.
var el = document.getElementById('umnozit_na'), value2;
if (el != null) {
value2 = parseFloat(el.value); // Получите дробное значение
}
Dmitry
Спасибо !
Dmitry
Этот код полностью рабочий .
Вопрос в том , как вывести внизу таблицы, получаемой ПОСЛЕ выборки,
итоговые суммы по столбцам 'kol_mest' , 'ves' , 'plus' , 'itogo' , 'vsego' ?
Понимаю что SELECT SUM ves , но не понимаю как и куда это воткнуть , а потом вывести под столбцами ?
Код не проверял на живой базе, могут быть опечатки.
$query_string = "SELECT *, SUM(kol_mest) FROM otchet WHERE `awb`='$text' GROUP BY `kol_mest`";
$dbResult = mysql_query($query_string) || die(mysql_error());
if (mysql_num_rows($dbResult)) {
$firstRow = mysql_fetch_assoc($dbResult);
// Здесь будет выведена сумма выбранных столбцов
echo $row['SUM(kol_mest)'];
}
Можно воспользоваться оператором AS, чтобы изменить название индекса ассоциативного массива:
$query_string = "SELECT *, SUM(kol_mest) as sumKolMest FROM otchet WHERE `awb`='$text' GROUP BY kol_mest";
$dbResult = mysql_query($query_string) || die(mysql_error());
if (mysql_num_rows($dbResult)) {
$firstRow = mysql_fetch_assoc($dbResult);
// Поменяли индекс посредством "AS"
echo $row['sumKolMest'];
}
Dmitry
Спасибо , завтра попробую :)
Dmitry
во втором варианте ругается на это
if (mysql_num_rows($dbResult)) {
пишет Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
Dmitry
убрал || , поставил вместо них or — ошибка ушла , но и подсчет суммы не появился :(
Dmitry
вернее появился , но неизвестно что считает :)
Dmitry
может я не туда вставляю :) — ну никак не хочет писать правильную сумму внизу таблицы.
вот код.
<?php
session_start();
if($_SESSION['admin'] == '2')
{
} else { header("Location: http://xxxxxxx/signin.php"); exit();
}
?>
<?php
$sql = mysql_connect('xxxxxxxxx', 'xxxxxxx', 'xxxxxx');
mysql_select_db('xxxxxx', $sql);
mysql_query('set character_set_client="utf8"');
mysql_query('set character_set_results="utf8"');
mysql_query('SET NAMES "utf8"');
if (empty($_POST)) {
// Если страницу открыли не POST-ом,
// перенаправляем на страницу с формой
header('HTTP/1.1 301 Moved Permamently');
header('Location: admin/poisk_a.php');
exit();
}
$posted = null;
$text = null;
if (!empty($_POST['posted'])) {
// Здесь будет храниться значение выбранного в форме варианта
$posted = $_POST['posted'];
}
if (!empty($_POST['text'])) {
$text = mysql_real_escape_string(trim($_POST['text']));
}
// Список вариантов для вывода
$rows = array();
if ($text) {
// Формируем текст запроса к базе
if ($posted === 'awb') {
$query_string = "SELECT * FROM otchet WHERE `awb`='$text'";
} else if ($posted === 'client') {
$query_string = "SELECT * FROM otchet WHERE `client`='$text'";
} else if ($posted === 'birki_s') {
$query_string = "SELECT * FROM otchet WHERE `birki_s`='$text'";
} else if ($posted === 'e_mail') {
$query_string = "SELECT * FROM otchet WHERE `e_mail`='$text'";
} else if ($posted === 'datatime') {
$query_string = "SELECT * FROM otchet WHERE `datatime`='$text'";
} else {
echo 'Вы выбрали некорректное значение: ' . $posted;
exit();
}
$query_string = "SELECT *, SUM(kol_mest) as sumKolMest FROM otchet WHERE `awb`='$text' GROUP BY kol_mest";
$dbResult = mysql_query($query_string) or die(mysql_error());
if (mysql_num_rows($dbResult)) {
$firstRow = mysql_fetch_assoc($dbResult);
// Поменяли индекс посредством "AS"
echo $row['sumKolMest'];
}
$db_result = mysql_query($query_string) or die(mysql_error());
while ($row = mysql_fetch_assoc($db_result)) {
$rows[] = $row;
}
} else {
echo "Введите текст поискового запроса";
exit();
}
?><!doctype html>
<html>
<head>
<title>submit_a</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/bootstrap-responsive.css">
<link rel="stylesheet" href="https://djyhxgczejc94.cloudfront.net/builds/7ef089af6b2dd1ce613b404cd25fc6abc163336c.css">
<link rel="stylesheet" href="css/divshot-util.css">
<link rel="stylesheet" href="css/divshot-canvas.css">
</head>
<div class="navbar">
<div class="navbar-inner">
<div class="container-fluid">
<a class="brand">xxxxx</a>
<div class="navbar-content">
<ul class="nav">
<li class="active">
<a href="http://xxxxxx">Домой</a>
</li>
<li class="active">
<a href="http://xxxxxx/reg.php">Регистрация</a>
</li>
<li class="active">
<a href="http://xxxxxxx/signin.php">Авторизация</a>
</li>
<li class="active">
<a href="mail_to:xxxxxxxxx">Контакт с администрацией</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span">
<div>
<h1 class="align-left">xxxxxxxxxx</h1>
<p>xxxxxxxx</p>
<p class="lead text-error">Страница Админа.</p>
</div>
<div class="row-fluid">
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
</div>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css">
<div align="center"></div>
<b class="align-center"></b>
<h4>
<a class="btn btn-primary btn-mini" href="http://xxxxxxx">Вернуться домой</a>
<a class="btn btn-primary btn-mini" href="form_rab.php">Форма ввода данных</a>
<a class="btn btn-primary btn-mini" href="poisk_a.php">Поиск по базе</a>
<a class="btn btn-primary btn-mini" href="#">Отправить e_mail клиенту</a>
<a class="btn btn-primary btn-mini" href="#">Рассылка всем клиентам</a>
<a class="btn btn-primary btn-mini" href="http://xxxxxx">Вернуться домой</a>
<a class="btn btn-primary btn-mini" href="http://xxxxxx">Вернуться домой</a>
</h4>
<div class="container-fluid">
<div class="row-fluid">
<div class="span">
<div>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<!-- Le styles -->
<link href="bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="css/main.css" rel="stylesheet">
<link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet">
<h5>
<meta charset="utf8">
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<title>MySQL query example</title>
<style>
</style>
<table border="1" cellpadding="10">
<tbody>
<tr align="center">
<th>AWB</th>
<th>Клиент</th>
<th>e_mail</th>
<th>Дата приемки</th>
<th>Бирки с</th>
<th>Бирки по</th>
<th>Кол мест</th>
<th>Вес</th>
<th>Итого</th>
<th>Плюс</th>
<th>Всего</th>
<th>Умножить на</th>
<th>Примечание</th>
<th>Сумма кол мест</th>
</tr>
<?php foreach ($rows as $row): ?>
<tr>
<td><?php echo $row['awb']?></td>
<td><?php echo $row['client']?></td>
<td><?php echo $row['e_mail']?></td>
<td><?php echo $row['datatime']?></td>
<td><?php echo $row['birki_s']?></td>
<td><?php echo $row['birki_po']?></td>
<td><?php echo $row['kol_mest']?></td>
<td><?php echo $row['ves']?></td>
<td><?php echo $row['itogo']?></td>
<td><?php echo $row['plus']?></td>
<td><?php echo $row['vsego']?></td>
<td><?php echo $row['umnozit_na']?></td>
<td><?php echo $row['primechanie']?></td>
<td><?php echo $row['sumKolMest']?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</h5>
<h2></h2>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Dmitry
не знаю почему код раскидался... — сорри.
Dmitry
Никак не хочет считать ...
Rob
ТС, я в SQL-запросах не силен, но могу подсказать, как сделать это на php.
$query_string = "SELECT * FROM otchet WHERE `awb`='$text'";
$dbResult = mysql_query($query_string) or die(mysql_error());
$kol_mest = 0;
while ($row = mysql_fetch_assoc($dbResult)) {
$rows[] = $row;
$kol_mest += $row['kol_mest'];
}
// Здесь будет сумма полей `kol_mest` для всех выбранных записей.
echo $kol_mest;
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Собственно вот код , всё работает , но при открытии файла в базу уходят пустые поля , а потом уже правильные данные. Как исправить ?
И второй вопрос : в поле «умножить на» необходимо , чтобы можно было вставлять и десятичные числа (3.5) например, а в «Итоге» можно округлять .
Пример 10кг3.5= 35 , а не 30 или 40 , а если 1кг3.5 = 4 — это нормально.
toFixed(1) пробовал , но не получилось .
Для округления в PHP есть функции
ceil()
иfloor()
. Первая округляет дробь в большую сторону, а вторая — в меньшую.У вас скрипт автоматически отправляет пустую форму сразу после загрузки страницы.
Удалите строку
fr.submit()
.удалил — не помогло , все равно при открытии файла отправляет пустые данные ...
Удалил этот скрипт целиком , все равно добавляет при открытии файла пустые поля.
Проверяйте метод запроса при добавлении записи.
А сейчас у вас первая запись в бд добавляется, когда вы открываете страницу в браузере. Вторая — при отправке формы.
Спасибо , с этим исправлением вроде работает !
А как сделать чтобы 3.5 тоже можно было записать в поле2 так , чтобы в поле3 при подсчете например 10*3.5 = 35 , а не 30 ?
Не правильно написал , вот так надо :
А как сделать чтобы 3.5 можно было записать в «umnozit_na» так ,
чтобы в поле «itogo» при подсчете, получалось например 10*3.5 = 35 , а не 30 ?
И соответственно в базу потом уходило 3.5 и результат 35 ?
toFixed вот в таком виде не работает ...
Используйте функцию parseFloat() в JavaScript.
Спасибо !
Этот код полностью рабочий .
Вопрос в том , как вывести внизу таблицы, получаемой ПОСЛЕ выборки,
итоговые суммы по столбцам 'kol_mest' , 'ves' , 'plus' , 'itogo' , 'vsego' ?
Понимаю что SELECT SUM ves , но не понимаю как и куда это воткнуть , а потом вывести под столбцами ?
Код не проверял на живой базе, могут быть опечатки.
Можно воспользоваться оператором
AS
, чтобы изменить название индекса ассоциативного массива:Спасибо , завтра попробую :)
во втором варианте ругается на это
if (mysql_num_rows($dbResult)) {
пишет Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
убрал || , поставил вместо них or — ошибка ушла , но и подсчет суммы не появился :(
вернее появился , но неизвестно что считает :)
может я не туда вставляю :) — ну никак не хочет писать правильную сумму внизу таблицы.
вот код.
не знаю почему код раскидался... — сорри.
Никак не хочет считать ...
ТС, я в SQL-запросах не силен, но могу подсказать, как сделать это на php.