1

Тема: не працює рівність

в мене чомусь не працює ця рівність,як можна написати по іншому?

if (!isset($id)) {} else{}

2

Re: не працює рівність

1. Тут немає рівності.
2. Тут нема чому працювати, жодної дії не відбувається.
3. Як написати по-іншому - залежить від того, що саме вам треба отримати. Наприклад, ось такий блок:

{}

працюватиме (точніше, не працюватиме) так само, але по-іншому.

3

Re: не працює рівність

зараз я скину весь код

4

Re: не працює рівність

Ви краще напишіть, що він має робити...

5

Re: не працює рівність

якщо змінної $id немає то витягати з бази а якщо є то виводити форму

6

Re: не працює рівність

А чому ви вирішили, що ваш код не працює?
http://codepad.org/KJzRpxFc

Ось тепер, мабуть, наводьте весь код... І пояснюйте, чого і де ви очікуєте.

7

Re: не працює рівність

<?php 
include ("blocks/bd.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Сторінка для редагування уроку</title>
<link href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<table width="690" border="0" align="center" class="main_border" bgcolor="FFFFFF">
<!--Підключаємо шапку сайту -->
<? include ("blocks/header.php");  ?>
  <tr>
    <td>
      <table width="690" border="0" cellpadding="0" cellspacing="0">
        <tr>
        <!--Підключаємо лівий блок сайту -->
<? include ("blocks/lefttd.php");?>             
         <td width="501px" valign="top" bgcolor="#ffffff">
       
 <?php 
 
if (!isset($id))
 {
$result = mysql_query ("select title,id from lessons",$db);
 $myrow = mysql_fetch_array ($result);
 
 do 
 {
     printf ("<p ><a href='edit_lesson.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);
     }
     while ( $myrow = mysql_fetch_array ($result));
 }
 else 
 {
print<<<HERE
<form action="add_lesson.php" method="post" name="form1">
 <p>
   <label for="title">Введіть назву уроку:</label>
   <br>
<input type="text" name="title" id="title">
 </p>
 <p>
   <label for="meta_d">Введіть коротке описання уроку:</label>
   <br>
   <input type="text" name="meta_d" id="meta_d">
 </p>
 <p>
   <label for="meta_k">Введіть ключові слова урока:<br>
   </label>
   <input type="text" name="meta_k" id="meta_k">
 </p>
 <p>
   <label for="date">Введіть дату добавлення</label>
   <br>
<input name="date" type="text" id="date" value="2013-07-01">
 </p>
 <p>
   <label for="description">Введіть коротке описання уроказ тегами абзаців</label>
   <textarea name="description" id="description" cols="40" rows="5"></textarea>
 </p>
 <p>
   <label for="text">Ввдіть повний текст уроку з тегами абзаців</label>
   <textarea name="text" id="text" cols="40" rows="20"></textarea>
 </p>
 <p>
   <label for="author">Введіть автора урока:</label>
   <br>
<input type="text" name="author" id="author">
 </p>
 <p>
   <input type="submit" name="submit" id="submit" value="Занести урок в базу даних">
 </p>
  </form>
HERE;
 }
 ?>
 
        </td>
        </tr>
    </table>
      </td>
  </tr>
  <!--Підключаємо нижній графічний елемент -->
  <? include ("blocks/footer.php"); ?>
</table>
</body>
</html>

От це код коли я просто натискаю на ссилку мені повинно виводити форму а воно не виводить

8

Re: не працює рівність

А де в цьому коді встановлюється значення $id? Форма виводиться тільки якщо $id встановлено.

9

Re: не працює рівність

форма має виводитись після натискання на ссилку тоді і ід буде мати значення і виконається вивід форми,але чомусь не працює(

10

Re: не працює рівність

koala написав:

А де в цьому коді встановлюється значення $id? Форма виводиться тільки якщо $id встановлено.

rusikz написав:

форма має виводитись після натискання на ссилку тоді і ід буде мати значення і виконається вивід форми,але чомусь не працює(

Я хіба це питав? Може, будете відповідати на запитання-уточнення, коли вам же хочуть допомогти?

11 Востаннє редагувалося funivan (03.07.2013 12:37:13)

Re: не працює рівність

<? include ("blocks/lefttd.php");?>  в цей файл гляньте чи там $id

if (!isset($id))

Для того що б у вас була форма має бути змінна $id і значення у цієї змінної наскільки я можу догадуватись не повинно бути null. У вас її поки що не видно тому і умова не спрацьовує

Подякували: koala1

12

Re: не працює рівність

ні там немає ід

13 Востаннє редагувалося Invader (03.07.2013 12:52:01)

Re: не працює рівність

Я так і не зрозумів ваших вимог, але в документації до isset написано, що

isset() will return FALSE if testing a variable that has been set to NULL.

Отже, якщо змінна з якихось причин містить NULL (саме NULL а не 'NULL'), то isset поверне false.
Може, спробуйте отак:

if (@!$a === NULL) {
    echo 'Not exists';
} else {
    echo 'Exists';
}

А, а де там змінюється значення змінної id?

14

Re: не працює рівність

коля роблю через null то виводить зразу форму,мені потрібно щоб спочатку виводило список ссилок в циклі,а уже при натисканні на ссилку виводило форму

15

Re: не працює рівність

Вибачте за те що написано в попередньому моєму повідомленні, але краще вже так:

if (@$a === NULL) {
    echo 'Not exists';
} elseif (@$a !== NULL) {
    echo 'exists';
}

16 Востаннє редагувалося Invader (03.07.2013 13:11:11)

Re: не працює рівність

А чому ви просто перевіряєте змінну, коли треба, як ені здається, треба перевіряти елемент $_GET['id']?

17 Востаннє редагувалося Invader (03.07.2013 13:19:20)

Re: не працює рівність

У вас же весь код наведений тут знаходиться в файлі edit_lesson.php?

форма має виводитись після натискання на ссилку тоді і ід буде мати значення і виконається вивід форми,але чомусь не працює(

Вам таки точно треба писати

if (!isset($_GET['id'])) {
    # code
} else {
    # code
}
Подякували: rusikz1

18

Re: не працює рівність

да

19

Re: не працює рівність

зачекайте я попробую розібратись з написаним,що получиться, а звідки ви знаєте що це назва файлу?

20

Re: не працює рівність

Здається так: ви стверджуєте (принаймні умова в коді така), що форма має виводитися в тому випадку, коли змінна id існує, але в черговий раз переглядаючи код (тепер вже уважніше) я не знайшов місця де б їй надавалося якесь значення. Зате помітив ось це

printf ("<p ><a href='edit_lesson.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);

Що є рядком параметрів для скрипта з іменем 'edit_lesson.php. І от в цьому рядку якраз і надається значення змінній (параметру) id. Оскільки весь код в одному файлі, то я й подумав, що у вас помилка і потрібно перевіряти суперглобальний масив GET а не просто змінну id. Тим більше, що окрім як в іфі вона ніде більше не зустрічається.

Подякували: koala, rusikz2