uzzzver
20.03.2009 - 08:50
Помогите нубу.
Нужно организовать раздачу баллов людям.
Есть таблицаюзеров:
Код |
table users id | name | прочие данные |
и таблица результатов чего-нибудь:
Код |
table scores id |date | user_id | score |
$res = запрос на выборку из таблицы users
далее
PHP |
//начало форы echo "<form name='theform' action='кудато'>"; while ($row = mysql_fetch_assoc($query)) {
echo "<input type='hidden' name='date' value='".date()."'><input type='hidden' name='u_id' value='".$res['id']."'>".res['name']."Поставить балл: <select name='score'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option></select> ";
} //кнопка сабмита echo "</form>"; |
И вот тут далее уперся, не знаю как вставить все данные разом. Вставляет только одну строчку.
интуитивно догадываюсь что нужно как-то организовать массив из полученных данных и вставлять, перебирая его, но логику уловить не могу. Помогите, плизз
Спустя 56 минут, 5 секунд (20.03.2009 - 08:46) olgatcpip написал(а):
PHP |
function _dbEnumObjectsByQuery($query, $maxObjects=0) { global $__cn;
$vector=array(); $result = pg_query($__cn, $query); if(!$result) return $vector; if($maxObjects==0) $maxObjects=1000000; $n=0;
while($n<$maxObjects) { $row = @pg_fetch_array($result,$n, PGSQL_ASSOC); if(!$row) break; array_push($vector,$row); $n++; } pg_free_result($result); return $vector; } $query = sprintf("select..."); rows = _dbEnumObjectsByQuery($query); foreach(rows as res) { echo "<input type='hidden' name='date' value='".date()."'><input type='hidden' name='u_id' value='".$res['id']."'>".res['name']."Поставить балл: <select name='score'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option></select> "; } |
попробуй так
Спустя 2 часа, 56 минут, 52 секунды (20.03.2009 - 11:43) waldicom написал(а):
человек сверху работает с мускулом, а Вы ему постгрю предлагаете
Спустя 1 час, 6 минут, 41 секунда (20.03.2009 - 12:50) uzzzver написал(а):
Нашел вот такой пример запроса:
PHP |
$i=0; $data=array( array('N'=>'Вася','Y'=>'1990'), array('N'=>'Петя','Y'=>'1985'), array('N'=>'Сережа','Y'=>'1988') );
$query="INSERT INTO childrens (imya,birtsday) VALUES";
foreach($data as $value){
if($i==0){
$query.="('".$value['N']."','".$value['Y']."')";
}else{
$query.=",('".$value['N']."','".$value['Y']."')";
}
$i++;
} mysql_query($query); |
Вставка -именног такая какая нужна. Подскажите, как сформировать данный массив из полученных данных. Вот так выводится несколько форм для выставления баллов
PHP |
while ($row = mysql_fetch_assoc($query)) {
echo "<input type='hidden' name='date' value='".date()."'><input type='hidden' name='u_id' value='".$res['id']."'>".res['name']."Поставить балл: <select name='score'><option value='1'>1</option><option value='2'>2</option><option value='3'>3</option></select> ";
} |
то есть получается, нужно сгенерить каждому полю уникальное имя, затем собрать все данные полей в массив и передать вышеуказанному сценарию.