Тема: не працює рівність
в мене чомусь не працює ця рівність,як можна написати по іншому?
if (!isset($id)) {} else{}
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → PHP → не працює рівність
Для відправлення відповіді ви повинні увійти або зареєструватися
в мене чомусь не працює ця рівність,як можна написати по іншому?
if (!isset($id)) {} else{}
1. Тут немає рівності.
2. Тут нема чому працювати, жодної дії не відбувається.
3. Як написати по-іншому - залежить від того, що саме вам треба отримати. Наприклад, ось такий блок:
{}
працюватиме (точніше, не працюватиме) так само, але по-іншому.
якщо змінної $id немає то витягати з бази а якщо є то виводити форму
А чому ви вирішили, що ваш код не працює?
http://codepad.org/KJzRpxFc
Ось тепер, мабуть, наводьте весь код... І пояснюйте, чого і де ви очікуєте.
<?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>
От це код коли я просто натискаю на ссилку мені повинно виводити форму а воно не виводить
А де в цьому коді встановлюється значення $id? Форма виводиться тільки якщо $id встановлено.
форма має виводитись після натискання на ссилку тоді і ід буде мати значення і виконається вивід форми,але чомусь не працює(
А де в цьому коді встановлюється значення $id? Форма виводиться тільки якщо $id встановлено.
форма має виводитись після натискання на ссилку тоді і ід буде мати значення і виконається вивід форми,але чомусь не працює(
Я хіба це питав? Може, будете відповідати на запитання-уточнення, коли вам же хочуть допомогти?
<? include ("blocks/lefttd.php");?> в цей файл гляньте чи там $id
if (!isset($id))
Для того що б у вас була форма має бути змінна $id і значення у цієї змінної наскільки я можу догадуватись не повинно бути null. У вас її поки що не видно тому і умова не спрацьовує
Я так і не зрозумів ваших вимог, але в документації до 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?
коля роблю через null то виводить зразу форму,мені потрібно щоб спочатку виводило список ссилок в циклі,а уже при натисканні на ссилку виводило форму
Вибачте за те що написано в попередньому моєму повідомленні, але краще вже так:
if (@$a === NULL) {
echo 'Not exists';
} elseif (@$a !== NULL) {
echo 'exists';
}
А чому ви просто перевіряєте змінну, коли треба, як ені здається, треба перевіряти елемент $_GET['id']?
У вас же весь код наведений тут знаходиться в файлі edit_lesson.php?
форма має виводитись після натискання на ссилку тоді і ід буде мати значення і виконається вивід форми,але чомусь не працює(
Вам таки точно треба писати
if (!isset($_GET['id'])) {
# code
} else {
# code
}
зачекайте я попробую розібратись з написаним,що получиться, а звідки ви знаєте що це назва файлу?
Здається так: ви стверджуєте (принаймні умова в коді така), що форма має виводитися в тому випадку, коли змінна id існує, але в черговий раз переглядаючи код (тепер вже уважніше) я не знайшов місця де б їй надавалося якесь значення. Зате помітив ось це
printf ("<p ><a href='edit_lesson.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);
Що є рядком параметрів для скрипта з іменем 'edit_lesson.php. І от в цьому рядку якраз і надається значення змінній (параметру) id. Оскільки весь код в одному файлі, то я й подумав, що у вас помилка і потрібно перевіряти суперглобальний масив GET а не просто змінну id. Тим більше, що окрім як в іфі вона ніде більше не зустрічається.
Для відправлення відповіді ви повинні увійти або зареєструватися