|
|
|
| драсьте,у меня опять проблемка...вот есть такой код (его кусочек)
<?php
for($i=0;$i==$count1;$i++)
{
if ($arr1['$i'] !== "")
{
$ara = $arr1['$i'];
$query_golos20 = "insert into golos values (0,'$ara',0,'$id_poll');";
$ok2 = mysql_query($query_golos20);
}
}
?>
|
так вот...у меня есть страничка на которой несколько форм,они у меня объединены в один массив golos для удобства,они все имеют разные,но значения из одной темы....короче,я все это дело обрабатываю в другом скрипте,я уже написал,чтобы если они все не пустые,то их поочереди заношу в базу,а как теперь мне сделать так,чтоб если пустой,то нафиг не нужен,а если что-то написано ьыло в форме,то в базу прямиком,я пишу вот так (выше) но нифига...тока пишет что мол долго все это делается (больше 30 сек)и ошибка...помогите...очень нано... | |
|
|
|
|
|
|
|
для: LimP
(05.10.2004 в 16:32)
| | ну по крайней мере на паскале так бы работало,это 100%,но как тут,я даже не знаю,чо он не хочет.... | |
|
|
|
|
|
|
|
для: LimP
(05.10.2004 в 16:32)
| | Пару вопросов:
1) "они у меня объединены в один массив golos" - они это кто? формы, если да, то как они объединены в массив?
2) Откуда берётся массив $arr1
3) Переменная $count1 всегда равна 0? Если она не равна нулю, цикл
<?php
for($i=0;$i==$count1;$i++)
?>
|
не выполняется ни разу, если равна 0, один раз - это нормально? | |
|
|
|
|
|
|
|
для: cheops
(05.10.2004 в 16:43)
| | вот весь код,чтоб не мучались код это вот фома :
<html>
<head>
<title>Голосование - Добавить Голосование</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
<!--
.style1 {
font-family: verdana;
font-size: 10px;
}
-->
</style></head>
<body>
<center>
<form action="addpoll.php" method="post">
<p>Вопрос Блока:
<input name="question" type="text" size="60">
</p>
<p class="style1">Пункты голосования,введите в поля пункты блока голосования...если полей больше чем вам нужно,то оставьте их пустыми...</p>
<p class="style1">Если же полей меньше,чем вам необходимо,то для дополнения или изменения блока,нажмите <a href="formeditpoll.php ">эту ссылку...</a></p>
№1: <input name="golos[]" type="text" size="30"> <br>
№2: <input name="golos[]" type="text" size="30"> <br>
№3: <input name="golos[]" type="text" size="30"> <br>
№4: <input name="golos[]" type="text" size="30"> <br>
№5: <input name="golos[]" type="text" size="30"> <br>
№6: <input name="golos[]" type="text" size="30"> <br>
№7: <input name="golos[]" type="text" size="30"> <br>
№8: <input name="golos[]" type="text" size="30"> <br>
№9: <input name="golos[]" type="text" size="30"> <br>
№10:<input name="golos[]" type="text" size="30"> <br><br>
<input type="submit" value="Добавить Блок">
</form>
</center>
</body>
</html>
|
а вот обработчик....
<?php
include "../config.php";
$question = $_POST['question'];
$query_poll = "insert into poll values (0,'$question',now());";
$ok = mysql_query($query_poll);
if (!$ok)
{
echo "<center><b>?????? ??? ?????? ? ???????!".mysql_error()."</b></center>";
}
$oka1 = "select * from poll where name='$question';";
$oka = mysql_query($oka1);
$id1 = mysql_fetch_array($oka);
$id_poll = $id1['id_poll'];
$count1 = count($_POST['golos']);
$arr1 = $_POST['golos'];
$in = in_array("",$arr1);
if (!$in)
{
$arr2 = $arr1['1'];
$arr3 = $arr1['2'];
$arr4 = $arr1['3'];
$arr5 = $arr1['4'];
$arr6 = $arr1['5'];
$arr7 = $arr1['6'];
$arr8 = $arr1['7'];
$arr9 = $arr1['8'];
$arr10 = $arr1['9'];
$arr11 = $arr1['10'];
$query_golos1 = "insert into golos values (0,'$arr2',0,'$id_poll');";
$query_golos2 = "insert into golos values (0,'$arr3',0,'$id_poll');";
$query_golos3 = "insert into golos values (0,'$arr4',0,'$id_poll');";
$query_golos4 = "insert into golos values (0,'$arr5',0,'$id_poll');";
$query_golos5 = "insert into golos values (0,'$arr6',0,'$id_poll');";
$query_golos6 = "insert into golos values (0,'$arr7',0,'$id_poll');";
$query_golos7 = "insert into golos values (0,'$arr8',0,'$id_poll');";
$query_golos8 = "insert into golos values (0,'$arr9',0,'$id_poll');";
$query_golos9 = "insert into golos values (0,'$arr10',0,'$id_poll');";
$query_golos10 = "insert into golos values (0,'$arr11',0,'$id_poll');";
$ok1 = mysql_query($query_golos1);
$ok2 = mysql_query($query_golos2);
$ok3 = mysql_query($query_golos3);
$ok4 = mysql_query($query_golos4);
$ok5 = mysql_query($query_golos5);
$ok6 = mysql_query($query_golos6);
$ok7 = mysql_query($query_golos7);
$ok8 = mysql_query($query_golos8);
$ok9 = mysql_query($query_golos9);
$ok10 = mysql_query($query_golos10);
}
else
{
for($i=0;$i=$count1;$i++)
{
if ($arr1['$i'] !== "")
{
$ara = $arr1['$i'];
$query_golos20 = "insert into golos values (0,'$ara',0,'$id_poll');";
$ok2 = mysql_query($query_golos20);
}
}
}
echo "<meta http-equiv='refresh' content='0;url=index.php'>";
?>
|
я вот чую,что чота неправильно ваще написал в обработчике и по-моему 2 раза там все это переделываю,короче,помогите обрсботчика отладить...я надеюсь теперь вы поняли мою задумку... :))) | |
|
|
|
|
|
|
|
для: LimP
(05.10.2004 в 17:47)
| | Хм... может лучше так:
<?php
include "../config.php";
$question = $_POST['question'];
$query_poll = "insert into poll values (0,'$question',now());";
$ok = mysql_query($query_poll);
if (!$ok)
{
echo "<center><b>?????? ??? ?????? ? ???????!".mysql_error()."</b></center>";
}
$oka1 = "select * from poll where name='$question';";
$oka = mysql_query($oka1);
$id1 = mysql_fetch_array($oka);
$id_poll = $id1['id_poll'];
$golos = $_POST['golos'];
if(!empty($golos))
{
$query = "INSERT INTO golos VALUES ";
foreach($type as $val)
{
if(!empty($val)) $query .= "(0, '$val', 0, $id_poll),";
}
// Удаляем последнюю запятую
$query = substr($query, 0, strlen($query) - 1);
// Выполняем запрос
if(!mysql_query($query))
{
echo mysql_error()."<br>";
echo $query."<br>";
}
}
echo "<meta http-equiv='refresh' content='0;url=index.php'>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(05.10.2004 в 18:50)
| | ваш скрипт выдает вот такие ошибки
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\www\scripts\site\poll\admin\addpoll.php on line 2
почти в каждой строке...видимо тут куча каких-то скрытых символов....у меня не работает... | |
|
|
|
|
|
|
|
для: LimP
(05.10.2004 в 20:21)
| | cheops,помоги мне лучше как у меня написано...тока вот нужно собрать воедино...там где у меня много раз написано почти одно и то же...так через while или какой другой цикл и вот там что я писал,в чем собственно вся проблема...где for у меня дело в том,что если заполнены все формы,то все работает на ура,а если не все,вот тогда все и начинается..... | |
|
|
|
|
|
|
|
для: LimP
(05.10.2004 в 20:24)
| | А вот откуда невидимые символы берутся - при копировании из браузера... | |
|
|
|
|
|
|
|
для: cheops
(05.10.2004 в 20:27)
| | >А вот откуда невидимые символы берутся - при копировании из
>браузера...
кстати и не впервые..... | |
|
|
|
|
|
|
|
для: LimP
(05.10.2004 в 21:08)
| | А браузер какой? У меня на машинах WinXP и Win2000 - давненько такого не наблюдал... Правда использую практически только Opera.... | |
|
|
|
|
|
|
|
для: cheops
(05.10.2004 в 21:12)
| | анологично,winXP и Opera 7....даже код,который сам написал выше.....который несколькими постами выше,при копировании,не работает...придется седня печатать его заново...как напечатаю...испралю все...кстати,я его когда себе на листок перепечптывал,нашел кучу ошибок ,например "!==" :) | |
|
|
|
|
|
|
|
для: LimP
(05.10.2004 в 21:08)
| | А что за программой верстаете код? Ну т.е. куда вставляете скопированный текст. Может она что не понимает и свое добавляет.
Например, если я сначала всталяю в Word, то он понимает раскраску символов и текст также раскрашивает. Т.е. при копировании, видимо, не только текст копируется, а и теги всякие невидимые.
А далее уже программа решает что ей отбросить, а что оставить. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(06.10.2004 в 10:17)
| | а я сначала либо в блокнот,но ваще в php editor...наверное из-за этого....ща попробую попробовать через word | |
|
|
|
|
|
|
|
для: LimP
(06.10.2004 в 15:24)
| | >ща попробую попробовать через word
Да, нет. Это я как пример привел, что спецсимволы раскраски кода тоже копируются. А вот как они обрабатываются - это на усмотрение программы. Через Word мне кажется совсем не удобно копировать... | |
|
|
|
|
|
|
|
для: LimP
(06.10.2004 в 15:24)
| | ага ,вот,заработало...тока теперь вот такая ошибка...тут в коде ошибка,тока где???
Warning: Invalid argument supplied for foreach() in C:\www\scripts\site\poll\admin\addpoll.php on line 18
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
INSERT INTO golos VALUES
|
| |
|
|
|
|
|
|
|
для: LimP
(06.10.2004 в 15:29)
| | я вот какой написал новы й код...тока он не все добававляет,а бобавляет тока первый элемент...как мне сделать,чтоб он все добавлял???
<?php
include "../config.php";
$question = $_POST['question'];
$query_poll = "insert into poll values (0,'$question',now());";
$ok = mysql_query($query_poll);
//----------------------------------
$oka1 = "select * from poll where name='$question';";
$oka = mysql_query($oka1);
$id1 = mysql_fetch_array($oka);
$id_poll = $id1['id_poll'];
$count1 = count($_POST['golos']);
$arr1 = $_POST['golos'];
//----------------------------------
$a=-1;
do
{
$a++;
if($a == $count1)
{
break;
}
if ($arr1[$a] != "")
{
$ara = $arr1[$a];
$query_golos = "insert into golos values (0,'$ara',0,'$id_poll');";
$ok = mysql_query($query_golos);
}
}while ($a == $count1);
?>
|
| |
|
|
|
|
|
|
|
для: LimP
(06.10.2004 в 15:29)
| | Я так понимаю вот здесь опечатка вкралась
foreach($golos as $val)
{
if(!empty($val)) $query .= "(0, '$val', 0, $id_poll),";
}
|
$golos вместо $type поставить надо. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(06.10.2004 в 15:43)
| | все,ребят,не парьтесь,я сделал через while... :) | |
|
|
|
|
|
|
|
для: LimP
(06.10.2004 в 17:43)
| | Ок, не паримся :) | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(06.10.2004 в 18:00)
| | теперь попрошу попариться всех над последним постом :))) | |
|
|
|
|
|
|
|
для: LimP
(05.10.2004 в 20:24)
| | Мне кажется
следует заменить на
| |
|
|
|
|
|
|
|
для: cheops
(05.10.2004 в 18:50)
| |
$oka1 = "select * from poll where name='$question';";
$oka = mysql_query($oka1);
$id1 = mysql_fetch_array($oka);
$id_poll = $id1['id_poll'];
|
рискну предположить, что данный кусок кода используется для выбора из базы значения поля типа Autoincrement - idpoll. Если это так, то гораздо удобнее и проще бущет использовать функцию mysql_insert_id(), которая возвращает ID, сгенерированный для последнего запроса типа INSERT | |
|
|
|
|
|
|
|
для: Igorek
(05.10.2004 в 20:24)
| | неверное предположение...это я вытаскиваю вопрос блока голосования.... | |
|
|
|
|
|
|
|
для: LimP
(06.10.2004 в 07:57)
| | я с прошлым разобрался сделал,вот,посмотрите этот,это редактирование блока голосования...тут нано извлечь из базы вопрос и поместить его в поле(это получилось),затем извлечь из базы варианты ответов на голосование...,посчитать из,вывести такое жеколичество форм,сколько и ответов в базе по данному вопросу (по данному id_poll) и в этих формах должны быть прописаны эти ответы (values)...вот как я накалякал...
<?php
include "../config.php";
$id = $_GET['id_poll'];
$select_quest = "select * from poll where id_poll='$id';";
$query = mysql_query($select_quest);
$n = mysql_fetch_array($query);
$quest = $n['name'];
//-----------------------------------
$oka1 = "select * from golos where id_poll='$id';";
$oka = mysql_query($oka1);
$arr = mysql_fetch_array($oka);
$ara = $arr['name'];
$count = count($arr);
//-----------------------------------
function add_form()
{
$a=0;
while ($a != $count)
{
$a++;
$arr1 = $ara[$a];
echo ("<input type="text" name="golos[]" size="30" value="<? echo $arr1; ?>"><br>");
}
}
?>
<html>
<head>
<title>??????????? - ????????? ???? ???????????</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<form action="addpoll.php" method="post">
<center>
<p>?????? ?????:
<input name="question" type="text" size="60" value="<? echo $quest; ?>">
</p>
<?php add_form(); >?
<input type="submit" value="????????? ????">
</center>
</form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: LimP
(06.10.2004 в 17:59)
| | :) | |
|
|
|
|