RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 380
от 25.06.2006, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 311, Экспертов: 44
В номере:Вопросов: 6, Ответов: 15


Вопрос № 46709: Есть база данных, выводит список элементов напротив стоит checkbox т.е. при нажатии отправки, создается массив через форму мотодом POST выводятся все что нужно, вопрос возникает в другом как из полученного массива удалять элемент по выбору, чтобы все...
Вопрос № 46721: Здравствуйте Эксперты! Скажите, пожалуйста, в чем ошибка php кода. Есть отдельный *.html файл в котором находятся формы, дак этот вот код должен принимать содержимое этих форм, после нажатия соответствующей кнопки в *.html файле, и выводить это на эк...
Вопрос № 46723: есть код <? for($i=0; $i<count($id); $i++) echo $id[$i]." "; ?> <form action="Sravnenie_video.php"> <input name="id[]" type="text" value="<?=$id?>"...
Вопрос № 46742: Возник следующий вопрос. Обращаюсь к профессионалам. Думаю, он не покажется Вам сложным. Как средствами PHP заполнить таблицу из массива (MySQL или XML), естественно произвольного по размеру, и при этом автоматически осуществить диагона...
Вопрос № 46790: Здравствуйте! у меня есть flash ролик по адресу http://somesite.ru/somefolder/some.swf, возможно ли узнать его width и height с помощью PHP скрипта (может другим саособом)??? Помогите очень надо... Ну или как можно указав только width, сд...
Вопрос № 46806: Здравствуйте, уважаемые эксперты! Чтоб бы вы посоветовали по оптимизации поиска по таблице MySQL(организация самой базы, определнное построение запросов, использование каких-нибудь приемов...что угодно)? Т.е. у меня будет ОГРОМНОЕ количество записей(...

Вопрос № 46.709
Есть база данных, выводит список элементов напротив стоит checkbox т.е. при нажатии отправки, создается массив через форму мотодом POST выводятся все что нужно, вопрос возникает в другом как из полученного массива удалять элемент по выбору, чтобы все остальные оставались
и как лучше сделать перебор автомассива
удалять необходимо только по нажатию кнопки, как написать сценарий чтобы по нажатию удалилась из массива число, и обновить эту-же страницу с новым измененным массивом
Отправлен: 19.06.2006, 15:26
Вопрос задал: LanParty (статус: 3-ий класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: PVS
Здравствуйте, LanParty!
Предполагаю, что БД - mysql. Если нет - поменяйте функции на соответствующие.

Вариант 1)удалить только из массива, не трогать базу данных (изменить отображение):
$res=mysql_query("select * from mytable");
$i=0;
while($i<mysql_num_rows($res)){
$show_this_one=1;
foreach($selected_arr as $sel_item){
if($sel_item==mysql_result($res,$i,"myfield"))$show_this_one=0;
}
if($show_this_one){
/*показываем запись*/
}
}

Вариант 2)удалить из базы
foreach($selectes_arr as $sel_item){
mysql_query("delete from mytable where myfield=".$sel_item);
};
/*Здесь - выборка из базы і отображение пользователю*/

Вариант 3)отметки пользователь ставит для чего-то другого, их надо сохранить при операции удаления, а напротив каждого из элементов массива стоит кнопка "Удалить"
$res=mysql_query("select * from mytable");
$i=0;
while($i<mysql_num_rows($res)){
if($_REQUEST["del".mysql_result($res,$i,"myfield")]=="Удалить"){
/*здесь либо удаляем из базы, либо просто не показываем, но если не показываем, то запоминаем как-нибудь кого именно не показываем*/
}else{
$check_this_one=0;
foreach($selected_arr as $sel_item){
if($sel_item==mysql_result($res,$i,"myfield"))$check_this_one=1;
}
if($check_this_one){
/*показываем запись отмеченой*/
}else{
/*показываем запись неотмеченой*/
}
}
}
кнопку "Удалить" предлагаю сделать с такими параметрами:
name=del<елемент массива> value=Удалить
а кнопку отправить:
name=send value=Отправить
и действия с массивом производить по условию $_REQUEST["send"]=="Отправить"
Удачи!
Ответ отправил: PVS (статус: 3-ий класс)
Ответ отправлен: 19.06.2006, 16:03

Отвечает: Stamm
Здравствуйте, LanParty!
Небольшое дополнение:
Лучше удалять, используя один запрос к MySQL:
mysql_query("DELETE FROM mytable WHERE myfield=".implode(',',$selectes_arr));
---------
В день - один, ну два подвига, не больше...
Ответ отправил: Stamm (статус: Студент)
Ответ отправлен: 19.06.2006, 17:11

Отвечает: Cybernetic_Creature
Здравствуйте, LanParty!
вы задавали этот вопрос
не надо задавать один и тот же вопрос дважды.
если у вас есть дополнение пишите в мини форум
http://rusfaq.ru/?Step=info&Action=Question&ID=46699
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 20.06.2006, 10:04


Вопрос № 46.721
Здравствуйте Эксперты! Скажите, пожалуйста, в чем ошибка php кода. Есть отдельный *.html файл в котором находятся формы, дак этот вот код должен принимать содержимое этих форм, после нажатия соответствующей кнопки в *.html файле, и выводить это на экран, но этого не происоходит пишет об ошибке "Parse error: parse error, unexpected '{', expecting '(' in E:\Inet\localhost\www\form.php on line 3". Заранее спасибо за ответ!

Приложение:

Отправлен: 19.06.2006, 16:30
Вопрос задал: !Юра (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Straight
Здравствуйте, !Юра!
А что это за странная конструкция:
if (!isset{$go})
Там не фигурные скобки нужны, а круглые.
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 19.06.2006, 16:44

Отвечает: Stamm
Здравствуйте, !Юра!
В самой ошибке написано, что стоит {,а ожидалась (.
---------
В день - один, ну два подвига, не больше...
Ответ отправил: Stamm (статус: Студент)
Ответ отправлен: 19.06.2006, 17:03

Отвечает: XMF
Здравствуйте, !Юра!
--
Если не секрет, по какой книге вы учились?

Ошибки:

1. Вам уже сказали про isset()... использывать нужно: if(!isset($var)) {...}

2. Функция xit(1).. что-то новое :) exit(); наверное? )))
3. Вы используете else и код... Выполнится только 1 строка.. В вашем случае нужно написать else
{
...
}

4. Если кто-то укажет параметр go... но не укажет остальные, то вылетик ОЧЕНЬ много ошибок... то есть нет обработок случаев, когда других параметров нет...

--
Если есть трудности, пишите.
Ответ отправил: XMF (статус: 6-ой класс)
Ответ отправлен: 19.06.2006, 17:21
Оценка за ответ: 5
Комментарий оценки:
XMF книга называется "PHP 5 Самоучитель" автор Kolisnichenko, но я ещё только в процессе обучения... ;-P Всё дело в том что эта книга в ужасном формате *.djvu с ужасным качеством и что-то просто отсутствует в тексте, например вот что-то из кода...

Отвечает: Mark_by
Здравствуйте, Юра!
В данной коде неправильно использована функция isset(). Необходимо использовать обычные, а не фигурные скобки.
Ниже приведён исправленный код.

Приложение:

---------
Тысячи путей ведут к заблуждению, к истине только один. (Ж. Руссо)

Ответ отправил: Mark_by (статус: 1-ый класс)
Ответ отправлен: 19.06.2006, 22:33

Отвечает: Cybernetic_Creature
Здравствуйте, !Юра!
вместо
if (!isset{$go})
напишите
if (!isset($go))

http://php.net/manual/ru/function.isset.php
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 22.06.2006, 14:57


Вопрос № 46.723
есть код

<?
for($i=0; $i<count($id); $i++)
echo $id[$i]." ";
?>
<form action="Sravnenie_video.php">
<input name="id[]" type="text" value="<?=$id?>"/>
<input type="submit" value="Удалить из списка" name="B1"></p>
</form>
сам код

и вот что переадется строкой
___________.php?id%5B%5D=17&id%5B%5D=16&id%5B%5D=14&id%5B%5D=15&id%5B%5D=24&id%5B%5D=25&B1=%D1%F0%E0%E2%ED%E8%F2%FC

как настроить данную форму чтобы он убирал элемент
Отправлен: 19.06.2006, 16:55
Вопрос задал: LanParty (статус: 3-ий класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jeka911
Здравствуйте, LanParty!

Если я правильно понял

Можно выводить список так (см. прилож.),
где del.php - скрипт, который удаляет из списка эл-т, с переданным ему id, и перенаправляет браузер на исходный скрипт уже с обновленным списком.

Приложение:

---------
Шахтер - чемпион!!!

Ответ отправил: Jeka911 (статус: 4-ый класс)
Ответ отправлен: 19.06.2006, 17:29

Отвечает: Cimus
Здравствуйте, LanParty!

Если я Вас правильно понял, то должно получиться, что- то вро де этого.
Смотрите приложение.

Приложение:

---------
Достичь можно любых высот !

Ответ отправил: Cimus (статус: 3-ий класс)
Ответ отправлен: 19.06.2006, 17:31
Оценка за ответ: 5
Комментарий оценки:
Отлично, основа положена, далее буду копатся спасибо

Отвечает: Alexey Vilchinsky
Здравствуйте, LanParty!
попробуй отправить данные методом post

---------
Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: 9-ый класс)
Ответ отправлен: 20.06.2006, 08:28

Отвечает: Cybernetic_Creature
Здравствуйте, LanParty!
<?

for($i=0; $i<100; $i++)

if ($i!==$_POST['id'][$i])echo $id[$i]." ";

?>

<form action="Sravnenie_video.php" method=post>

<input name="id[]" type="text" value="<?=$id?>"/>

<input type="submit" value="Удалить из списка" name="B1"></p>

</form>

Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 20.06.2006, 10:08
Оценка за ответ: 1
Комментарий оценки:
все может быть но не работает


Вопрос № 46.742

Возник следующий вопрос. Обращаюсь к профессионалам. Думаю, он не покажется Вам сложным.

Как средствами PHP заполнить таблицу из массива (MySQL или XML), естественно произвольного по размеру, и при этом автоматически осуществить диагональную окраску ячеек полученной таблицы, частным случаем которой является "шахматная" (т.е. через 1 клетку)?
Отправлен: 19.06.2006, 22:53
Вопрос задал: Протасов Алексей Викторович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Cimus
Здравствуйте, Протасов Алексей Викторович!
Смотри приложение, там код с коментариями.

Приложение:

---------
Достичь можно любых высот !

Ответ отправил: Cimus (статус: 3-ий класс)
Ответ отправлен: 19.06.2006, 23:29
Оценка за ответ: 5


Вопрос № 46.790
Здравствуйте!
у меня есть flash ролик по адресу http://somesite.ru/somefolder/some.swf, возможно ли узнать его width и height с помощью PHP скрипта (может другим саособом)???
Помогите очень надо...
Ну или как можно указав только width, сделать чтобы height подогналось автоматически (с помощью html или javascript, или ещё как-нибудь...)
Выручайте!
Отправлен: 20.06.2006, 11:12
Вопрос задал: Dushin Igor (статус: 8-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Cybernetic_Creature
Здравствуйте, Dushin Igor!
ShockWave Flash Functions
http://php.net/manual/ru/ref.swf.php

Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 21.06.2006, 14:52


Вопрос № 46.806
Здравствуйте, уважаемые эксперты! Чтоб бы вы посоветовали по оптимизации поиска по таблице MySQL(организация самой базы, определнное построение запросов, использование каких-нибудь приемов...что угодно)? Т.е. у меня будет ОГРОМНОЕ количество записей(записи примерно вида id int auto_increment, name varchar, info varchar). Как допиться максимально возможной скорости поиска. Даже небольшие советы помогут. В PHP и MySQL разбираюсь неплохо, поэтому не нужно особо тщательно разъяснять. Просто прошу ваших советов по данному вопросу. Заранее очень благодарен!!!!
Отправлен: 20.06.2006, 13:08
Вопрос задал: Андрющенко Вячеслав Васильевич (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Santana
Здравствуйте, Андрющенко Вячеслав Васильевич!
1) используй в запросах индексы (качественно ускоряет)
2) не используй неоптимизируемые конструкции (на пример OR, лучше union)
и тд и тп. вообще почитай, есть много литературы по оптимизации. по моему грубер на эту тему много пишет
Ответ отправил: Santana (статус: 4-ый класс)
Ответ отправлен: 20.06.2006, 13:24
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное