|
| |
|
|
| |
для: ronalex
(14.06.2007 в 13:45)
| | | из двух таблиц, несвязанных друг с другом (а Вы вторые сутки не можете показать, как они связываются - мы по-моему уже на четвертый круг пошли) данные достают двумя независимыми запросами.
Заведите чтоли новую тему...
Блин горелый...
Вы извините меня ради бога... но я в шоке.
Судя по данным, которыми Вы оперируете, Вы играете с деньгами.
И как я понимаю, довольно большими.
При этом достаточно простых вещей, вроде того, что числа нужно хранить в числовых полях БД, а пароли крайне желательно не выбалтывать в форумах, Вы не просекаете.
может быть стоит подрядить кого-нибудь на эту задачу?
Так ведь и попасть недолго.... | |
| |
|
|
| |
|
|
| |
для: Trianon
(14.06.2007 в 10:54)
| | | Подскажите, как мне вытащить данные из 2х предыдущих таблиц одним запросом
и каким оператором воспользоваться
$e=mysql_query("SELECT * FROM `percent`, `time` WHERE name='".$_SESSION['user']."'");
while($y=mysql_fetch_array($e))
{
echo $y[percent]*2;
}
|
| |
| |
|
|
| |
|
|
| |
для: ronalex
(14.06.2007 в 10:26)
| | | Это плохой скрипт. Он допускает SQL-инъекции и порождает лишние запросы к БД.
Лучше применяйте такой:
<?
function build_insert( $table_name, $array )
{
$sep = '('; $q1 = "INSERT INTO `$table_name` "; $q2 = " ) VALUES "
foreach($array as $key =>$val)
{
if(is_string($val))
$val = "'".mysql_escape_string($val)."'";
$q1 .= "$sep`$key`";
$q2 .= "$sep$val";
$sep = ',';
}
return $q1 . $q2 . ')';
}
|
вызов
<?
$sql = build_insert("percent", array('name' => 'user1', 'percent' => 0.8, 'sum' => 0));
mysql_query("$sql") or die("Error in $sql". mysql_error());
|
| |
| |
|
|
| |
|
|
| |
для: Trianon
(13.06.2007 в 22:39)
| | | Подскажите пожалуйста, что делает этот скрипт, и куда нужно вводить данные в него чтобы он заработал
function build_insert( $dbname, $table_name, $array )
{
$res = mysql_query("DESCRIBE ".$dbname.".".$table_name);
$q = "INSERT INTO ".$dbname.".".$table_name." (";
$q2 = "(";
while( $row = mysql_fetch_array($res) )
{
$q .= $row['Field'] . ",";
$q2 .= "'" . $array["{$row['Field']}"] . "'" . ",";
}
$q = substr($q, 0, -1);
$q .= ")";
$q .= " VALUES ";
$q2 = substr($q2, 0, -1);
$q2 .= ")";
$q .= $q2;
return $q;
}
|
| |
| |
|
|
| |
|
|
| |
для: ronalex
(13.06.2007 в 22:26)
| | | В Ваших данных столбец name не содержит уникальные значения.
Отличить по нему строки одну от другой невозможно. | |
| |
|
|
| |
|
|
| |
для: Trianon
(13.06.2007 в 22:08)
| | | по name | |
| |
|
|
| |
|
|
| |
для: ronalex
(13.06.2007 в 21:21)
| | | по каким правилам строки первой таблицы соответствуют строкам второй таблицы? | |
| |
|
|
| |
|
|
| |
для: ronalex
(13.06.2007 в 19:58)
| | | Вывожу конкретные данные и формирую вопрос:
$qwerty=mysql_query("UPDATE `percent` JOIN `time` USING(`name`) SET `percent`.`sum`=`percent`.`percent` +`time`.`time`");
|
# Table structure for table 'percent'
CREATE TABLE /*!32312 IF NOT EXISTS*/ `percent` (
`name` varchar(255) default NULL,
`percent` varchar(255) default NULL,
`sum` varchar(255) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
# Dumping data for table 'percent'
/*!40000 ALTER TABLE `percent` DISABLE KEYS*/;
LOCK TABLES `percent` WRITE;
REPLACE INTO `percent` (`name`, `percent`, `sum`) VALUES ('ronalex','0.35','35.35'),
('ronalex','0.8','35.8'),
('ronalex','10','45');
UNLOCK TABLES;
/*!40000 ALTER TABLE `percent` ENABLE KEYS*/;
# Table structure for table 'time'
CREATE TABLE /*!32312 IF NOT EXISTS*/ `time` (
`name` varchar(255) default NULL,
`time` varchar(255) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
# Dumping data for table 'time'
/*!40000 ALTER TABLE `time` DISABLE KEYS*/;
LOCK TABLES `time` WRITE;
REPLACE INTO `time` (`name`, `time`) VALUES ('ronalex','35'),
('ronalex','2319'),
('ronalex','159');
UNLOCK TABLES;
/*!40000 ALTER TABLE `time` ENABLE KEYS*/;
|
В результате получается:
Таблица time
name,time
ronalex,35
ronalex,2319
ronalex,159
Таблица percent
name,percent,sum
ronalex,0.35,35.35
ronalex,0.8,35.8
ronalex,10,45
дак вот в таблице percent к последнему столбику прибавляется постоянно одно и тоже число это число 35, а надо 0.35+35, потом 0.8+2319, потом 10+159
а у меня постоянно происходит:
0.35+35, потом 0.8+35, потом 10+35
надеюсь, что объяснил более - менее понятнее, помогите пожалуйста | |
| |
|
|
| |
|
|
| |
для: Trianon
(13.06.2007 в 19:42)
| | | это я просто для примера написал про две таблицы, мне главно суть уловить, можно ли как -нибудь передать данные из бд массиву, чтобы ими потом было легко управлять | |
| |
|
|
| |
|
|
| |
для: ronalex
(13.06.2007 в 19:38)
| | | В том же самом, как Вы выражаетесь, дампе, в строках не различаются имена пользователей.
и они всяко не равны тому, что Вы написали в примере | |
| |
|
|
|