$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 написал(а):
ну не выводит и не надо
Спустя 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:
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:
или вообще пустой
В запросе вот или много таких
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 четвёрки
}
}
?>