редактиране с цикъл

obqvi_in

Registered
Имам таблица с няколко резултата изкарвам ги с цикъл как мога да редактирам всеки еди резултат по отделно например имам таблица и един бутон за всеки ред и да мога да променям информацията за всеки ред по отделно с неговият бутон нарочно не съм дал код защото искам примерен код как ще стане това
 
Вариат 1 - всеки един ред от таблицата всъщност е формуляр и този бутон, ще бъде submit бутон за конкретния ред/формуляр. Грозно, но ще работи.
HTML:
<tr>
    <form>
    ........
    </form>
</tr>

Вариант 2 - това вече с javascript, при натискане на бутона, взимаш данните от полетата на конкретния ред и през ajax ги изпращаш към сървъра, като едно скрито поле, или пък като атрибут на някой от елементите в този ред, трябва да разполагаш с id номерчето на този запис. HTML кода е подобен на първия, естествено без формуляра, т.е. с най-малко промени по HTML.
 
Ще предпочета първият по елементарният начин но не знам как се взимаха отделните 'id-та' за да коригирам отделният ред ето и кода за да се види какво ми липсва
HTML:
<form action="" method="post">
<table border="2">
<tr>
<td>N:</td><td align="center">Име реферал</td><td>Клика</td><td>Добави</td>
</tr>
<tr><?php	 
    if(isset($_POST['sub_1']))
	{
	 $name_edit  = $_POST['edit_name'];
	 $click = $_POST['edit_click'] + $_POST['sum_click'];
	 $update = mysql_query("UPDATE referali_edit SET name = '$name_edit', click = '$click'");  
	}
	 
$q_ref = "SELECT * FROM referali_edit";
$r_ref = mysql_query($q_ref) or die (mysql_error());
while($ref = mysql_fetch_array($r_ref)) { ?>
<td><?php echo $ref['id_N']; ?></td>
<td><input type="text" name="edit_name" value="<?php echo $ref['name']; ?>" class="red"></input></td>
<td><input type="text" name="edit_click" value="<?php echo $ref['click']; ?>" class="red" size="2" /></td>
<td class="red"><input type="text" name="sum_click" size="3" /></td>
<td class="red"><input type="submit" name="sub_1" value="Редектирай" /></td>
</tr> <?php } ?>
 

</table>
</form>
 
Вероятно това id_N, не ти знам структурата на таблицата

HTML:
<td><?php echo $ref['id_N']; ?></td>

да стане:
HTML:
<td>
          <?php echo $ref['id_N']; ?>
          <input type="hidden" name="id_N" value="<?php echo $ref['id_N']; ?>" />
</td>

и после слагаш в ъпдейт заявката една where клауза с id_N
 
А защо просто в страницата която ги извеждаш не поставиш по 1 линк към нова страница за редактиране, като съоветно всеки линк си е с ид-то на съответния ред от таблицата?
 
'id_N' ми е id-то а аз искам да редактирам почти всички полета но може и само едно за да видя как че стане аз ще си оправя другите като редактирам в момента ми редактира всички редове трябва да взема на всеки ред id-то и да редактирам само него не се сещам как ето и таблица тя разбира се е примерна
[sql]CREATE TABLE IF NOT EXISTS `referali_edit` (
`id_N` int(11) NOT NULL AUTO_INCREMENT,
`name` int(20) NOT NULL,
`days` int(11) NOT NULL,
`click` int(11) NOT NULL,
`paid` double NOT NULL,
`oshte-click` int(11) NOT NULL,
`c` int(11) NOT NULL DEFAULT '0',
`data` time NOT NULL,
PRIMARY KEY (`id_N`)[/sql]
 
Не си обърнал внимание какво писах по-нагоре - трябва освен всичко друго, да си редактираш и ъпдейт заявката, като добавиш стойността на id_N

HTML:
<?php

if(isset($_POST['sub_1']))
{
	$id_N = (int) $_POST['id_N'];
	$name_edit  = mysql_real_escape_string($_POST['edit_name']);
        $click = (int) $_POST['edit_click'] + $_POST['sum_click'];

        $update = mysql_query("UPDATE referali_edit SET name = '$name_edit', click = '$click' WHERE id_N = ".$id_N);  
}

?>



<table border="2">
<tr>
<td>N:</td><td align="center">Име реферал</td><td>Клика</td><td>Добави</td><td>Редактирай</td>
</tr>

<?php        
$q_ref = "SELECT * FROM referali_edit";
$r_ref = mysql_query($q_ref) or die (mysql_error());
while($ref = mysql_fetch_array($r_ref)) { ?>

<form action="" method="post">
<tr>
<td><input type="hidden" name="id_N" value="<?php echo $ref['id_N']; ?>" /><?php echo $ref['id_N']; ?></td> 
<td><input type="text" name="edit_name" value="<?php echo $ref['name']; ?>" class="red"></input></td>
<td><input type="text" name="edit_click" value="<?php echo $ref['click']; ?>" class="red" size="2" /></td>
<td class="red"><input type="text" name="sum_click" size="3" /></td>
<td class="red"><input type="submit" name="sub_1" value="Редектирай" /></td>
</tr>
</form> 
<?php } ?>
 

</table>
</form>

Отучвайте се вече от тоя процедурен код и функции като mysql_***, научете поне обектната версия на MySQLi, ако не PDO или нещо по-сериозно.

Като пишете такива ъпдейт или инсърт заявки, обръщайте внимание и на сигурността, да не си намерите сайтовете срутени. Съвсем скоро mysql_real_escape_string ще бъде отхвърлена, а след това и напълно премахната.
 

Back
Горе