Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 2
Регистрация: 27.08.2013
Сообщений: 156
1

Не доступна переменная

17.04.2017, 09:39. Показов 536. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Со вчерашнего дня не могу понять в чем дело.
В подключаемом файле не везде видна переменная из корневого файла, в первом IF переменная $idValueContact -видна
во втором уже нет ??????? :
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
$numtext=$_POST['numtext'];
$fiotext=$_POST['fiotext'];
$inctext=$_POST['inctext'];
 
if (isset($_REQUEST['butAddrEdit'])) {
$queryUC = "select NUMBER,FIO,INC from addrbook WHERE ID='$idValueContact'";
$resultUC = mysql_query($queryUC) or die('Запрос не удался: ' . mysql_error());
while ($line = mysql_fetch_array($resultUC, MYSQL_ASSOC)) {
        $countc = 0;
        foreach ($line as $col_value) {
         if($countc == 0) {$numtext = $col_value;}
         if($countc == 1) {$fiotext = $col_value;}
         if($countc == 2) {$inctext = $col_value;}
         $countc++;
          }
         }
  echo '<div id="OPEN" style="display: block;">';
  echo '<form method="POST">';
  echo "<div><p><input type='text' name='numtext' size='20' maxlength='120' value='$numtext'>Номер_Абонента</p></div>";
  echo "<div><p><input type='text' name='fiotext' size='20' maxlength='120' value='$fiotext'>ФИО</p></div>";
  echo "<div><p><input type='text' name='inctext' size='20' maxlength='120' value='$inctext'>Комментарий</p></div>";
  echo '<br></br>';
  echo '<input type="submit" name="submitUpd" value="Обновить" />';
  echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
  echo '<input type="submit" name="submitClo" value="Закрыть" />';
  echo $idValueContact;
  echo '</form>';
  echo '</div>';
}
if (isset($_REQUEST['submitUpd'])) {
        echo '<form method="POST">';
        $queryUP = "UPDATE addrbook SET INC = '$inctext' WHERE ID='57'";
        $resultUP = mysql_query($queryUP) or die('Запрос не удался: ' . mysql_error());
        echo'<META HTTP-EQUIV=Refresh Content="0;URL=http://192.168.21.230/addrbook/addrbook.php">';
        echo $idValueContact;
        echo '</form>';
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2017, 09:39
Ответы с готовыми решениями:

Вывести текст если переменная не доступна
Здравствуйте вывожу из файла php сессией в шапку сайта текст из переменной: &lt;?php...

Почему переменная $a не доступна во второй функции?
Привет есть такой класс. Не подскажите, почему переменная $a не доступна во второй функции? ...

Не могу понять, почему не доступна переменная
Не могу понять, почему переменная не доступна. Пишет ошибку: error C2248:...

Как сделать так чтобы переменная была доступна из другого класса, метода?
как сделать так чтобы переменная была доступна из другого класса, метода?

7
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
17.04.2017, 09:56 2
судя по этому ... "контексту" из скрипта можно сказать, что $idValueContact - не была объявлена. если она у вас была ранее "где-то" и имела какое нибудь значение, а не просто появилась на пустом месте, то она будет передавать значения. в данном случае - "увы"
0
2 / 2 / 2
Регистрация: 27.08.2013
Сообщений: 156
17.04.2017, 10:12  [ТС] 3
Она объявлена в файле куда данный кусок подключается. Что странно почему значение ее видно в первом IF ???
0
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
17.04.2017, 10:16 4
показывайте исходник мейн файла. по поводу видимости - в вашем скрипте она обусловлена условием if (isset($_REQUEST['butAddrEdit'])) { и другие. если условия удовлетворяются, то ваши переменные видны ( так как у вас старая версия php вы не увидите ошибок согласно новым правилам )

и вообще пробуйте ставить var_dump($idValueContact) чтобы точно знать, что с этой переменной
0
2 / 2 / 2
Регистрация: 27.08.2013
Сообщений: 156
17.04.2017, 10:19  [ТС] 5
Вот данное чудо, почему вы решили что старая версия PHP?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<html>
<head>
<title>Sender</title>
<link rel="stylesheet" href="addrbook.css" type="text/css">
</head>
<body>
<div id="OPNE" style="display: none;">
</div>
<div id="SENDER">
</div>
 
<?php
/////////////////////////////////////////////////////////////////////
$link = mysql_connect('localhost', 'rootishe', 'Parolishe')
    or die('Не удалось соединиться: ' . mysql_error());
mysql_select_db('smsgw') or die('Не удалось выбрать базу данных');
$test=0;
// Выполняем SQL-запрос Начальный экран
if ($test!=1){//если ничего не выбранно и переменная пуста
$query = 'SELECT NUMBER,FIO,INC,ID FROM addrbook ORDER BY FIO ';
$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());
}
// Выводим результаты в html в виде таблицы//////////////////////////////////
echo '<table cellpadding="5" width="100%">';//Таблица
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo '<form method="post">';
    echo '<tr>';
     $countt = 0;//счетчик столбцов
    foreach ($line as $col_value) {
              if($countt < 3) {
              echo "<td>$col_value</td>"; $countt++; }
              else {
              echo "<td><button type='submit' value='$col_value' name='butAddrEdit'>P+</button></td>";
              }
              $idValueContact=$_POST['butAddrEdit'];
              }
       echo '</tr>';
       echo '</form>';
    }
echo '</table>';///
 
////////////////////////////////Кнопка редактирования
include "editbut.php";
/////////////////////////////////////////////////////
?>
</body>
</html>
0
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
17.04.2017, 10:23 6
1. $idValueContact=$_POST['butAddrEdit']; - если нет данных в пост запроса ... то ваша переменная пустая. вызывайте дамп для проверки при работе на сайте.

2. вы делаете запрос субд - если чего то нет то эта переменная будет пустая. поэтому чтобы отследить $idValueContact в начале скрипта укажите $idValueContact = "error";
$idValueContact в цикле - я б сказал это динамическое объявление переменной. вы ее получите только при определенных условиях. и вы ее по сути не объявляли заранее, вот вам и отсутствие данных.
0
2 / 2 / 2
Регистрация: 27.08.2013
Сообщений: 156
17.04.2017, 10:26  [ТС] 7
Данные 100% есть это ID
Проверяю это в первом IF из первой партянки echo $idValueContact;
А вот во втором IF уже их нет
0
321 / 189 / 78
Регистрация: 04.10.2016
Сообщений: 809
17.04.2017, 10:41 8
var_dump($_POST) - проверяйте. и проверяйте форму, которую вы создали. на наличие ошибок в форме я делать не буду (это уже ваша задача).

Добавлено через 9 минут
mysql - в старых версиях php. в 7ке уже так не пашет
0
17.04.2017, 10:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2017, 10:41
Помогаю со студенческими работами здесь

Как сделать так чтобы переменная в описании одной функции была доступна в описании другой?
Как сделать так чтобы переменная в описании одной функции была доступна в описании другой?...

Переменная=Документ.имя. Сделать выборку всех документов с именем Переменная
Привет всем. У меня есть проблема и варианты решения, но они не работают. Проблема вот такая:...

Модульная переменная или блочная статическая переменная: что лучше
Переменная (тип String) нужна на всем протяжении работы программы. Нужен совет опытных - что...

Проблема с Adodc: 'Переменная объекта или переменная блока With не задана'
В свойствах самого контрола (MS ADO Data Control) проверка подключения к атблице (подключаюсь через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru