Как сделать , чтоб в таблице vak_kan можно было менять значение поля id_status (в файле ppr.php с помощью выпадающего списка) а все остальные значения оставались прежними? спасибо Есть таблицы, таблица vak_kan паразитирует на всех остальных. то есть берёт из них значения. vak_kan - таблица связанная внешними ключами с справочниками Код (PHP): CREATE TABLE IF NOT EXISTS `vak_kan` ( `id` int(5) unsigned NOT NULL AUTO_INCREMENT, `id_vak` int(5) unsigned NOT NULL, `id_candidat` int(10) unsigned NOT NULL, `id_status` int(5) unsigned DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id_vak_2` (`id_vak`,`id_candidat`), KEY `id_vak` (`id_vak`), KEY `id_candidat` (`id_candidat`), KEY `id_status` (`id_status`), KEY `id` (`id`,`id_status`), KEY `id_2` (`id`,`id_candidat`), KEY `id_candidat_2` (`id_candidat`,`id_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=81 ; Код (PHP): CREATE TABLE IF NOT EXISTS `vakans` ( `id_vak` int(5) unsigned NOT NULL AUTO_INCREMENT, `koment` varchar(250) NOT NULL, `id_firm` int(5) NOT NULL, `id_dol` int(5) NOT NULL, `id_city` smallint(10) NOT NULL, PRIMARY KEY (`id_vak`), KEY `id_firm` (`id_firm`), KEY `id_dol` (`id_dol`), KEY `id_vak` (`id_vak`), KEY `id_city` (`id_city`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ; Код (PHP): CREATE TABLE IF NOT EXISTS `kandidat` ( `id_candidat` int(10) unsigned NOT NULL AUTO_INCREMENT, `rezum_txt` varchar(255) NOT NULL, `id_dol` int(5) NOT NULL, PRIMARY KEY (`id_candidat`), KEY `id_dol` (`id_dol`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; Код (PHP): CREATE TABLE IF NOT EXISTS `status_kan` ( `id_status` int(5) unsigned NOT NULL AUTO_INCREMENT COMMENT 'таблица стусов кандидатов', `name_status` varchar(50) NOT NULL, PRIMARY KEY (`id_status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ; фаил vak.php Код (PHP): <?php include('connect.php'); $id_firm = $_GET['idvak']; $qwerty = mysql_query("SELECT * FROM `vakans` JOIN `firm` ON vakans.id_firm=firm.id_firm JOIN `dolzgnost` ON vakans.id_dol=dolzgnost.id_dol JOIN city ON city.id_city=vakans.id_city WHERE vakans.id_vak = '$id_firm'") or die(mysql_error()); echo '<table border="1" cellspacing="0" cellpadding="5">'; echo '<th>Фирма</th><th>Город</th><th>Коментарий</th><th>Должность</th>'; while($res = mysql_fetch_assoc($qwerty)) { echo "<tr>"; echo "<td>$res[name_firm]</td>"; echo "<td>$res[city]</td>"; echo "<td>$res[koment]</td>"; echo "<td>$res[name_dol]</a></td>"; //echo "<td>$res[name_dol]</a></td>"; echo '</tr>'; } echo '</table><br>'; /* $sql3 = mysql_query('SELECT * FROM vakans'); $num_rows3 = mysql_num_rows($sql3); echo "<p>Количетсов вакансий - $num_rows3 </p>"; */ $sql3 = mysql_query("SELECT * FROM vak_kan WHERE id_vak = '$id_firm' AND id_status=5 "); $num_rows = mysql_num_rows($sql3); echo "Потенциально подходящие кандидаты - <a href='./vakans/ppr.php?id=".$id_firm."'>$num_rows</a> <br>"; //href='vak.php?idvak=".$res[id_vak]."'>" $sql4 = mysql_query("SELECT * FROM vak_kan WHERE id_vak = '$id_firm' AND id_status=9 "); $num_rows2 = mysql_num_rows($sql4); echo "Для звонков - $num_rows2<br>"; $sql5 = mysql_query("SELECT * FROM vak_kan WHERE id_vak = '$id_firm' AND id_status=10 "); $num_rows3 = mysql_num_rows($sql5); echo "Для собеседования в агентстве - $num_rows3 <br>"; $sql6 = mysql_query("SELECT * FROM vak_kan WHERE id_vak = '$id_firm' AND id_status=6 "); $num_rows4 = mysql_num_rows($sql6); echo "Отработанные - $num_rows4" , "</br>"; ?> фаил ppr.php Код (PHP): [url="http://localhost/inodb/firm.php"]Фирмы[/url]<?php include('pprconnect.php'); $id_firm = $_GET['id']; print_r($id_firm); $selct2 = mysql_query("SELECT vak_kan.id_vak, vak_kan.id_status, kandidat.id_candidat, kandidat.rezum_txt FROM vak_kan, kandidat WHERE vak_kan.id_vak='$id_firm' AND vak_kan.id_status=5 AND vak_kan.id_candidat=kandidat.id_candidat"); echo '<table border="1" cellspacing="0" cellpadding="5">'; while($res2 = mysql_fetch_array($selct2)) { echo '<tr>'; echo '<td>'; echo $res2['rezum_txt']; echo '</td>'; // $kan = isset($_POST['f']) ? (int)$_POST['f'] : null; // $vak = isset($id_firm) ? (int)$id_firm : null; $kan = $_POST['f']; ????????????????????????????????? $qwerty = mysql_query('UPDATE `vak_kan` SET id_status = "'.$kan.'" WHERE id_candidat="'.$res2['id_candidat'].'" AND id_vak= "'.$id_firm.'"'); ?> <td><form action="ppr.php" method="post"> <select name="f"> <?php echo "<option value='5'>".подход."</option>"; echo "<option value='6'>".неподход."</option>"; ?> </select> <input type='submit' value='переместить'> </form></td> </tr> <?php } print_r($sell); print_r($result['5']); ?> </table> PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
я создал фаил для редактирования vak_up.php туда отправляю данные для редактирования. в id_status я отправляю данные из выпадающего списка методом POST на странице ppr.php и отправляю их в обработчик vak_up.php но как отправить значение id ? если оно приходит на страницу ppr.php методом GET ? В моем понимании надо полученный GET прикрутить как то к посту и отправить для обработки на страницу vak_up.php . Но как это сделать или я ошибаюсь в подходе?
Штука классная! Попробовал , передает. Надо взять на вооружение. Но к сожалению в моем случае оказалась не до конца полезна... потому что в мой $_GET['id'] передается с предыдущих файлов id_vak а мне надо id (смотреть в самом верху структуру таблиц vak_kan) ... пока что руки опустились.... скоро конец света, жизнь не сложилась...код не пишется.. какими пряниками выманить нужный id ?
начну с начала времен ... задача вытянуть id из таблицы vak_kan файл с которого все начинается: vakans.php Код (Text): ....$qwerty = mysql_query("SELECT vakans.id_vak, vakans.koment, vakans.id_firm, vakans.id_dol, firm.id_firm, firm.name_firm, dolzgnost.id_dol, dolzgnost.name_dol FROM vakans, firm, dolzgnost WHERE vakans.id_firm = firm.id_firm AND vakans.id_dol = dolzgnost.id_dol ORDER BY name_firm"); <a href='vak.php?idvak=".$res[id_vak]...... передается в фаил vak.php : Код (Text): $id_firm = $_GET['idvak']; $qwerty = mysql_query("SELECT * FROM `vakans` JOIN `firm` ON vakans.id_firm=firm.id_firm JOIN `dolzgnost` ON vakans.id_dol=dolzgnost.id_dol JOIN city ON city.id_city=vakans.id_city WHERE vakans.id_vak = '$id_firm'") or die(mysql_error());.... ....$sql3 = mysql_query("SELECT * FROM vak_kan WHERE id_vak = '$id_firm' AND id_status=5 ");.... <a href='./vakans/ppr.php?id=".$id_firm."'> фаил ppr.php в к отором должен вставляться id : Код (Text): $id_firm = $_GET['id']; $selct2 = mysql_query("SELECT vak_kan.id, vak_kan.id_vak, vak_kan.id_status, kandidat.id_candidat, kandidat.rezum_txt FROM vak_kan, kandidat WHERE vak_kan.id_vak='$id_firm' AND vak_kan.id_status=5 AND vak_kan.id_candidat=kandidat.id_candidat");.... ...<form action="vak_up.php" method="post"> <select name='f'> <?php ... echo '<option value="6">'.неподход.'</option>'; ... ?> </select> <input type="hidden" name="id" value="<?=(int)$_GET['id']?>"> и заканчивается файллом vak_up.php где в записи с определенным id должно поменятся значение id_status : Код (Text): ...$kan = $_POST['f']; $ress = $_POST['id']; $qwerty = mysql_query("UPDATE vak_kan SET id_status = '$kan' WHERE id = '$ress'");... проблема в том, что нигде по пути не вытягивается id из vak_kan, не понятно как это сделать. Мы люди не местные, помогите советом кто сколько может....
да я так и сделал, только не vakans а vak_kan. вставил название таблицы и id , а мне выдало безчисленное количество повторяющихся данных. но все равно, благодаря вашему совету я выкрутился из положения. таким вот образом: таблица vak_kan : Код (Text): id id_vak id_candidat id_status Код (Text): ....<select name='f'>.... </select> <input type="hidden" name="id" value="<?=(int)$_GET['id']?>"> <input type="hidden" name="idr" value="<?=(int)$res2['id_candidat']?>"> ..... $kan = $_POST['f']; $ress = $_POST['id']; $ress3 = $_POST['idr']; } .... $qwerty = mysql_query("UPDATE vak_kan SET id_status = '$kan' WHERE id_vak = '$ress' AND id_candidat = '$ress3'"); я использую все показатели кроме id ... Вы мне помогли, с меня обещаное морожено... давайте номер вашего вебмани. Спасибо друг!
обновлять что-то лучше по первичному или какому другому уникальному ключу, если конечно надо обновить только одну запись.
по первичному проблема. все остальные ключи уникальны. предполагается обновлять по одному, но есть мысль поставить чекбоксы и обновлять пачкой... или в данном случае лучше не использовать чекбокс?
Скажите , так как я намудрил, это не правильно? я просто не представляю как сделать по другому? наверное какой то принципиально другой подход?
не, почему. Я просто сказал, что это не связано. С правильностью это тоже не связано. =) Правильно или нет - это от ситуации зависит.
хорошо, спасибо. тут у меня новая головоломка возникла, предлагаю поучаствовать (на этом же форуме): viewtopic.php?f=9&t=54565