//последовательность запроса получает значения из формы с чекбоксами
$y[]=$_POST['step1'];
$y[]=$_POST['step2'];
$y[]=$_POST['step3'];
$y[]=$_POST['step4'];
$y[]=$_POST['step5'];
$y[]=$_POST['step6'];
$y[]=$_POST['step7'];
$y[]=$_POST['step8'];
$wer = implode("",$y); //объединяем в строку
echo 'Последовательность запроса='.$wer.'<br />';
//подключение опустил
if(isset($_POST['go'])){
$result=mysql_query('SELECT * FROM avto');// делаем выборку из таблицы
while($row=mysql_fetch_array($result))// берем результаты из каждой строки
{
$wer=$row['ch_posl']; //выбор из столбца ch_posl
echo 'Последовательность из базы='.$wer.'<br />';// выводим данные
$x = explode("/",$wer); //послед из базы разбиваем строку на массив $x[]
}}
//ПРАВИЛА
//цифра 1
if(($y[0])== $x[0])
$zer[0]="1";
if(($y[0]+1)== $x[0])
$zer[0]="9";
if(($y[0]+2)==$x[0])
{$zer[0]="0";}
if(($y[0]+3)==$x[0])
{$zer[0]="0";}
if(($y[0]-1)==$x[0])
{$zer[0]="2";}
if(($y[0]-2)==$x[0])
{$zer[0]="3";}
if(($y[0]-3)==$x[0])
{$zer[0]="4";}
//цифра 2
if($y[1]==$x[1])
{$zer[1]="1";}
if(($y[1]+1)==$x[1])
{$zer[1]="4";}
if(($y[1]+2)==$x[1])
{$zer[1]="0";}
if(($y[1]+3)==$x[1])
{$zer[1]="0";}
if(($y[1]-1)==$x[1])
{$zer[1]="2";}
if(($y[1]-2)==$x[1])
{$zer[1]="3";}
if(($y[1]-3)==$x[1])
{$zer[1]="4";}
//цифра 3
if($y[2]==$x[2])
{$zer[2]="1";}
if(($y[2]+1)==$x[2])
{$zer[2]="6";}
if(($y[2]+2)==$x[2])
{$zer[2]="0";}
if(($y[2]+3)==$x[2])
{$zer[2]="0";}
if(($y[2]+4)==$x[2])
{$zer[2]="0";}
if(($y[2]+5)==$x[2])
{$zer[2]="0";}
if(($y[2]-1)==$x[2])
{$zer[2]="2";}
if(($y[2]-2)==$x[2])
{$zer[1]="3";}
if(($y[2]-3)==$x[2])
{$zer[1]="4";}
if(($y[2]-4)==$x[2])
{$zer[1]="5";}
if(($y[2]-5)==$x[2])
{$zer[1]="6";}
//цифра 4
if($y[3]==$x[3])
{$zer[3]="1";}
if(($y[3]+1)==$x[3])
{$zer[3]="5";}
if(($y[3]+2)==$x[3])
{$zer[3]="0";}
if(($y[3]+3)==$x[3])
{$zer[3]="0";}
if(($y[3]+4)==$x[3])
{$zer[3]="0";}
if(($y[3]-1)==$x[3])
{$zer[3]="2";}
if(($y[3]-2)==$x[3])
{$zer[3]="3";}
if(($y[3]-3)==$x[3])
{$zer[3]="4";}
if(($y[3]-4)==$x[3])
{$zer[3]="5";}
$str = implode("/",$zer); //объединяем в строку
echo 'Последовательность сравнения= '.$str.'';
Спустя 4 минуты, 24 секунды (26.01.2012 - 20:19) Winston написал(а):
Цитата (13_demon_89 @ 26.01.2012 - 19:15) |
Помоги понять ошибку. |
Так, а в чем ошибка?
Спустя 6 минут, 3 секунды (26.01.2012 - 20:25) 13_demon_89 написал(а):
Массив $zer[] не формируется или формируется но не соответствует условиям)
Спустя 1 минута, 50 секунд (26.01.2012 - 20:27) inpost написал(а):
Включи в начале
error_reporting(E_ALL);
И ещё, правильно составленный вопрос - 50% того, что получишь на него ответ.
error_reporting(E_ALL);
И ещё, правильно составленный вопрос - 50% того, что получишь на него ответ.
Спустя 9 минут, 31 секунда (26.01.2012 - 20:37) 13_demon_89 написал(а):
Вот ошибки:
Notice: Undefined offset: 1 in A:\home\localhost\www\dip\expert.php on line 214
Notice: Undefined offset: 2 in A:\home\localhost\www\dip\expert.php on line 229
Notice: Undefined offset: 3 in A:\home\localhost\www\dip\expert.php on line 259
строки попадают на условия:
Notice: Undefined offset: 1 in A:\home\localhost\www\dip\expert.php on line 214
Notice: Undefined offset: 2 in A:\home\localhost\www\dip\expert.php on line 229
Notice: Undefined offset: 3 in A:\home\localhost\www\dip\expert.php on line 259
строки попадают на условия:
Т.е. ошибка в цифре, что указывает на элемент массива
if(($y[3]-4)==$x[3])
if(($y[2]-1)==$x[2])
if($y[1]==$x[1])
Спустя 19 минут, 29 секунд (26.01.2012 - 20:56) 13_demon_89 написал(а):
Задача: сформировать и вывести массив $zer[] используя правила сравнения элементов массива $x[] с $y[].
Спустя 1 час, 43 минуты, 43 секунды (26.01.2012 - 22:40) walerus написал(а):
13_demon_89 - Что за привычка такая ? строки ошибок цитировать и код, не соответствуя последовательности ????
Может так нужно ?
Notice: Undefined offset: 1 in A:\home\localhost\www\dip\expert.php on line 214
Notice: Undefined offset: 2 in A:\home\localhost\www\dip\expert.php on line 229
Notice: Undefined offset: 3 in A:\home\localhost\www\dip\expert.php on line 259
Я конечно за компактность кода, но читабельность тоже как бы приятная вещь, пробелы поставить никак?
Сделай вывод переменных, чтоб понять что в них находится.
Это перед ПРАВИЛАМИ.
Это перед формированием строки $str в конце скрипта
Тогда как то понятнее будет, в чем проблема.
Может так нужно ?
Notice: Undefined offset: 1 in A:\home\localhost\www\dip\expert.php on line 214
Notice: Undefined offset: 2 in A:\home\localhost\www\dip\expert.php on line 229
Notice: Undefined offset: 3 in A:\home\localhost\www\dip\expert.php on line 259
Я конечно за компактность кода, но читабельность тоже как бы приятная вещь, пробелы поставить никак?
if( $y[1] == $x[1] )
if( ( $y[2] - 1 ) == $x[2] )
if( ( $y[3] - 4 ) == $x[3] )
Сделай вывод переменных, чтоб понять что в них находится.
Это перед ПРАВИЛАМИ.
print_r($y);
print_r($x);
Это перед формированием строки $str в конце скрипта
print_r($zer);
Тогда как то понятнее будет, в чем проблема.
Спустя 2 часа, 45 минут, 39 секунд (27.01.2012 - 01:25) 13_demon_89 написал(а):
Господа, ошибка где-то тут:
Т.е., получается, что при выборке из столбца ch_posl, все значения тоже заносятся в массив Array ( [0] => 14623761 [1] => 42682412 ). Возникает вопрос, как разбить каждый элемент массива $row на массив $x? сравнение по правилам должно произойти со всеми записями таблицы бд столбца ch_posl, и, соответственно, кол-во конечных массивов должно быть равно кол-ву записей в таблице. Но, записи то постоянно увеличиваются, неужели придется каждый раз дописывать код при добавлении новой записи в бд? Есть ли решение этой проблемы? Спасибо за внимание)
if(isset($_POST['go']))
{
$result=mysql_query('SELECT * FROM avto');// делаем выборку из таблицы
while($row=mysql_fetch_array($result))// берем результаты из каждой строки
{
$wer=$row['ch_posl']; //выбор из столбца ch_posl
$x = explode("/",$wer); //послед из базы разбиваем строку на массив $x[]
}}
Т.е., получается, что при выборке из столбца ch_posl, все значения тоже заносятся в массив Array ( [0] => 14623761 [1] => 42682412 ). Возникает вопрос, как разбить каждый элемент массива $row на массив $x? сравнение по правилам должно произойти со всеми записями таблицы бд столбца ch_posl, и, соответственно, кол-во конечных массивов должно быть равно кол-ву записей в таблице. Но, записи то постоянно увеличиваются, неужели придется каждый раз дописывать код при добавлении новой записи в бд? Есть ли решение этой проблемы? Спасибо за внимание)
Спустя 7 минут, 23 секунды (27.01.2012 - 01:33) inpost написал(а):
$x[] = explode("/",$wer);
Будет многомерный, каждый раз дописываться, а не перезаписываться!
Или foreach запихни между explode и $x.
Будет многомерный, каждый раз дописываться, а не перезаписываться!
Или foreach запихни между explode и $x.