Собственно ситуация такова. Вычисляю возраст лица и потом пытаюсь его вывести. PHP: <?php $hostname = "localhost"; $username = "root"; $password = ""; $dbName = "personal"; $value1 = $_POST['search_name']; mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение"); mysql_select_db($dbName) or die (mysql_error()); $query = "SELECT id,sname,fname,tname,date_birth,current_date, (YEAR(CURRENT_DATE)-YEAR(date_birth))-(RIGHT(CURRENT_DATE,5)<RIGHT(date_birth,5)) as Age FROM promo where sname='$value1'"; $res = mysql_query($query) or die(mysql_error()); $row = mysql_num_rows($res); echo (" <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /> <title>Результат поиска</title> <style type=\"text/css\"> body { font: 12px Georgia; color: #666666; } h3 { font-size: 16px; text-align: center; } table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; } td { padding: 3px; text-align: center; vertical-align: middle; } .buttons { width: auto; border: double 1px #666666; background: #D6D6D6; } </style> </head> <body> <h3>Результат поиска</h3> <table border=\"1\" cellpadding=\"0\" cellspacing=\"0\"> <tr style=\"border: solid 1px #000\"> <td><b>#</b></td> <td align=\"center\"><b>Фамилия</b></td> <td align=\"center\"><b>Имя</b></td> <td align=\"center\"><b>Отчество</b></td> <td align=\"center\"><b>Возраст</b></td> </tr> "); while ($row = mysql_fetch_array($res)) { echo "<tr>\n"; echo "<td>".$row['id']."</td>\n"; echo "<td>".$row['sname']."</td>\n"; echo "<td>".$row['fname']."</td>\n"; echo "<td>".$row['tname']."</td>\n"; echo "<td>".$row['age']."</td></td>"; /* Генерируем ссылку для просмотра анкеты */ echo "<td><a name=\"print\" href=\"view_anket.php?print=".$row["id"]."\">Просмотреть</a></td>\n"; /* Генерируем ссылку для удаления анкеты */ echo "<td><a name=\"del\" href=\"del_data.php?del=".$row["id"]."\">Удалить</a></td>\n"; echo "</tr>\n"; } echo ("</table>\n"); mysql_close(); echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.php\">Вернуться назад</a></div>"); ?> сам запрос PHP: $query = "SELECT id,sname,fname,tname,date_birth,current_date, (YEAR(CURRENT_DATE)-YEAR(date_birth))-(RIGHT(CURRENT_DATE,5)<RIGHT(date_birth,5)) as Age FROM promo where sname='$value1'"; отрабатывает просто отлично. Выводит отдельный столбец с возрастом. Это если вне скрипта его выполнить напрямки к таблице. но упорно не хочет выводить возраст здесь: PHP: while ($row = mysql_fetch_array($res)) { echo "<tr>\n"; echo "<td>".$row['id']."</td>\n"; echo "<td>".$row['sname']."</td>\n"; echo "<td>".$row['fname']."</td>\n"; echo "<td>".$row['tname']."</td>\n"; echo "<td>".$row['age']."</td></td>"; в чем моя ошибка, подскажите пожалуйста... заранее спасибо. P.S. надеюсь не достал ещё вопросами)
Создайте обработки ошибок по запросам из БД.А ещё лучше через исключения try catch. Сделайте проверку ввода пользователя приведите к нормальному типу(trim(), и ....)
PHP: <? if(!is_resource($res)) { print "Такого имени не существует или ввод был некорректен!"; exit; } ?>
Notice: Undefined variable: Age in Z:\home\test1.ru\www\2\search_name.php on line 16 Notice: Undefined index: age in Z:\home\test1.ru\www\2\search_name.php on line 65
немного помудрил.. толку ноль((( зато теперь ошибка только одна: Notice: Undefined index: age in Z:\home\test1.ru\www\2\search_name.php on line 65 что ему нужно? я так понял что он жалуется на то, мол ему не определили age. а как её определить, если я рассчитываю её "по ходу движения"?
ясно)))) ааааа)))))) Слушайте, а почему он к регистру в этом случае чувствителен? где об этом можно почитать в грамотном изложении?
что это $row = mysql_num_rows($res); $row = mysql_fetch_array($res) исправь... кроме этого проверяй var_damp($row) он вообще вытягивает чет... ЗЫ читал одну книгу, где писали, что не желательные имена переменных идут после первых запросов к бд... $query = "..."; потом $query1 = "..."; и поехало... вошло в привычку и на все переменные те $query1659878 = "..."; потом епрст))) $row14221 $result55321 and so on...
блин... я очень даже за, что меня тут поправляют и говорят, как лучше сделать.... но чтож у меня за такой нафиг учебник гуановский?! Просто 90% того, что нужно исправлять (что писали уважаемые участники Конфы) взято именно из него.. А вот то что я сам своими мозгами пишу - всё норм... Вывод: видимо дело все-таки НЕ в прокладке между креслом и клавиатурой))))))
кстати, извиняюсь что оффтопом, вне темы..... Есть у php средства, с помощью которых можно сделать бэкап инфы из базы?
1Touch2Heaven а зачем для этого PHP? Есть mysqladmin тулза. ну или [sql]BACKUP TABLE tbl_name [, tbl_name] ... TO '/path/to/backup/directory' [/sql]
да, все нормально начало бегать... стоило изменить только с заглавной на маленькую.... никогда бы не подумал что так чувствителен будет к реестру.... учебник Семенова "Программирование на PHP"..... жесть.... какой учебник посоветуете купить? а то я в книжный супермаркет заехал, а там целая полка их(((
в том месте куда все это отправится такой сисЬадмин, что его страшно до тулзы пускать.... а так я баттон навастрячу и все оки...