Помогите с удалением нескольких последних знаков в слове, передаваемому из формы по методу ПОСТ. Суть такова: на форме, в выпадающий список подгружаю такой запрос: Код (Text): $sql = "SELECT * FROM `sotrudniki` WHERE `sotrudniki`.`dostup`= 1"; $result = mysql_query($sql)or die ("Query failed: " .mysql_error()); if ($sql) echo "<select name = 'sotrudnik' style='height:inherit' COLS='23'> <option value='0' selected>-----Выберете сотрудника----</option>"; { while ($row = mysql_fetch_array ($result)) { echo "<option value ='",$row['Femyli'],"_",$row['Name']{0},".",$row['Otchestvo']{0},".","'size='30'/>",$row['Femyli'],"_",$row['Name']{0},".",$row['Otchestvo']{0},".","</option>"; } echo "</select>"; } Получается типа: Иванов_И.И. Проблема в том, что не могу в обратном порядке выделить ID выбранной записи. Помогите разобраться - голову уже сломал, весь нэт перерыл, ничего не нашел...
У меня получается в передаче некая сумма полей, т.е: Иванов_И.И. а в БД Иванов / Иван / Иванович Как мне найти ID этого Иванова? Вот что я пытаюсь нарисовать: Код (Text): $sql4 = "SELECT * FROM `sotrudniki` WHERE `Femyli`='".trim($_POST ['sotrudnik'])."'"; $query4 = mysql_query($sql4); if($query4) { while($row4 = mysql_fetch_assoc($query4)) { $Sotrudnik_id = $row4['Sotrudnik_id']; // Ключ массива совпадает с именем столбца в БД } Как мне решить эту задачку? Ведь $_POST содержит не просто фамилию
И еще вопрос по этой-же форме: В форме есть текстовое поле (только для чтения) в котором загружается текущая дата в формате ДД.ММ.ГГГГ А в БД (MySQL) дата хранится в формате ГГГГ-ММ-ДД Как преобразовать дату, для внесения данных в БД? Вот часть формы с текстовым полем: Код (Text): <input type="text" name="date_zakaz" value="<?PHP echo date("d.m.Y"); ?>" disabled="disabled" size="30"> Вот часть исполняемого файла: Код (Text): if (isset ($_POST['date_zakaz'])) { $date_zakaz = $_POST['date_zakaz']; }
Димон value ='",$row['Femyli'] сюда нужно ставить id и уже с ним потом работать date("d.m.Y"); поменять местами?
Padaboo Я немного еще над этим поработаю, а пока просто добавил в таблицу БД поле, где Фамилия и просто инициалы сразу выводятся, и перенаправил запрос в форме, а из формы уже нахожу ид. С датой решил просто сменив формат ее отображения. В форме она нужна постольку поскольку, это поле вообще можно и скрытым сделать, все равно оператор (пользователь) не может туда внести изменения. Но вопрос остается открытым: Есть ли возможность из данных полученных по методу $_POST удалить несколько символов с конца слова (или строки), так как это можно сделать на PHP с данными в запросе: Код (Text): <td><h4>",$row['Femyli'],$row['Name']{0},$row['Otchestvo']{0},"</td>
Димон тогда и в скрытом поле нет смысла, сразу дату в бд писать из формы находить id, это как? а если люди с одинаковыми фамилиями и инициалами? легче же в value сразу писать
Padaboo Можно и сразу в БД дату писать по получению запроса на добавление записи вписывать текущую дату. Просто изначально я хотел юзера заставить набирать текущую дату самостоятельно, но заморочился с проверкой и т.д., потому и пришел к автозаполнению поля, мне не сложно это а юзеру лишняя деталь формы не помешает, тем более она показывает текущую дату. А вот с сотрудниками получается сложнее. Список пока небольшой, а ну если оооочень вырастет? Тут уж мне без помощи не обойтись. Как Вам кажется, как лучше сделать? Я пока слабоват и в PHP и MySQL не говоря уже о JS и AJAX.
Padaboo Посоветуете похожее чего? Мне надо часть формы с селектом сотрудника и исполняемый файл (insert) для наглядности. Я смогу на форуме теперь только завтра вечером появиться - жена уже за шевелюру от компа оттягивает)))))
Блин, не передается вот эта строчка: Код (Text): <input type="text" name="date_zakaz" value="<?PHP echo date("d.m.Y"); ?>" disabled="disabled" size="30"> Что делать?
1) Вся твоя проблема надумана. Просто сформируй элемент ввода сотрудника из меню так: PHP: $sql = "SELECT * FROM `sotrudniki` WHERE `sotrudniki`.`dostup`= 1"; $result = mysql_query($sql)or die ("Query failed: " .mysql_error()); if ($result) { $o=array(); $o[]="<select name = 'sotrudnik' style='height:inherit' COLS='23'>"; $o[]="<option value='0' selected>-----Выберете сотрудника----</option>"; while ($row = mysql_fetch_array ($result)) { $id=$row['Sotrudnik_id']; $descriprion=$row['Femyli'],"_",$row['Name']{0},".",$row['Otchestvo']{0}; $o[]="<option value='$id'>$descriprion</option>"; } $o[]="</select>"; echo implode('',$o); } Тогда в переменной $_POST['sotrudnik'] будет передан код выбранного сотрудника 2) Если элемент disabled, то он передаваться не будет. Поэтому при вставке данных просто вычисли сегодняшную дату в нужном формате для записи в базу данных: $date_zakaz=date("Y-m-d");
Куда и как мне встроить эту переменную? Ка ни пробую - ничего не получается Вот сам инсерт: Код (Text): "INSERT INTO zakaz (date_zakaz, FIO, avto_name, avto_model, adress, gos_numer, telephone, zayavleno, Sotrudnik_id, time_id) VALUES ('$date_zakaz', '$fio', '$avto_name_id', '$avto_model_id', '$adress', '$gos_numer', '$telephone', '$zayavleno', '$Sotrudnik_id', '0')"
поставь эту строчку перед самим запросом: PHP: $date_zakaz=date("Y-m-d"); $q="INSERT INTO zakaz (date_zakaz, FIO, avto_name, avto_model, adress, gos_numer, telephone, zayavleno, Sotrudnik_id, time_id) VALUES ('$date_zakaz', '$fio', '$avto_name_id', '$avto_model_id', '$adress', '$gos_numer', '$telephone', '$zayavleno', '$Sotrudnik_id', '0')"; $result = mysql_query($q);
Куда я эту строчку только не ставил, либо ругается о неизвестной переменной, либо скрипт исполняется не полностью (страница остается пустой) и не добавляется запись в БД