Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Гордый if
 
 автор: ADmexture   (19.08.2005 в 14:27)   письмо автору
 
 

Здравствуйте,
Помогите с оператором, надо чтобы при значении переменной $percent_two = 0, выполнялся код строки:
Но етого почему то не происходит. Может код не правельный?


<?php

if($percent_two == 0)
{
  while(
$dbROW mysql_fetch_assoc($cat_query))
    {
     print(
"<tr>");
     print(
"<td>{$dbROW['date']}</td>");
     print(
"<td>ОК!</td>");
     print(
"</tr>");
    }
}

?>

   
 
 автор: P@Sol   (19.08.2005 в 14:30)   письмо автору
 
   для: ADmexture   (19.08.2005 в 14:27)
 

а как $percent_two присваиваешь значение7

   
 
 автор: ADmexture   (19.08.2005 в 14:31)   письмо автору
 
   для: P@Sol   (19.08.2005 в 14:30)
 

он передается параметром через ссылку

   
 
 автор: P@Sol   (19.08.2005 в 14:35)   письмо автору
 
   для: ADmexture   (19.08.2005 в 14:31)
 

дело в том, что 0 может быть как числом, так и символом..если 0 - это число, то код у вас правильный, если 0 - это симвло, то надо так - $percent_two == "0"

   
 
 автор: ADmexture   (19.08.2005 в 14:38)   письмо автору
 
   для: P@Sol   (19.08.2005 в 14:35)
 

0 - число, а почему строка не появляется?

при распечатки дает 0 - как число

   
 
 автор: P@Sol   (19.08.2005 в 14:44)   письмо автору
 
   для: ADmexture   (19.08.2005 в 14:38)
 

попробуйте 0 взять в двойные кавычки!

   
 
 автор: ADmexture   (19.08.2005 в 14:46)   письмо автору
 
   для: P@Sol   (19.08.2005 в 14:44)
 

не прокатило! :((

   
 
 автор: Axxil   (19.08.2005 в 14:52)   письмо автору
 
   для: ADmexture   (19.08.2005 в 14:46)
 

а так?
(int)$persent_two == 0

   
 
 автор: ADmexture   (19.08.2005 в 14:54)   письмо автору
 
   для: Axxil   (19.08.2005 в 14:52)
 

:((
блин, опять не получилось , а из-за чего такое может быть?

   
 
 автор: Axxil   (19.08.2005 в 14:56)   письмо автору
 
   для: ADmexture   (19.08.2005 в 14:54)
 

а echo $persent_two чё даёт?
последний вариант (int)$persent_two === 0

   
 
 автор: ADmexture   (19.08.2005 в 15:00)   письмо автору
 
   для: Axxil   (19.08.2005 в 14:56)
 

echo "$percent_two"; - 0 , так, как и надо.

с (int)$persent_two === 0 не вышло.

   
 
 автор: Axxil   (19.08.2005 в 15:03)   письмо автору
 
   для: ADmexture   (19.08.2005 в 15:00)
 

Ну я не знаю... А может вместо 0 в строке O (всмысле буква стоит?)

Так то же бывает :)

А можно присвоить $percent_two по ссылке значение скажем 1 и посмотреть пойдёт проверка или нет...
а такой код if($perсent_two != 0) что даст?

   
 
 автор: Loki   (19.08.2005 в 15:04)   письмо автору
 
   для: ADmexture   (19.08.2005 в 15:00)
 

а register globals у вас включены?
попробуйте вставить строку перед условием:

<?
$percent_two
=$_GET['percent_two'];
?>

   
 
 автор: P@Sol   (19.08.2005 в 15:05)   письмо автору
 
   для: ADmexture   (19.08.2005 в 15:00)
 

<?
if($percent_two == 0
{ echo 
"Так работает?";} 
else if(
$percent_two == "0"
{ echo 
"а так?";} 
else if(
$percent_two === 0
{ echo 
"может так?";} 
else echo 
"Никак:(";

что напишет:)?

   
 
 автор: ADmexture   (19.08.2005 в 15:17)   письмо автору
 
   для: P@Sol   (19.08.2005 в 15:05)
 

написал : Так работает?

   
 
 автор: Axxil   (19.08.2005 в 15:18)   письмо автору
 
   для: ADmexture   (19.08.2005 в 15:17)
 

ГЫ!!!
Прям X-files
а теперь вместо echo "Так работает?"; подставьте while и т.д.
Блин так у вас наверное выводить нечего $cat_query пустой

   
 
 автор: P@Sol   (19.08.2005 в 15:53)   письмо автору
 
   для: ADmexture   (19.08.2005 в 15:17)
 

разбирайтесь с мускулом

   
 
 автор: ADmexture   (19.08.2005 в 16:42)   письмо автору
 
   для: P@Sol   (19.08.2005 в 15:53)
 

спасибо, мускулом была трабла,

но вот теперь такая проблема:
взависимости от того, равно $percent_two нуля, или не равно, все равно выводит строку. :(
Подскажите как сделать, так, чтобы он выводил строку только тогда, когда $percent_two = 0?

   
 
 автор: Axxil   (19.08.2005 в 17:13)   письмо автору
 
   для: ADmexture   (19.08.2005 в 16:42)
 

а у вас как $percent_two = 0 или $percent_two == 0
Второй вариант правильный

   
 
 автор: isset   (19.08.2005 в 17:23)   письмо автору
 
   для: Axxil   (19.08.2005 в 17:13)
 

Дело в том что:
if(0 == "text") { echo "=="; }
Выдаст ==, т.к. "text" приводится к числу, т.е. становится равен 0.
Как вариант записать так:
if("0" == "text") { echo "=="; }
Т.е. 0 в кавычки взять

   
 
 автор: ADmexture   (19.08.2005 в 18:57)   письмо автору
 
   для: isset   (19.08.2005 в 17:23)
 

Взял.

Но только он, гад такой, в кавычках вообще строк не дает :(
А как только убераю кавычке, выдает все строчки, независемо от $percent_two
Че мне с ним делать?

   
 
 автор: ADmexture   (19.08.2005 в 19:53)   письмо автору
 
   для: ADmexture   (19.08.2005 в 18:57)
 

Кто нибудь знает, как исправить?

   
 
 автор: cheops   (19.08.2005 в 22:11)   письмо автору
 
   для: ADmexture   (19.08.2005 в 18:57)
 

>Но только он, гад такой, в кавычках вообще строк не дает :(
Чего-то не очень понятно что имеется ввиду?

   
 
 автор: ADmexture   (20.08.2005 в 13:56)   письмо автору
 
   для: cheops   (19.08.2005 в 22:11)
 

Почему - то оператор не работает с кавычками (там где 0)
А если убрать кавычки, то он выдает строчки не зависимо от $percent_two



<?php
if($persent_two == "0")
{
  while(
$dbROW mysql_fetch_assoc($cat_query_two))
    {
     print(
"<tr>");
     print(
"<td>{$dbROW['date']}</td>");
     print(
"<td>ОК!</td>");
     print(
"</tr>");
    }
}
?>

   
 
 автор: cheops   (20.08.2005 в 14:28)   письмо автору
 
   для: ADmexture   (20.08.2005 в 13:56)
 

Попробуйте вместо знака равенства == использовать знак эквивалентности ===
<?php 
if($persent_two === "0"

  while(
$dbROW mysql_fetch_assoc($cat_query_two)) 
    { 
     print(
"<tr>"); 
     print(
"<td>{$dbROW['date']}</td>"); 
     print(
"<td>ОК!</td>"); 
     print(
"</tr>"); 
    } 

?>

   
 
 автор: ADmexture   (20.08.2005 в 17:22)   письмо автору
 
   для: cheops   (20.08.2005 в 14:28)
 

Нет, ничего, не получается. :((
Если этот код правильный, в чем, тогда ошибка может быть?

   
 
 автор: ADmexture   (20.08.2005 в 18:26)   письмо автору
 
   для: ADmexture   (20.08.2005 в 17:22)
 

Ну че, вообще чтоли никто не знает, в чем дело? :((

   
 
 автор: ADmexture   (20.08.2005 в 21:16)   письмо автору
 
   для: ADmexture   (20.08.2005 в 18:26)
 

Вот весь код страницы, может здесь ошибка?


<?php
require_once("config.php");

$query "Select * from smoney";
$query_date_two "Select * from date";

$cat_date_two mysqL_query($query_date_two);
$cat mysql_query($query);

if(!
$cat)
{
  
$error mysql_error();
  echo 
"Ошибка! $error";
}
$catalog mysql_fetch_array($cat);

if(!
$cat_date_two)
{
  
$error mysql_error();
  echo 
"Ошибка! $error";
}
$catalog_date_two mysql_fetch_array($cat_date_two);

$date $catalog['date'];
$put_money $catalog['putmoney'];
$all_money $catalog['allmoney'];
$godovye $catalog['godovye'];
$money_year $catalog['moneyyear'];
$money_month $catalog['moneymonth'];
$percent $catalog['percent'];
$percent_date $catalog_date_two['percentdate'];


$date_one date("d");
$date_two date("Y");
$date_three date("m");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Проект ::ГОДОВЫЕ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<link href="css_money.css" rel="stylesheet" type="text/css">
</head>


<body bgcolor="#F1E069">
<?php print ("<form action='edit.php?request_persent=$money_month' method='post'>"); ?>
<table width="400" border="0" align="center" class="textgrey">
  <tr>
    <td class="textgreybold">Рассчеты</td>
    <td class="textgreybold">Сегодня: <B><?php print("$date_one,&nbsp;$date_three&nbsp;$date_two"); ?></B><input type='hidden' name='date_one_two' value=<?php print("$date_one:$date_three:$date_two"); ?>></td>
  </tr>
  <tr>
    <td width="50%">Последний вклад:</td>
    <td width="50%"><input name="put_money" type="text" class="textgrey" dir="ltr" lang="ru" size="30" maxlength="30" value=<?php print("$put_money"); ?>>&#240;.</td>
  </tr>
  <tr>
    <td><p>Денег на счету:</p>
      </td>
    <td><input name="all_money" type="text" class="textgrey" dir="ltr" lang="ru" size="30" maxlength="30" value=<?php print("$all_money"); ?>>&#240;.</td>
  </tr>
  <tr>
    <td>Изменить % годовых:</td>
      <td><input name="godovye" type="text" class="textgrey" dir="ltr" lang="ru" size="30" maxlength="30" value=<?php print("$godovye"); ?>>%</td>
  </tr>
  <tr>
    <td>% от общей суммы (в год):</td>
    <td><input name="money_year" type="hidden" class="textgrey" dir="ltr" lang="ru" size="30" maxlength="30" value=<?php print("$money_year"); ?>><?php print("$money_year"); ?> %.</td>
  </tr>
  <tr>
    <td>Забрать денег (в месяц):</td>
    <td><input name="money_month"  type="hidden" class="textgrey" dir="ltr" lang="ru" size="30" maxlength="30" value=<?php print("$money_month"); ?>><?php print("$money_month"); ?> &#240;.</td>
  </tr>
</table>

<br>
<?php
$query_date 
"select date, putmoneydate from date ORDER by date";
$query_date_two "select date, percentdate from date";

$cat_query mysql_query($query_date);
$cat_query_two mysql_query($query_date_two);

print(
"<table width='400' border='0' align='center' class='textgrey'>");
print(
"<tr>");
print(
"<td>Дата вклада:</td>");
print(
"<td>Сколько:</td>");
print(
"</tr>");

while(
$dbROW mysql_fetch_assoc($cat_query))
{
  print(
"<tr>");
  print(
"<td>{$dbROW['date']}</td>");
  print(
"<td>{$dbROW['putmoneydate']}</td>");
  print(
"</tr>");
}
print(
"</table>");
print(
"<br>");
print (
"<table width='400' border='0' align='center' class='textgrey'>");
print(
"<tr>");
print(
"<td width='223'>Свободный процент:</td>");
print(
"<td>Забрать?</td>");
print(
"</tr>");
print(
"<tr>");
print(
"<td>$percent</td>");
print(
"<td><input name='percent_box' type='checkbox' value='1'></td>");
print(
"</tr>");
print(
"</table>");
print(
"<br>");

print (
"<table width='400' border='0' align='center' class='textgrey'>");
print(
"<tr>");
print(
"<td width='228'>Когда взяли:</td>");
print(
"<td>Сколько:</td>");
print(
"</tr>");
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
if($persent_date == 0)
{
  while(
$dbROW_two mysql_fetch_assoc($cat_query_two))
    {
     print(
"<tr>");
     print(
"<td>{$dbROW_two['date']}</td>");
     print(
"<td>{$dbROW_two['percentdate']}</td>");
     print(
"</tr>");
    }
}
/////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////
print("</table>");
print(
"<br>");
?>
  <table width='400' border='0' align='center' class='textgrey'>
  <tr>
  <td colspan="2" align="center">
    <br>
  <input type="submit" value="Подсчитать" class="textgreybold"></td>
  </tr>
  </table>
</form>
</body>
</html>

   
 
 автор: cheops   (20.08.2005 в 22:47)   письмо автору
 
   для: ADmexture   (20.08.2005 в 21:16)
 

1) А откуда берётся значение $persent_date - как видно из листинга, на странице нет определения... и как происходит присваивание значения $persent_date?

2) Возможно вам больше подойдёт следующий код
<?php
if(!$persent_date

  while(
$dbROW_two mysql_fetch_assoc($cat_query_two)) 
    { 
     print(
"<tr>"); 
     print(
"<td>{$dbROW_two['date']}</td>"); 
     print(
"<td>{$dbROW_two['percentdate']}</td>"); 
     print(
"</tr>"); 
    } 
}
?>

тогда код внутри блока if будет срабатывать когда $persent_date равен 0 или пустой строке.

   
 
 автор: ADmexture   (21.08.2005 в 08:07)   письмо автору
 
   для: cheops   (20.08.2005 в 22:47)
 

1)$percent_date береть из $percent_date = $catalog_date_two['percentdate'];
2)Происходит выборка из базы данных

Извините ваш код не сработал. :((

Может в обработчике проблема, вот код:


<html>
<head>
<title>Проект ::ГОДОВЫЕ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body  bgcolor="#CEF1F4">
<?php

          
    
print('<link href="css_money.css" rel="stylesheet" type="text/css">');
    require_once(
"config.php");

    
$put_money $_REQUEST['put_money'];
    
$all_money $_REQUEST['all_money'];
    
$godovye $_REQUEST['godovye'];
    
$money_year $_REQUEST['money_year'];
    
$money_month $_REQUEST['money_month'];
    
$date_two $_REQUEST['date_one_two'];
    
$percent $_POST['percent'];

    
//Вклады
    
print ("<p class='textgrey' align='center'>Вы положили на счет - $put_money</p>");

    
//Денег на счету
    
$sql_allmoney $all_money $put_money;
    
    print (
"<p class='textgrey' align='center'>Теперь денег на счету - $sql_allmoney</p>");
    
    
//Годовые
    
$arll_money $sql_allmoney;
    
    
$sql_godovye $godovye;
    
    
$get $arll_money  100 $sql_godovye;
    
    print(
"<p class='textgrey' align='center'>% годовых составил - $get р. в год</p>");


    
//Забрать денег в месяц
    
$sql_moneymonth $get 12;
    
    if(
$_REQUEST['percent_box'] )
    {
      
$summa 0;
    }
    else
    {
      
$summa $sql_moneymonth $request_persent;
    }
    if(isset(
$_POST['percent_box'])) echo "<div align='center' class='textgrey'><b> Вы сняли проценты!<br></b> </div>";


    print(
"<p class='textgrey' align='center'>Вы должны забрать - $sql_moneymonth р.");

    
//QUERY
    
$query "Update smoney set putmoney = '$put_money', allmoney = '$sql_allmoney', moneyyear = '$get', godovye = '$sql_godovye', moneymonth = '$sql_moneymonth', percent = '$summa'";

    
$query_date_two "insert into date (date, putmoneydate, percentdate) VALUES ('$date_two','$put_money','$summa')";

    
$cat_date_two mysql_query($query_date_two);

    
$cat mysql_query($query);

   if(!
$cat)
    {
     
$error mysql_error();
     echo 
"<p class='textgrey' align='center'><b>УПС! ОШИБОЧКА!:<br> $error</b></p>";
    }
    
//Назад

    
print("<br><br><br><br><br><a href='index.php'><div align='center' class='textgreybold'><b><-<-<- Туда!</b></div></a>");

?>

</body>

</html>

   
 
 автор: cheops   (21.08.2005 в 12:26)   письмо автору
 
   для: ADmexture   (21.08.2005 в 08:07)
 

>1)$percent_date береть из $percent_date =
>$catalog_date_two['percentdate'];

Хм... а вообще говоря ведь нет... У вас в if стоит переменная $persent_date, а в операторе присвоения $percent_date
<?php
$percent_date 
$catalog_date_two['percentdate']; 
?>

и
<?php
if(!$persent_date
{
?>

   
 
 автор: DDK   (21.08.2005 в 12:31)   письмо автору
 
   для: ADmexture   (19.08.2005 в 14:27)
 

Позвольте заметить, если переменной ранее не задавалось значение, то она не имеет нулевого значения, она вообще не существует, а точнее имеет значение Empty. Так что может быть стоит проверять её так:


<?php 

if(Empty($percent_two)) 

  while(
$dbROW mysql_fetch_assoc($cat_query)) 
    { 
     print(
"<tr>"); 
     print(
"<td>{$dbROW['date']}</td>"); 
     print(
"<td>ОК!</td>"); 
     print(
"</tr>"); 
    } 


?> 
 

   
 
 автор: ADmexture   (21.08.2005 в 14:49)   письмо автору
 
   для: DDK   (21.08.2005 в 12:31)
 

Спасибо всем за помощь.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования