[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: копирование результата SQL запроса в массив
otix()90
Добрый день, форумчане, вопрос следующий...
Имеется запрос на выборку, возвращает поля (имя, емаил, Н1, Н2, Н3)

вывод результат в таблице получился:

$resultsAll = mysql_query($sqlAll);
while ($row = mysql_fetch_array($resultsAll))
echo "<tr>";
echo "<td>";
echo $row["name"];
echo "<td>";
echo $row["email"];
echo "<td>";
итд......

Но потребовалось сохранить результат выборки в отдельном массиве, чтоб после 2 разных выборок сравнить 2 массива....

Как скопировать????))))))))



Спустя 1 минута, 5 секунд (16.07.2011 - 12:19) m4a1fox написал(а):
$row - без значений. Так кажется?!

Спустя 3 минуты, 31 секунда (16.07.2011 - 12:23) otix()90 написал(а):
В тупике....а какие значения он может или должен принимать??

Спустя 7 минут, 3 секунды (16.07.2011 - 12:30) m4a1fox написал(а):
Попробуй просто использовать $row. а где нибудь на странице напиши print_r($row).

Спустя 7 минут, 29 секунд (16.07.2011 - 12:37) otix()90 написал(а):
Вывел просто print_r($row)
Как я понимаю))) $row здесь представляет запись.
И в цикле просто пропускается по ячейкам...

Спустя 5 минут, 34 секунды (16.07.2011 - 12:43) m4a1fox написал(а):
otix()90
Эээээ... а так?

<?php
print_r($row);
?>

Спустя 6 минут, 24 секунды (16.07.2011 - 12:49) otix()90 написал(а):
Точно, благодарю, разобрался...надо было так сделать
while ($row = mysql_fetch_array($resultsAll))
{
while ( $f_arr[]=mysql_fetch_assoc($resultsAll) )
{
}
}
print_r($f_arr);

Резльтатом вышлел двумерный массив, как видимо и должно быть)))))

Спустя 12 минут, 31 секунда (16.07.2011 - 13:02) m4a1fox написал(а):
otix()90
Как-то запутано слишком. Цикл, в цикле, это круто!

Спустя 10 минут, 29 секунд (16.07.2011 - 13:12) pba написал(а):
$arr = array();

$resultsAll = mysql_query($sqlAll);
while ($row = mysql_fetch_array($resultsAll))
$arr[] = $row;

print_r($arr);

Спустя 16 минут, 52 секунды (16.07.2011 - 13:29) otix()90 написал(а):
переделал))
$resultsAll = mysql_query($sqlAll);
while ($f_arr[] = mysql_fetch_row($resultsAll))
{
if (($f_arr[5]!==$_POST['number_ustroen']) and ($f_arr[6]!==$_POST['number_ustroen']) and ($f_arr[7]!==$_POST['number_ustroen']))
{
$F_MAS = $f_arr;
}
}
print_r($F_MAS);
echo ($_POST['number_ustroen']);

Но появилась запарка......
number_ustroen = 1
а у одной из записей знчение 5 ячейки = 1 , что не по условию, следовательно должно не заносится в $F_MAS

Но при распечатке - запись в массиве.......

Спустя 16 минут, 6 секунд (16.07.2011 - 13:45) m4a1fox написал(а):
Цитата
!==
Кажестся, так нельзя. Это же булево значение. Если ты хочешь сделать не равно, тогда вот так !=

Спустя 9 минут, 51 секунда (16.07.2011 - 13:55) otix()90 написал(а):
так тоже пробовал (!=) тоже не правильно работает

Спустя 7 минут, 47 секунд (16.07.2011 - 14:03) m4a1fox написал(а):
Используй bb-теги и пришли свой код... Будем думать?!

Спустя 9 минут, 49 секунд (16.07.2011 - 14:13) otix()90 написал(а):
Вот код на нужный кусок...

//----------------------------------------------------------------------------
$resultsAll = mysql_query($sqlAll);
while ($f_arr[] = mysql_fetch_row($resultsAll))
{
if (($f_arr[5]!=$_POST['number_ustroen']) and ($f_arr[6]!=$_POST['number_ustroen']) and ($f_arr[7]!=$_POST['number_ustroen']))
{
$F_MAS = $f_arr;
}
}

print_r($F_MAS);
echo ('<br>'.'Номер устроенного = '.$_POST['number_ustroen']);
//----------------------------------------------------------------------------


Тут код забивки запроса в талицу, с проверкой

$resultsAll = mysql_query($sqlAll);
echo "<br>";
echo "<p>";
echo "<table border='1' >";
echo "<tr bgcolor='#badbad'>";
echo "<td >"."Имя пользователя ";
echo "<td>"."Телефон";
echo "<td>"."Контактный E-mail";
echo "<td>"."Куда устроен";
echo "<td>"."Первый номер";
echo "<td>"."Второй номер";
echo "<td>"."Третий номер";
echo "<td>"."Группа";
echo "</tr>";
echo "<tr>";
echo "</tr>";
echo "<tr>";
echo "</tr>";
while ($row = mysql_fetch_array($resultsAll))
{
if (($row[5]!==$_POST['number_ustroen']) and ($row[6]!==$_POST['number_ustroen']) and ($row[7]!==$_POST['number_ustroen']))
{





echo "<tr>";
echo "<td>";
echo $row["name"];
echo "<td>";
echo viv($row["tel"]);
echo "<td>";
echo $row["email"];
echo "<td>";
echo $row["number_ustroen"];
echo "<td>";
echo viv($row["number_1"])."<td>";

echo viv($row["number_2"]);
echo "<td>";
echo viv($row["number_3"]);
echo "<td>";
echo gru($row["groups"]);
echo "</td>";
echo "</tr>";
}

}

echo "</table>";


Тут процедура проверки работает правильно, в таблицу выводятся записи, прошедшие ее.

Спустя 6 минут (16.07.2011 - 14:19) m4a1fox написал(а):
otix()90
Запрос в базу - в студию!

Спустя 3 минуты, 20 секунд (16.07.2011 - 14:22) otix()90 написал(а):
Длинный малость))))

if (!empty($_POST[number_sadik1]) or !empty($_POST[number_sadik2]) or !empty($_POST[number_sadik3]))
{
// -----------------ПО ОДНОМУ ОКОШКУ-----------------------------------------------------------
if ($_POST[number_sadik1] !=="" and $_POST[number_sadik2] == "" and $_POST[number_sadik3] == "")
{
echo "<em><h3>Поиск среди пользователей тех, кто устроен в садик № ";
echo $_POST[number_sadik1]." и хочет перевестись в ваш садик</em></h3>";
$sqlAll = "select * from users where ".
"number_ustroen='".$_POST[number_sadik1]."'";

}
else if ($_POST[number_sadik1] =="" and $_POST[number_sadik2] !=="" and $_POST[number_sadik3] =="")
{
echo "<em><h3>Поиск среди пользователей тех, кто устроен в садик № ";
echo $_POST[number_sadik1]." и хочет перевестись в ваш садик</em></h3>";
$sqlAll = "select * from users where ".
"number_ustroen='".$_POST[number_sadik2]."'";

}
else if ($_POST[number_sadik1] =="" and $_POST[number_sadik2] =="" and $_POST[number_sadik3] !=="")
{
echo "<em><h3>Поиск среди пользователей тех, кто устроен в садик № ";
echo $_POST[number_sadik1]." и хочет перевестись в ваш садик</em></h3>";
$sqlAll = "select * from users where ".
"number_ustroen='".$_POST[number_sadik3]."'";
}

//-----------------ПО ДВУМ ОКОШКАМ-------------------------------------------------------------------
else if ($_POST[number_sadik1] !=="" and $_POST[number_sadik2] !=="" and $_POST[number_sadik3] =="")
{
echo "<em><h3>Поиск среди пользователей тех, кто устроен в садик № ";
echo $_POST[number_sadik1]." или № "; echo $_POST[number_sadik2]." и хочет перевестись в ваш садик</em></h3>";
$sqlAll = "select * from users where ".
"number_ustroen='".$_POST[number_sadik1]."' or ".
"number_ustroen='".$_POST[number_sadik2]."'";
}
else if ($_POST[number_sadik1] =="" and $_POST[number_sadik2] !=="" and $_POST[number_sadik3] !=="")
{
echo "<em><h3>Поиск среди пользователей тех, кто устроен в садик № ";
echo $_POST[number_sadik2]." или № "; echo $_POST[number_sadik3]." и хочет перевестись в ваш садик</em></h3>";
$sqlAll = "select * from users where ".
"number_ustroen='".$_POST[number_sadik2]."' or ".
"number_ustroen='".$_POST[number_sadik3]."'";
}
else if ($_POST[number_sadik1] !=="" and $_POST[number_sadik2] =="" and $_POST[number_sadik3] !=="")
{
echo "<em><h3>Поиск среди пользователей тех, кто устроен в садик № ";
echo $_POST[number_sadik1]." или № "; echo $_POST[number_sadik3]." и хочет перевестись в ваш садик</em></h3>";
$sqlAll = "select * from users where ".
"number_ustroen='".$_POST[number_sadik1]."' or ".
"number_ustroen='".$_POST[number_sadik3]."'";
}

//--------------ПО ТРЕМ ОКОШКАМ-----------------------------------------------------
else if ($_POST[number_sadik1] !=="" and $_POST[number_sadik2] !=="" and $_POST[number_sadik3] !=="")
{
echo "<em><h3>Поиск среди пользователей тех, кто устроен в садик № ";
echo $_POST[number_sadik1]." или № ";
echo $_POST[number_sadik2].", или № ";
echo $_POST[number_sadik3]." и хочет перевестись в ваш садик</em></h3>";

$sqlAll = "select * from users where ".
"number_ustroen='".$_POST[number_sadik1]."' or ".
"number_ustroen='".$_POST[number_sadik2]."' or ".
"number_ustroen='".$_POST[number_sadik3]."'";

}

Спустя 1 минута, 58 секунд (16.07.2011 - 14:24) otix()90 написал(а):
ЗЫ до этого где писал number_1, number_2, number_3.....это все же number_sadik1 итд.........подрезал))

Спустя 4 минуты, 10 секунд (16.07.2011 - 14:28) m4a1fox написал(а):

$sqlAll = "select * from users where"."number_ustroen='".$_POST[number_sadik3]."'";

Ээээ это как так получилось у тебя?
Я про вот это место

where"."number_ustroen
А точнее про точку между словами?

Спустя 3 минуты, 16 секунд (16.07.2011 - 14:31) otix()90 написал(а):
а че там нетак)))))))) вроде работает, поиск по одному только третему значению в БД и возможных трех

Спустя 49 секунд (16.07.2011 - 14:32) otix()90 написал(а):
Оммм.......видимо ошибки молодости)))) Но...... Работает))))))

Спустя 3 минуты, 55 секунд (16.07.2011 - 14:36) m4a1fox написал(а):
otix()90
Скажи, а текст вручную вбивается, или есть выпадающий список?!

Спустя 51 секунда (16.07.2011 - 14:37) otix()90 написал(а):
Раньше в Дреамвевере делал, сейчас блокнотик))

Спустя 9 минут, 17 секунд (16.07.2011 - 14:46) m4a1fox написал(а):
так я данные как вводятся в поля $_POST. Как текст ил как выпадающий список?

Спустя 1 минута, 36 секунд (16.07.2011 - 14:48) otix()90 написал(а):
да вроде списком...

Спустя 10 минут, 8 секунд (16.07.2011 - 14:58) m4a1fox написал(а):
Цитата
вроде
то есть ты сам не знаешь как?????

Спустя 3 минуты, 57 секунд (16.07.2011 - 15:02) otix()90 написал(а):
я не помню)) просто sql писал пол года назад)) писал в DreamWeaver а там выползающий список (довольно настойчивый) ...так что думаю что со списка брал

Спустя 5 минут, 55 секунд (16.07.2011 - 15:08) m4a1fox написал(а):
otix()90
Не могу понять! Но ты же исходник видишь перед собой?! как выглядит форма, можешь ее сюда выложить?!

Спустя 7 минут, 31 секунда (16.07.2011 - 15:15) otix()90 написал(а):
я про форму не понял сразу, ДА ДАННЫЕ ТЕКСТОВЫЕ , не выпадающий...думал интересует почему синтаксис кривой, ну что не сам пишешь а Ctrl + пробел...хахах понял))
http://saveimg.ru/show-image.php?id=11b330...8160b7d5d7a4fb8

Спустя 14 минут, 43 секунды (16.07.2011 - 15:30) m4a1fox написал(а):
otix()90
Ну вот! А теперь скажи, а проверка $_POST где проходит?!

Спустя 3 минуты, 34 секунды (16.07.2011 - 15:34) otix()90 написал(а):
опять не понял....если про то , какая форма обработчик, то не та, которой форма....не понял....

Спустя 9 минут, 38 секунд (16.07.2011 - 15:43) m4a1fox написал(а):
otix()90
Давай по порядку. ты вносишь данные в форму. Так? Затем нажимаешь кнопку, и данные уходят. Вот куда они уходят????? И как ты их проверяешь если скажем я туда напишу слово а не цифру???????? Если ты думаешь, что я напишу ответ на твой вопрос в первом посте этой темы, то так не будет. Все постепенно... А зразу, только кошки рождаются! smile.gif Тут главное терпение?!

Спустя 19 минут, 25 секунд (16.07.2011 - 16:03) otix()90 написал(а):
все таки в цикле дело.....

while ($f_arr[] = mysql_fetch_row($resultsAll))
{
if (($f_arr[5]<>$_POST['number_ustroen']) and ($f_arr[6]<>$_POST['number_ustroen']) and ($f_arr[7]<>$_POST['number_ustroen']))
{
$F_MAS = $f_arr;
echo"FUUUUCK";
}
}

print_r($F_MAS);
echo '<p>';
echo ('Номер устроенного = '.$_POST['number_ustroen']);
echo '<p>';

выводит:
FUUUUCKFUUUUCKFUUUUCKArray ( [0] => Array ( [0] => 121 [1] => Четвертая [2] => [3] => asd@mail.ru [4] => 4 [5] => 1 [6] => 10 [7] => 11 [8] => 1 [9] => ) [1] => Array ( [0] => 119 [1] => Вторая [2] => [3] => asdasd@mail.ru [4] => 2 [5] => 3 [6] => 6 [7] => 7 [8] => 1 [9] => ) [2] => Array ( [0] => 113 [1] => Сил второй [2] => 123342 [3] => asdasdasdasda@mail.ru [4] => 2 [5] => 5 [6] => 6 [7] => 7 [8] => 1 [9] => ) )

может другим способом его построить?


отвечаю:))
1. Данные постом идут на форму обрабочик
<form action="Poisk_dla_obmena_action.php" method="POST">

2. Да, пока проверок на корректность не делал
3. Джем ответа))

Спустя 11 минут, 35 секунд (16.07.2011 - 16:14) m4a1fox написал(а):
otix()90
Скажи а почему

mysql_fetch_row

А не скажем
mysql_fetch_assoc

Спустя 5 минут, 15 секунд (16.07.2011 - 16:20) otix()90 написал(а):
может лучше assoc, я делал row и array - роу выводил численные индексы...взял его...

Спустя 3 минуты, 56 секунд (16.07.2011 - 16:24) Haotarez написал(а):
Цитата
$f_arr[5]<>$_POST['number_ustroen']

Конечно дело в цикле. Вы вот что в условии проверяете подходит ли то, что пришло по посту всем результатам выборки? Я боюсь что в данном случе если я верно понял код - условие всегда будет выполняться, что бы вы ни передали.

А ларчик отрывается вот тут:
while ($f_arr[] = mysql_fetch_row($resultsAll)) 

Спустя 4 минуты, 25 секунд (16.07.2011 - 16:28) Haotarez написал(а):
на 90% правильнее будет так
while ($f_arr = mysql_fetch_row($resultsAll)) 
{
if (($f_arr[5] !== $_POST['number_ustroen']) && ($f_arr[6] !== $_POST['number_ustroen']) && ($f_arr[7] !== $_POST['number_ustroen']))
{
$F_MAS = $f_arr;
echo"FUUUUCK";
}
}

print_r($F_MAS);
echo '<p>';
echo ('Номер устроенного = '.$_POST['number_ustroen']);
echo '<p>';

Спустя 12 минут, 46 секунд (16.07.2011 - 16:41) otix()90 написал(а):
Лучше стало, теперь вывел 2 раза fuck)) значит прошел по циклу столько сколько надо....но в массиве одна запись....видимо перезаписал!

Спустя 2 минуты, 36 секунд (16.07.2011 - 16:43) Gradus написал(а):
$F_MAS[] = $f_arr;

Спустя 10 минут, 23 секунды (16.07.2011 - 16:54) otix()90 написал(а):
СПАСИБО Большое)) Работает)) Ну по крайней мере мне так кажется после 8 часов с монитором...))

Завтра продолжу, в отпуск не уходите))
ЗЫ, понял - одномерность , многомерность))

Спустя 18 часов, 14 минут, 20 секунд (17.07.2011 - 11:08) ADiel написал(а):
Аргументируй

Спустя 30 минут, 17 секунд (17.07.2011 - 11:38) otix()90 написал(а):
"if (($f_arr[5]!=$_POST['number_ustroen'])
ни хуя не понял но есть мысль что надо так
if (($f_arr[5]!==$_POST['number_ustroen'])
"
У меня и есть на данный момент, работает...
Добрый день, продолжим))

сейчас код эквивалентный предыдущему, уже 2 часть))

$sql = "select * from users where number_sadik1 = {$_POST[number_ustroen]} or number_sadik2 = {$_POST[number_ustroen]}
or number_sadik3 = {$_POST[number_ustroen]}";
$S_MAS = array();
$result = mysql_query($sql);
while ($s_arr = mysql_fetch_row($result))
{
if (($_POST['number_sadik1'] !== $s_arr[4]) && ($_POST['number_sadik2'] !== $f_arr[4]) && ($_POST['number_sadik3'] !== $f_arr[4]))
{
echo $s_arr["4"];
echo ' ';
echo $_POST['number_sadik1'];
echo ' ';
echo $_POST['number_sadik2'];
echo ' ';
echo $_POST['number_sadik3'];
echo ' ';
echo "FUUUUCK_<p>";
$S_MAS[] = $s_arr;
}
}

print_r($S_MAS);
echo '<p>';

echo '<p>';

Опять же возвращает значения по SQL запросу, но условие ошибочно рабоает...
Вот какой результат:

4 2 4 5 FUUUUCK_

3 2 4 5 FUUUUCK_

Array ( [0] => Array ( [0] => 11 [1] => Четвертая [2] => 444444 [3] => a4@mail.ru [4] => 4 [5] => 1 [6] => 10 [7] => 11 [8] => 1 [9] => ) [1] => Array ( [0] => 10 [1] => Третья [2] => 333333 [3] => a3@mail.ru [4] => 3 [5] => 1 [6] => 8 [7] => 9 [8] => 1 [9] => ) )

Здесь он должен по условию "ЧЕТВЕРТУЮ" не пропустить, т.к. $s_arr["4"] у нее равно $_POST['number_sadik2']....

Спустя 43 минуты, 49 секунд (17.07.2011 - 12:22) otix()90 написал(а):
РАЗОБРАЛСЯ, невнимательно кодил....$s_arr[4]) перепутал с $f_arr[4])
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.