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

Форум PHP

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

 

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

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

тема: Редактирование данных в бд
 
 автор: rez   (09.10.2007 в 16:41)   письмо автору
 
 

Вот такая ситуация, есть скрипт который выводит данные из БД и предоставляет возможность редактирования для некоторых полей:


<?php
$a
=0;
$old pg_query("select *  from konkurs where datep>='".$date."' and datep<='".$end_date."' order by datep DESC");
//$old = pg_query("SELECT id,otv,rez FROM konkurs"); ///запрос к бд для вывода редактируемых данных

    
while($rez pg_fetch_row($old)) {
$a++;
echo 
'<tr class="row' . ($a%2+1) . '">';
echo 
'<td class="events"><p class="text">' .$rez['0'].'<br></td>';
echo 
'<td class="events"><p class="text">' .$rez['1'].'<br></td>';
echo 
'<td class="events"><p class="text">' .$rez['2'].'<br></td>';

echo 
'<td class="events"><p class="text">' .$rez['4'].'<br></td>';
echo 
'<td class="events"><p class="text">' .$rez['5'].'<br></td>';
echo 
'<td class="events"><p class="text">' .$rez['6'].'<br></td>';
echo 
'<td class="events"><p class="text">' .$rez['7'].'<br></td>';
echo 
'<td class="events"><p class="text">' .$rez['8'].'<br></td>';
///////////////////////редактируемые данные
echo "<td><input type=text name=ar[".$rez[0]."] value='$rez[9]'  maxlength=15 size=15></td>";
echo 
"<td><input type=text name=am[".$rez[0]."] value='$rez[10]'  maxlength=15 size=15><br></td></tr>";
}
echo 
'</table>';
?>

<table cellpadding="2" cellspacing="10" border="0" align="right">
<tr><td align="right">
<br><br>
<input type="submit" Name="boot" value="Обновить инфо &raquo;&raquo;&raquo;">
</td></tr>

</table>
    </form>
    
<?
if (!empty($_POST['boot'])) {                                                                //// отправка данных с кнопки
    
while( (list($idx,$val) = each($ar)) and (list($idx,$val) = each($am)) )
    {
     
pg_query("UPDATE konkurs SET otv='".$ar[$idx]."', rez='".$am[$idx]."' WHERE id=$idx"); ////обновление в бд редактируемых данных
    
}
}
echo 
'</table>';
?>


Вопрос: каким образом можно заменить поля для ввода данных выпадающими минюшками с выбором вариантов, тем самым ограничить пользователей во вводимых данных? Спасибо!

   
 
 автор: Faraon   (09.10.2007 в 17:26)   письмо автору
 
   для: rez   (09.10.2007 в 16:41)
 

Взять и поставить Селекты

   
 
 автор: rez   (09.10.2007 в 17:49)   письмо автору
 
   для: Faraon   (09.10.2007 в 17:26)
 

Можно примерчик, пожалуйста!?

   
 
 автор: Valick   (09.10.2007 в 17:57)   письмо автору
 
   для: rez   (09.10.2007 в 17:49)
 

тем самым ограничить пользователей во вводимых данных
далеко не всех пользователей вы можете ограничить подобным образом.

   
 
 автор: rez   (09.10.2007 в 18:00)   письмо автору
 
   для: Valick   (09.10.2007 в 17:57)
 

Я это прекрасно понимаю! но мне нужен именно такой способ!

   
 
 автор: rez   (09.10.2007 в 18:01)   письмо автору
 
   для: rez   (09.10.2007 в 18:00)
 

нужно что то вроде этого


<td><select name="rez" style="width:100%" <?php echo htmlspecialchars($rez); ?>>
                    <option align="center" value=""> ... </option>
                                        <option value="Выигран">Выигран</option>
                                        <option value="Проигран">Проигран</option>
                                        <option value="Не состоялся">Не состоялся</option>
                                        <option value="Не участвуем">Не участвуем</option>
                   </select></td>

   
 
 автор: sim5   (09.10.2007 в 18:05)   письмо автору
 
   для: rez   (09.10.2007 в 18:01)
 

Ну вот и берите его, что вас не устраивает? Только стили писать лучше в CSS. А что это будет:
htmlspecialchars($rez)?

   
 
 автор: rez   (10.10.2007 в 14:18)   письмо автору
 
   для: sim5   (09.10.2007 в 18:05)
 

А как корректно совместить эти два куска кода? Подскажите pls, я че то совсем не понимаю!!! =(

   
 
 автор: Faraon   (10.10.2007 в 14:24)   письмо автору
 
   для: rez   (10.10.2007 в 14:18)
 

Полагаю как то так

<?
echo "<select name=\"ar[".$rez[0]."]\" style=\"width:100%\">
<option align=\"center\" value=\"\"> ... </option>
<option value=\"Выигран\">Выигран</option>
<option value=\"Проигран\">Проигран</option>
<option value=\"Не состоялся\">Не состоялся</option>
<option value=\"Не участвуем\">Не участвуем</option>
</select>"
;
?>

   
 
 автор: Faraon   (10.10.2007 в 14:25)   письмо автору
 
   для: rez   (10.10.2007 в 14:18)
 

-

   
 
 автор: rez   (10.10.2007 в 14:40)   письмо автору
 
   для: rez   (10.10.2007 в 14:18)
 

htmlspecialchars($rez) Это можно убрать, просто пример из другова скрипта взят! ))

   
 
 автор: Faraon   (10.10.2007 в 14:45)   письмо автору
 
   для: rez   (10.10.2007 в 14:40)
 

>htmlspecialchars($rez) Это можно убрать, просто пример из другова скрипта взят! ))
Я не знаю что Вы здесь хотите вывести, а стили как сказал sim5 держите в СSS

   
 
 автор: rez   (10.10.2007 в 14:54)   письмо автору
 
   для: rez   (10.10.2007 в 14:40)
 

Спасибо! )) А как сделать так чтобы если в базе уже есть инфа то она отображалась бы, вот этот параметр за это отвечал: value='$rez[10]' ? Можно ли его как нить прикрутить?

   
 
 автор: Faraon   (10.10.2007 в 15:04)   письмо автору
 
   для: rez   (10.10.2007 в 14:54)
 

Ну можно чтобы он стоял первым по умолчанию

<?
echo "<select name=\"ar[".$rez[0]."]\" style=\"width:100%\">
<option align=\"center\" value=\""
.$rez[10]."\">".$rez[10]."</option>
<option value=\"Выигран\">Выигран</option>
<option value=\"Проигран\">Проигран</option>
<option value=\"Не состоялся\">Не состоялся</option>
<option value=\"Не участвуем\">Не участвуем</option>
</select>"
;
?>

А дальше уже при желании выбрать другой вариант

   
 
 автор: sim5   (10.10.2007 в 15:10)   письмо автору
 
   для: rez   (10.10.2007 в 14:54)
 

Вы к коду своему, сперва прикрутите начало формы.)

   
 
 автор: rez   (10.10.2007 в 14:55)   письмо автору
 
   для: rez   (10.10.2007 в 14:40)
 

Спасибо! )) А как сделать так чтобы если в базе уже есть инфа то она отображалась бы, вот этот параметр за это отвечал: value='$rez[10]' ? Можно ли его как нить прикрутить?

   
 
 автор: rez   (10.10.2007 в 15:37)   письмо автору
 
   для: rez   (10.10.2007 в 14:55)
 

может есть что то вроде <?=.$rez['10'].?>, ток вот это не рабоатет, я пробовал вот так:

echo  "<td><select name=\"am[".$rez[0]."]\" value='$rez[10]' style=\"width:100\"> 
<option align=\"center\" value=\"\"> <?=.$rez['10'].?> </option> 
<option value=\"&#194;&#251;&#232;&#227;&#240;&#224;&#237;\">&#194;&#251;&#232;&#227;&#240;&#224;&#237;</option> 
<option value=\"&#207;&#240;&#238;&#232;&#227;&#240;&#224;&#237;\">&#207;&#240;&#238;&#232;&#227;&#240;&#224;&#237;</option> 
<option value=\"&#205;&#229; &#241;&#238;&#241;&#242;&#238;&#255;&#235;&#241;&#255;\">&#205;&#229; &#241;&#238;&#241;&#242;&#238;&#255;&#235;&#241;&#255;</option> 
<option value=\"&#205;&#229; &#243;&#247;&#224;&#241;&#242;&#226;&#243;&#229;&#236;\">&#205;&#229; &#243;&#247;&#224;&#241;&#242;&#226;&#243;&#229;&#236;</option> 
</select></td>";


но ничего не получилось! (((

   
 
 автор: sim5   (10.10.2007 в 15:43)   письмо автору
 
   для: rez   (10.10.2007 в 15:37)
 

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

   
 
 автор: Faraon   (10.10.2007 в 15:54)   письмо автору
 
   для: rez   (10.10.2007 в 15:37)
 

Тогда уж вот так

<?=$rez['10'?>

   
 
 автор: sim5   (10.10.2007 в 15:57)   письмо автору
 
   для: Faraon   (10.10.2007 в 15:54)
 

Как так, если он в echo воткнул это?

   
 
 автор: Faraon   (10.10.2007 в 16:04)   письмо автору
 
   для: sim5   (10.10.2007 в 15:57)
 

Извиняюсь, внимание на это не обратил

   
 
 автор: rez   (10.10.2007 в 16:10)   письмо автору
 
   для: Faraon   (10.10.2007 в 16:04)
 

А есть еще варианты??? )))

   
 
 автор: Faraon   (10.10.2007 в 16:15)   письмо автору
 
   для: rez   (10.10.2007 в 16:10)
 

А что мой вариант от 10.10.2007 в 15:04 не подходит?

   
 
 автор: sim5   (10.10.2007 в 16:25)   письмо автору
 
   для: rez   (10.10.2007 в 16:10)
 

Есть! Никто, кроме вас не занет, что такое $rez['0'], $rez['1'], ... и т.д. Никто не будет знать что у вас не получается пока вы не скажете что. Почему вы пишите либо так $rez['0'], либо так $rez[0]? Вам дали пример елемента SELECT, но только вам известно, какую пременную и куда вставить, а вы воткнули добросовестно то, что является просто примером.

   
 
 автор: rez   (10.10.2007 в 16:51)   письмо автору
 
   для: sim5   (10.10.2007 в 16:25)
 

$rez[10] выводит информацию из 10-го столбца в БД

мне необходимо при помощи выпадающих меню вносить информацию в бд, но если там уже есть инфа то показывать ее!

Вот это один столбец в табличе на сайте:

echo  "<td><select name=\"am[".$rez[0]."]\" style=\"width:100\"> 
<option align=\"center\" value=\"\"><?=$rez['10']?></option>  \\\ вот эта часть как раз видна когда ничего не выбрано, мне необходимо что бы тут отображалась инфа из бд, если она там есть
<option value=\"&#194;&#251;&#232;&#227;&#240;&#224;&#237;\">&#194;&#251;&#232;&#227;&#240;&#224;&#237;</option> 
<option value=\"&#207;&#240;&#238;&#232;&#227;&#240;&#224;&#237;\">&#207;&#240;&#238;&#232;&#227;&#240;&#224;&#237;</option> 
<option value=\"&#205;&#229; &#241;&#238;&#241;&#242;&#238;&#255;&#235;&#241;&#255;\">&#205;&#229; &#241;&#238;&#241;&#242;&#238;&#255;&#235;&#241;&#255;</option> 
<option value=\"&#205;&#229; &#243;&#247;&#224;&#241;&#242;&#226;&#243;&#229;&#236;\">&#205;&#229; &#243;&#247;&#224;&#241;&#242;&#226;&#243;&#229;&#236;</option> 
</select></td>";



При помощи этой конструкции данные заносятся в бд: name=\"am[".$rez[0]."]

вот так выглядит запрос к бд


if (!empty($_POST['boot'])) {                                                                //// &#238;&#242;&#239;&#240;&#224;&#226;&#234;&#224; &#228;&#224;&#237;&#237;&#251;&#245; &#241; &#234;&#237;&#238;&#239;&#234;&#232;
    while( (list($idx,$val) = each($ar)) and (list($idx,$val) = each($am)) )
    {
     pg_query("UPDATE konkurs SET otv='".$ar[$idx]."', rez='".$am[$idx]."' WHERE id=$idx"); ////&#238;&#225;&#237;&#238;&#226;&#235;&#229;&#237;&#232;&#229; &#226; &#225;&#228; &#240;&#229;&#228;&#224;&#234;&#242;&#232;&#240;&#243;&#229;&#236;&#251;&#245; &#228;&#224;&#237;&#237;&#251;&#245;
    }
}

   
 
 автор: sim5   (10.10.2007 в 17:02)   письмо автору
 
   для: rez   (10.10.2007 в 16:51)
 

Зачем вы вставляете эти некчемные длинные "портянки" кода? Вы думаете, что каждый на лету ковертирует это &#238;&#225;&#237;&#238;&#226;&#235;&#229; в удобочитаемый формат? Вы выше читали? Нельзя так делать!!!:


<?
echo  "Выводим, используя echo, и ни с того, ни с чего, вставляем РНР код <?=$rez['10']?>";
//вы думаете так будет работать?
?> 

Вы просто на тестовой странице проверьте маленькие части того, чего вы делаете - ошибок у вас предостаточно, а вы их даже не потрудились устранить.

   
 
 автор: Faraon   (10.10.2007 в 17:09)   письмо автору
 
   для: rez   (10.10.2007 в 16:51)
 

Если уж вам не имется именно так сделать, то тогда такой вариант :)

<?php
echo  "<td><select name=\"am[".$rez[0]."]\" style=\"width:100\">
<option align=\"center\" value=\"\">"
;
?>
<?=$rez
['10'?>
<?php
echo "</option>
<option value=\"&#194;&#251;&#232;&#227;&#240;&#224;&#237;\">&#194;&#251;&#232;&#227;&#240;&#224;&#237;</option>
<option value=\"&#207;&#240;&#238;&#232;&#227;&#240;&#224;&#237;\">&#207;&#240;&#238;&#232;&#227;&#240;&#224;&#237;</option>
<option value=\"&#205;&#229; &#241;&#238;&#241;&#242;&#238;&#255;&#235;&#241;&#255;\">&#205;&#229; &#241;&#238;&#241;&#242;&#238;&#255;&#235;&#241;&#255;</option>
<option value=\"&#205;&#229; &#243;&#247;&#224;&#241;&#242;&#226;&#243;&#229;&#236;\">&#205;&#229; &#243;&#247;&#224;&#241;&#242;&#226;&#243;&#229;&#236;</option>
</select></td>"
;
?>

   
 
 автор: rez   (10.10.2007 в 17:32)   письмо автору
 
   для: Faraon   (10.10.2007 в 17:09)
 

Спасибо большое всем, разобрался! Извините за &#194;&#251;&#232;&#227;&#240;&#224;&#237
это просто русские буквы в кои8-р перенесенные из редактора в форум!

Еще раз спасибо!

   
 
 автор: rez   (10.10.2007 в 17:51)   письмо автору
 
   для: rez   (10.10.2007 в 17:32)
 

Блин, извините за назойливость! Вот такая трабла получилась:
значит если уже есть какието данные в таблице, то они отображаются, т.к.

<?=$rez['10'?>
берет эти данные из бд. если в другие поля что то внести то уже внесенные данные затираются, т.к. переменная $rez[0] пуста (она отвечает за запись данных в таблицу) можно ли вот в эту часть кода:

<option align=\"center\" value=\" \">";  \\\ в параметр value=""


что нибудь вставить, ну типа хотя бы того же: <?=$rez['10'] ?> чтоб уже имеющиеся данные просто перезаписывались а не стирались?
Спасибо!

   
 
 автор: rez   (11.10.2007 в 14:38)   письмо автору
 
   для: rez   (10.10.2007 в 17:51)
 

Подскажите пожалуйста!!!! Очень нужно!!!! ='(

   
 
 автор: sim5   (11.10.2007 в 14:43)   письмо автору
 
   для: rez   (11.10.2007 в 14:38)
 

Вы странный человек, вы сами не знаете куда ткнуть это <?=$rez['10'] ?>, а хотите чтобы вам кто-то это подсказал. Что это такое <?=$rez['10'] ?> вообще? Почему вы его то в одно место, то в другое пытаетесь притулить, надеясь что заработает? Может вам лучше создать новую тему, описать массив, который вы хотите вставить в SELECT, и спросить как сделать это?

   
Rambler's Top100
вверх

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