[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не выводит else
gricenkom
Здравствуйте есть проблемка знания php не большие так что прошу помощи


$result = mysql_query("SELECT `charId` FROM `characters` WHERE `onlinetime` < '-1'") or die("Invalid query: " .mysql_error());
while ($row = mysql_fetch_assoc($result))

if ($row[charId]> 0) {
echo "Есть такие:<br>";
} else {
echo "нет таких:<br>";
}


Вот запрос при положительном результате if срабатывает отображает всё что нужно а вот а вот при отрицательном результате ничего не происходит.
Поправьте что не так сделал



Спустя 3 минуты, 29 секунд (26.06.2011 - 21:34) Админ написал(а):
WHERE `onlinetime` < '-1'
if ($row[charId]> 0)

запрос выбирает отрицательное число, а проверяется положительное

Спустя 8 минут, 56 секунд (26.06.2011 - 21:43) gricenkom написал(а):
Я так понимаю если $row[charId]> 0 а в запросе меньше то должно сработать else?или я ошибаюсь?

Спустя 11 минут, 23 секунды (26.06.2011 - 21:54) Админ написал(а):
нет не ошибаешься

Спустя 1 минута, 18 секунд (26.06.2011 - 21:56) neadekvat написал(а):
gricenkom, как значения может принимать charId?
Логика абсолютно неверная у скрипта.

Спустя 22 секунды (26.06.2011 - 21:56) kovaldm написал(а):
В $row[charId] что содержится?

Спустя 15 минут, 39 секунд (26.06.2011 - 22:12) XCross написал(а):
ну не выводит и не надо smile.gif

Спустя 7 минут, 10 секунд (26.06.2011 - 22:19) quickxyan написал(а):
а если так попробовать?


$row['charId']> 0

Спустя 1 минута, 1 секунда (26.06.2011 - 22:20) gricenkom написал(а):
$row[charId] содержится много результатов
268480582:
268480667:
268480692:
268480703:
268480712:
268480728:
268481010:
268481197:
268481220:
268481335:

Спустя 33 секунды (26.06.2011 - 22:20) Winston написал(а):
Цитата (gricenkom @ 26.06.2011 - 21:31)
while ($row = mysql_fetch_assoc($result))


А открывающая скобка где ??
Почему бы так код не написать ?

$result = mysql_query("SELECT `charId` FROM `characters` WHERE `onlinetime` < '-1'") or die("Invalid query: " .mysql_error());
while ($row = mysql_fetch_assoc($result))
{
if ($row['charId'] > 0)
echo "Есть такие:<br>";
else
echo "нет таких:<br>";
}

Спустя 20 секунд (26.06.2011 - 22:21) neadekvat написал(а):
gricenkom, может ли charId принимать отрицательные или дробные значения?

Мне одному кажется странным, что запрашивают все неотрицательные значения (если они все целые), а потом зачем-то все эти значения прогоняются по циклу, и на каждую итерацию скрипт принимает решение, существуют ли в базе неотрицательные значения или не существуют.

Спустя 12 минут, 40 секунд (26.06.2011 - 22:33) gricenkom написал(а):
Нет не существуют но мне нужно если запрос не дал результата чтоб сработало else

Спустя 3 минуты, 29 секунд (26.06.2011 - 22:37) quickxyan написал(а):
gricenkom
ты проверял с исправлениями которые были выше?

Спустя 19 секунд (26.06.2011 - 22:37) neadekvat написал(а):
Цитата (gricenkom @ 26.06.2011 - 23:33)
но мне нужно если запрос не дал результата чтоб сработало else

Нет, не надо про запрос.
Ты словами скажи, в какой ситуации (в базе данных) должен сработать else?

Спустя 1 минута, 3 секунды (26.06.2011 - 22:38) Winston написал(а):
В onlinetime какие значения содержатся ?

Спустя 5 минут, 34 секунды (26.06.2011 - 22:44) gricenkom написал(а):
Ну вот есть много результатов с запроса и если они есть значит должно if сработать а если запрос не дал результатов должно else

В запросе вот или много таких
268480582:
268480667:
268480692:
268480703:
268480712:
268480728:
268481010:
268481197:
268481220:
268481335:

или вообще пустой

Спустя 1 минута, 44 секунды (26.06.2011 - 22:46) neadekvat написал(а):
$result = mysql_query("SELECT `charId` FROM `characters` WHERE `onlinetime` < '-1'") or die("Invalid query: " .mysql_error());

if (mysql_num_rows > 0)
...

else // вот твой else
...


И никаких while не надо.

Спустя 6 минут, 8 секунд (26.06.2011 - 22:52) gricenkom написал(а):
Спасибо буду пробывать

Спустя 6 минут, 32 секунды (26.06.2011 - 22:58) neadekvat написал(а):
Ага, удачи там с константой..

if (mysql_num_rows($result) > 0)
...

else // вот твой else
...

Спустя 1 день, 26 минут, 22 секунды (27.06.2011 - 23:25) gricenkom написал(а):
Вот написал примерно что хотел и else заработало но показывает нужной цифрой все результаты что были, в charId onlinetime там стоит 1,2,3,5 в 123 onlinetime там 1,4 а в оконцовке должно выводить в else только 4 оно то и выводить только 4 штуки

<?php

require_once 'config.php';
$link = mysql_connect($mysql_host, $mysql_login, $mysql_password ) or die("<br>Could not connect: " .mysql_error());
mysql_select_db($mysql_db);

$result = mysql_query("SELECT `charId` FROM `characters` WHERE `onlinetime` >'1'") or die("Invalid query: " .mysql_error());
while ($row = mysql_fetch_assoc($result))
#echo "$row[charId]:<br>"; //Здесь норм выходит одна четвёрка но мне нужно чтоб в else было то что нужно
{
$result2 = mysql_query("SELECT `onlinetime` FROM `123` ") or die("Invalid query: " .mysql_error());
while ($row2 = mysql_fetch_assoc($result2))

#echo "$row2[onlinetime]:<br>";

if ('".$row["charId"]."' == '".$row2["onlinetime"]."'){
echo "";
}else {
echo "$row[charId]"; //вот здесь должно быть одно число 4 а их 4 четвёрки


}
}


?>








Быстрый ответ:

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