![]() |
Показаны 19 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- провлема (http://netadmin.ws/forum/showthread.php?threadid=2325)
провлема
Проблема иакая, при нажатие на копку,почемуто вводяца все данные кро admin_id хотя его значенме естьвезде. помогитн...
<?
function print_form() {
print("Enter Your Interview into the Datebase:<br><br>\n");
$db = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db);
$sql = "select * from admins limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo "You Name: $row[admin_name]<br>\n";
echo "ID: $row[admin_id]\n";
$admin_id=$row[admin_id];
?>
<form action="intvpost.php?<?$admin_id?>" method="post">
Who Was Interviewed:<input type="text" name="topic"><p>
<textarea cols=40 rows=20 name="body"></textarea><p>
<input type="submit" name="submit" value="Submit Interview">
</form>
<?
}
if(isset($submit)):
if(!$topic || !$body):
print("<b>You forgot to fill some of the required fields</b>");
else:
$db2 = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db2);
$sql2 = "INSERT INTO interview VALUES('$admin_id','$topic','$body', NOW())";
echo $sql2;
$result2 = mysql_query($sql2);
echo "Все OK";
endif;
else:
print_form();
endif;
?>
<form action="intvpost.php?<?$admin_id?>" method="post">
самое простое вместо post написать get
а лучше добавить скрытое поле с <?$admin_id?> и убрать id из action
__________________
FAQ OFF
да проблема не в этом. он не определяет значение admin_id
=)
ну что еще сказать?..
жди, щас распишу в чем проблема...
__________________
FAQ OFF
итак, что мы видим?
quote:
<form action="intvpost.php?<?$admin_id?>" method="post">
__________________
FAQ OFF
<?
function print_form() {
print("Enter Your Interview into the Datebase:<br><br>\n");
$db = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db);
$sql = "select * from admins limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo "You Name: $row[admin_name]<br>\n";
echo "ID: $row[admin_id]\n";
?>
<form action="intvpost.php<?php echo $admin_id; ?>" method="post">
Who Was Interviewed:<input type="text" name="topic"><p>
<textarea cols=40 rows=20 name="body"></textarea><p>
<input type="hidden" name="admin_id" value="<?php echo $admin_id; ?>">
<input type="submit" name="submit" value="Submit Interview">
</form>
<?
}
if(isset($submit)):
if(!$topic || !$body):
print("<b>You forgot to fill some of the required fields</b>");
else:
$admin_id=$row[admin_id];
$date = date("H:i,d/M/y");
$db2 = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db2);
$sql2 = "INSERT INTO interview VALUES('$admin_id','$topic','$body', $date)";
echo $sql2;
$result2 = mysql_query($sql2);
echo "Все OK";
endif;
else:
print_form();
endif;
?>
action="intvpost.php<?php echo $admin_id; ?>"
- убери кусок выделеный жирным(он вообще никакой роли не играет)
- в начале скрипта напиши error_reporting(E_ALL); (все что вывалит после этого изменения будет ошибками)
- хотелось бы взглянуть на дамп структуры таблицы
SCHIZO добавил 27-07-2002 в 22:53:56:
чем больше изучаю этот код тем больше удивляюсь тому как же я далек от такого стиля программирования, ну ладно хватит лирики, перейдем к делу (сам таким был.. =)
у тебя там функция которая выводит форму, так?
и в этой функции я не увидел место где определяется значение переменной $admin_id после выборки из базы...
echo "ID: $row[admin_id]\n";
вместо этого попробуй так:
$admin_id = $row[admin_id];
echo "ID: ".$admin_id."\n";
__________________
FAQ OFF
Warning: Use of undefined constant admin_id - assumed 'admin_id' in c:\program files\apache group\apache\htdocs\esrael\admsec\intvpost.php on line 85
Warning: Undefined variable: row in c:\program files\apache group\apache\htdocs\esrael\admsec\intvpost.php on line 85
вот ошыбка которую он выдает. вот зип с самим скриптом и дампом.
ты не в то место изменения добавил....
в функцию надо, где то строка 70-я, он не вносится потому что не отправляется, глянь исходник HTML и посмотри что у тебя скрипт в поле которое hidden написал
SCHIZO добавил 27-07-2002 в 23:29:03:
...и заимей на будущее полезную привычку заключать элемент массива в кавычки.
вот так будет правильно: $array['element']
а вот так неправильно $array[element]
P.S.
это вроде просто, но позволяет значительно упростить жизнь
__________________
FAQ OFF
<?
function print_form() {
print("Enter Your Interview into the Datebase:<br><br>\n");
$db = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db);
$sql = "select * from admins limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo "You Name: $row[admin_name]<br>\n";
$admin_id = $row[admin_id];
echo "ID: ".$admin_id."\n";
?>
<form action="intvpost.php" method="post">
Who Was Interviewed:<input type="text" name="topic"><p>
<textarea cols=40 rows=20 name="body"></textarea><p>
<input type="hidden" name="admin_id" value="<?php echo "$admin_id"; ?>">
<input type="submit" name="submit" value="Submit Interview">
</form>
<?
}
if(isset($submit)):
if(!$topic || !$body):
print("<b>You forgot to fill some of the required fields</b>");
else:
$date = date("H:i,d/M/y");
$db2 = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db2);
$sql2 = "INSERT INTO interview VALUES('$admin_id','$topic','$body', $date)";
echo $sql2;
$result2 = mysql_query($sql2);
echo "Все OK";
endif;
else:
print_form();
endif;
?>
главное спокойствие =)
обрати внимание на строчку кода формы в коде скрипта:
<input type="hidden" name="admin_id" value="<?php echo "$admin_id"; ?>">
теперь перейди в броузере к скрипту и посмотри страницу в виде HTML....
скажи что ты видишь в этой строчке вместо <?php echo "$admin_id"; ?> ???
дополнение.
посмотрел дамп базы, и сравнил его с запросом который ты пытаешься выполнить.
Сделал вывод что порядок следования полей в таблице и запросе не совпадает. Т.е.
в таблице поля идут в следующем порядке:
intv_id topic body date admin_id
'$admin_id','$topic','$body', $date
'',topic, body, date, admin_id
__________________
FAQ OFF
<?
function print_form() {
print("Enter Your Interview into the Datebase:<br><br>\n");
$db = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db);
$sql = "select * from admins limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo "You Name: $row[admin_name]<br>\n";
$admin_id = $row[admin_id];
echo "ID: ".$admin_id."\n";
?>
<form action="intvpost.php" method="post">
Who Was Interviewed:<input type="text" name="topic"><p>
<textarea cols=40 rows=20 name="body"></textarea><p>
<input type="hidden" name="admin_id" value="<?php echo "$admin_id"; ?>">
<input type="submit" name="submit" value="Submit Interview">
</form>
<?
}
if(isset($submit)):
if(!$topic || !$body):
print("<b>You forgot to fill some of the required fields</b>");
else:
$date = date("H:i,d/M/y");
$db2 = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db2);
$sql2 = "INSERT INTO interview VALUES('0','$topic','$body', '$date','$admin_id')";
echo $sql2;
$result2 = mysql_query($sql2);
echo "Все OK";
endif;
else:
print_form();
endif;
?>
лол, а теперь дату не находит.
что ты пытаешься туда вставить?
- приблизительно следующее 19:13,29/Jul/02
каков тип поля?
- date
какие данные способно хранить это поле?
- дата представленная в формате YYYY-MM-DD
P.S.
если тебе необходимо вставить текущюю дату используй функцию MySQL - CURDATE() вместо переменной
__________________
FAQ OFF
что ты пытаешься туда вставить?
- приблизительно следующее 19:13,29/Jul/02
da
каков тип поля?
- date
da
какие данные способно хранить это поле?
- дата представленная в формате YYYY-MM-DD
ne znau, ya ne ispolzival standart
вместо этого -> 19:13,29/Jul/02
попробуй это -> 2002-07-29
если надо еще и время измени формат поля и храни в нем UNIX TIMESTAMP и запихивай как UNIX TIMESTAMP
P.S.
поле не способно хранить данные которые ты ему передаешь
__________________
FAQ OFF
типо
$date = date("U"); ?
и в дв поменать на TIMESTAMP?
мне нужно чтоб так было...
20:15 - July 29, 2002
да, что то вроде этого...
из UNIX TIMESTAMP с помощью функций PHP можно много чего сделать.
Почитай руководство PHP по функции time();
она выдает время в формате UNIX TIMESTAMP
P.S.
вот парочка функций для работы с датой и временем я их использую в своих проектах (например http://forum.monchegorsk.ru/) функции можно протестировать заменив аргумент $timestamp на time()
// фунция для форматирования времени из UNIX TIMESTAMP
function get_formated_time($timestamp) {
$arr = getdate($timestamp);
if ($arr['hours'] < 10) $arr['hours'] = '0'.$arr['hours'];
if ($arr['minutes'] < 10) $arr['minutes'] = '0'.$arr['minutes'];
if ($arr['seconds'] < 10) $arr['seconds'] = '0'.$arr['seconds'];
$time = ' '.$arr['hours'].':'.$arr['minutes'].':'.$arr['seconds'].' ';
return $time;
}
// фунция для форматирования даты по русски из UNIX TIMESTAMP
function get_formated_date($timestamp){
$arr = getdate($timestamp);
switch($arr['mon']) {
case(1): $month = 'январь'; break;
case(2): $month = 'февраль'; break;
case(3): $month = 'март'; break;
case(4): $month = 'апрель'; break;
case(5): $month = 'май'; break;
case(6): $month = 'июнь'; break;
case(7): $month = 'июль'; break;
case(8): $month = 'август'; break;
case(9): $month = 'сентябрь';break;
case(10): $month = 'октябрь'; break;
case(11): $month = 'ноябрь'; break;
case(12): $month = 'декабрь'; break;
}
if ($arr['mday']<10) $arr['mday'] = '0'.$arr['mday'];
$date = ' '.$arr['mday'].' '.$month.' '.$arr['year'].' ';
return $date;
}
__________________
FAQ OFF
хех, ти показал только время. я только начал учить это днло,так что плз покжи как вносит такую даиу как я показал.
покажи, да раскажи... а своя голова зачем? или мне вместо тебя твой скрипт написать? (час работы = 30 USD =)
Ты так никогда ничему не научишься. Мне никто ничего не объяснял, когда я начинал, просто говорили RFTM и все. Я искал, читал и учился.... САМ ... и спасибо огромное тем людям что так мне говорили, а иначе сейчас, я бы не знал и сотой доли того что знаю...
P.S.
еще одно сообщение подобного рода - тему закрою.
__________________
FAQ OFF
| Формат времени GMT. Текущее время 04:12. | Показаны 19 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.