|
|
|
| нужно показать все данные где в базе имя совпадает с именем пользователя
делаю так в таблице 3 записи и 2 из них должны совпадать
for ( $i=$_SESSION['access']; $i == $showf['name2']; $i++) { echo $i;}
|
у меня после такого запроса подвисает страница (( | |
|
|
|
|
|
|
|
для: kvins
(21.03.2011 в 02:28)
| | исправьте на for ( $i=$_SESSION['access']; $i <= $showf['name2']; $i++) { echo $i;} | |
|
|
|
|
|
|
|
для: Shorr Kan
(21.03.2011 в 03:56)
| | тоже самое просто зависает и все
мб с базой не так делается? а то я раньше не использовал for
кстати какая разница еслиб я делал == а не как вы <= серавно бы он должен был найти всех совпадающих
проверил вообще работает ли
с таким кодом работает но мне нужно всех пользователей показать
if ($_SESSION['access'] == $showf['name2'])
{
echo "<br>".$showf['name'];
}
|
| |
|
|
|
|
|
|
|
для: kvins
(21.03.2011 в 09:30)
| | Вообще достаточно опасный критерий для выхода из цикла - очень велика вероятность уйти в бесконечный цикл (зависание). Что находится в $showf и откуда это значение берется? Почему было принято решение работать с ним через цикл? | |
|
|
|
|
|
|
|
для: kvins
(21.03.2011 в 09:30)
| | Может что-то вроде этого нужно?
<?php
for ( $i = 0, $j = count($showf); $i < $j; $i++)
{
if ($_SESSION['access'] == $showf[$i]['name2'])
{
echo "<br>".$showf[$i]['name'];
}
}
|
Что показывает print_r($showf); ? | |
|
|
|
|
|
|
|
для: deimand
(21.03.2011 в 12:33)
| | cheops вот наверно он и ушел в бесконечный цикл , а то зависает
print_r($showf);
$show = mysql_query ("SELECT * FROM addfriend WHERE first ='$fri' AND vote='1' OR second='$second' AND vote='1'");
if (mysql_num_rows($show) > 0) {
$showf = mysql_fetch_array ($show);
|
deimand на ваш код вообще реакция нулевая , зато не виснет =)
Почему было принято решение работать с ним через цикл?
мне надо из базы вытащить все имена из столбца где второе имя совпадает имени из ссесии
мб можно и по другому но не знаю как | |
|
|
|
|
|
|
|
для: kvins
(21.03.2011 в 12:58)
| | Записи в результирующей таблице лучше обрабатывать циклом while
<?php
...
if (mysql_num_rows($show) > 0) {
while($showf = mysql_fetch_array ($show))
{
...
}
}
...
?>
| Дело в том, что mysql_fetch_array() возвращает лишь одну строку результирующей таблицы, да в виде массива. Но этот массив содержит данные лишь одной строки, чтобы получить еще одну строку, нужно еще раз вызывать функцию mysql_fetch_array(). И так до тех пор, пока строки в результирующем массиве не закончатся и функция не вернет FALSE. Именно поэтому массив while() тут наиболее предпочтителен - пока функция mysql_fetch_array() возвращает данные - он работает, как только она вернет FALSE (данные закончились), массив while() прекратит работу. | |
|
|
|
|
|
|
|
для: cheops
(21.03.2011 в 13:33)
| | а разве он не выведет все имена ? мне же нужно только те которые сопадают с именем
у меня и было с wile тока не понял как проверку делать поэтому пробовал с for
кстати от вашего кода нечего не выводится и пишет ошибку,
Warning: mysql_num_rows() expects parameter 1 to be resource, array given in C:\denwer\www\denwer\Tools\new\friends.php on line 6 | |
|
|
|
|
|
|
|
для: kvins
(21.03.2011 в 13:56)
| | Все проверки делайте внутри цикла while, вы же сами её и приводите
<?php
if ($_SESSION['access'] == $showf['name'])
{
echo "<br>".$showf['name'];
}
?>
| Она у вас работает? | |
|
|
|
|
|
|
|
для: cheops
(21.03.2011 в 13:58)
| | ой ошибку я сам сделал все нормально =))) | |
|
|
|
|
|
|
|
для: kvins
(21.03.2011 в 09:30)
| | >
if ($_SESSION['access'] == $showf['name2'])
>{
>echo "<br>".$showf['name'];
>}
|
Хм... а почему вы сравниваете с $showf['name2'], а выводите $showf['name'] - так надо или это опечатка? | |
|
|
|
|
|
|
|
для: cheops
(21.03.2011 в 13:59)
| | так и надо 1 сравнивается а второе это уникальное имя второго пользователя , из него будет выводится вся информация | |
|
|
|
|
|
|
|
для: kvins
(21.03.2011 в 14:01)
| | хотя странно без проверок вставил ваш код а он только одно имя дал , хотя в базе их 3
удалил $showf = mysql_fetch_array ($show); которая идет после
$show = mysql_query ("SELECT * FROM addfriend WHERE first ='$fri' AND vote='1' OR second='$second' AND vote='1'");
потому что этот код повторяется вывело 2 заметки из- 3 | |
|
|
|
|
|
|
|
для: kvins
(21.03.2011 в 14:05)
| | У вас достаточно сложное WHERE-условие, все записи ему удовлетворяют?
PS Функция mysql_num_rows($show) сколько возвращает? | |
|
|
|
|
|
|
|
для: cheops
(21.03.2011 в 14:11)
| | извеняюсь туплю я =) он же из базы берет записи где WHERE first ='$fri' AND vote='1' OR second='$second' AND vote='1'
поэтому их и 2 , а я не заметил .
там кстати 2 значения потому что в первом случае когда ты добавляешь в друзья , имя оказывается в поле name а когда тебя добавляют то ты оказываешься в поле name2 поэтому мне надо будет выводить если имя в поле 1 то выводим поле 2 и также наоборот
теперь буду проверку делать | |
|
|
|
|
|
|
|
для: kvins
(21.03.2011 в 14:18)
| | все спс сделал | |
|
|
|