Re: #28519 [NEW]: TASK: identify orphan user notes and mass assign
| From: | Jakub Vrana | Date: | Fri, 28 May 2004 15:53:17 +0000 |
| Subject: | Re: #28519 [NEW]: TASK: identify orphan user notes and mass assign | ||
| References: | 1 2 3 4 5 6 7 8 9 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969361054@lists.php.net to get a copy of this message | ||
Here is the second step. It is the form to mass change sections of
notes. I think that moving Nuno's script to the server is not necessary.
It can be easily run locally and through the web interface only changes
can be done.
> Then do a select on the notes db and check for non-valid IDs and do a
> foreach{} to print a html form to allow us to change the IDs.
The interface should be more universal to allow changes of notes in e.g.
split sections.
Jakub Vrana
Index: user-notes.php =================================================================== RCS file: /repository/php-master-web/manage/user-notes.php,v retrieving revision 1.39 diff -u -r1.39 user-notes.php --- user-notes.php 26 May 2004 10:15:09 -0000 1.39 +++ user-notes.php 28 May 2004 15:42:39 -0000 @@ -152,6 +152,8 @@ </tr> </table> </form> + +<p><a href="<?php echo $PHP_SELF;?>?action=mass">Mass change of sections</a></p> <?php foot(); exit; @@ -171,6 +173,79 @@ or die("unable to select database"); switch($action) { +case 'mass': + head(); + $where = array(); + if ($old_sect) + $where[] = "sect = '$old_sect'"; + if ($ids) + $where[] = "id IN ($ids)"; + + if ($step == 2) { + if (!mysql_query("UPDATE note SET sect = '$new_sect' WHERE " . implode(" AND ", $where))) + echo "<p>Mass change failed: " . mysql_error() . "</p>\n"; + else + echo "<p>Mass change succeeded.</p>\n"; + } elseif ($step == 1) { + if ($new_sect && ($ids || $old_sect)) { + if (!($result = mysql_query("SELECT COUNT(*) FROM note WHERE " . implode(" AND ", $where)))) + echo "<p>SQL error: " . mysql_error() . "</p>\n"; + elseif (!($count = mysql_result($result, 0, 0))) + echo "<p>There are no such notes.</p>\n"; + else { + $step = 2; + $msg = "Are you sure to change section of <b>$count note(s)</b>"; + $msg .= ($ids ? " with IDs <b>$ids</b>" : ""); + $msg .= ($old_sect ? " from section <b>$old_sect</b>" : ""); + $msg .= " to section <b>$new_sect</b>?"; + echo "<p>$msg</p>\n"; +?> +<form action="<?php echo $PHP_SELF; ?>?action=mass" method="post"> +<input type="hidden" name="step" value="2"> +<input type="hidden" name="old_sect" value="<?php echo $old_sect; ?>"> +<input type="hidden" name="ids" value="<?php echo $ids; ?>"> +<input type="hidden" name="new_sect" value="<?php echo $new_sect; ?>"> +<input type="submit" value="Change"> +</form> +<?php + } + } else { + if (!$new_sect) + echo "<p><b>You have to fill-in new section.</b></p>\n"; + if (!$ids && !$old_sect) + echo "<p><b>You have to fill-in curent section or notes IDs (or both).</b></p>\n"; + } + } + if ($step < 2) { +?> +<form action="<?php echo $PHP_SELF; ?>?action=mass" method="post"> +<input type="hidden" name="step" value="1"> +<p>Change section of notes which fit these criteria:</p> +<table> + <tr> + <th align="right">Current section:</th> + <td><input type="text" name="old_sect" value="<?php echo $old_sect; ?>" size="30" maxlength="80" /> (filename without extension)</td> + </tr> + <tr> + <th align="right">Notes IDs:</th> + <td><input type="text" name="ids" value="<?php echo $ids; ?>" size="30" maxlength="80" /> (comma separated list)</td> + </tr> + <tr> + <th align="right">Move to section:</th> + <td><input type="text" name="new_sect" value="<?php echo $new_sect; ?>" size="30" maxlength="80" /></td> + </tr> + <tr> + <td align="center" colspan="2"> + <input type="submit" value="Change" /> + </td> + </tr> +</table> +</form> +<?php + } + echo "<p><a href='$PHP_SELF'>Back to notes index</a></p>\n"; + foot(); + exit; case 'approve': if ($id) { if ($result = mysql_query("SELECT * FROM note WHERE id=$id")) {
Index: user-notes.php =================================================================== RCS file: /repository/php-master-web/manage/user-notes.php,v retrieving revision 1.39 diff -u -r1.39 user-notes.php --- user-notes.php 26 May 2004 10:15:09 -0000 1.39 +++ user-notes.php 28 May 2004 15:42:39 -0000 @@ -152,6 +152,8 @@ </tr> </table> </form> + +<p><a href="<?php echo $PHP_SELF;?>?action=mass">Mass change of sections</a></p> <?php foot(); exit; @@ -171,6 +173,79 @@ or die("unable to select database"); switch($action) { +case 'mass': + head(); + $where = array(); + if ($old_sect) + $where[] = "sect = '$old_sect'"; + if ($ids) + $where[] = "id IN ($ids)"; + + if ($step == 2) { + if (!mysql_query("UPDATE note SET sect = '$new_sect' WHERE " . implode(" AND ", $where))) + echo "<p>Mass change failed: " . mysql_error() . "</p>\n"; + else + echo "<p>Mass change succeeded.</p>\n"; + } elseif ($step == 1) { + if ($new_sect && ($ids || $old_sect)) { + if (!($result = mysql_query("SELECT COUNT(*) FROM note WHERE " . implode(" AND ", $where)))) + echo "<p>SQL error: " . mysql_error() . "</p>\n"; + elseif (!($count = mysql_result($result, 0, 0))) + echo "<p>There are no such notes.</p>\n"; + else { + $step = 2; + $msg = "Are you sure to change section of <b>$count note(s)</b>"; + $msg .= ($ids ? " with IDs <b>$ids</b>" : ""); + $msg .= ($old_sect ? " from section <b>$old_sect</b>" : ""); + $msg .= " to section <b>$new_sect</b>?"; + echo "<p>$msg</p>\n"; +?> +<form action="<?php echo $PHP_SELF; ?>?action=mass" method="post"> +<input type="hidden" name="step" value="2"> +<input type="hidden" name="old_sect" value="<?php echo $old_sect; ?>"> +<input type="hidden" name="ids" value="<?php echo $ids; ?>"> +<input type="hidden" name="new_sect" value="<?php echo $new_sect; ?>"> +<input type="submit" value="Change"> +</form> +<?php + } + } else { + if (!$new_sect) + echo "<p><b>You have to fill-in new section.</b></p>\n"; + if (!$ids && !$old_sect) + echo "<p><b>You have to fill-in curent section or notes IDs (or both).</b></p>\n"; + } + } + if ($step < 2) { +?> +<form action="<?php echo $PHP_SELF; ?>?action=mass" method="post"> +<input type="hidden" name="step" value="1"> +<p>Change section of notes which fit these criteria:</p> +<table> + <tr> + <th align="right">Current section:</th> + <td><input type="text" name="old_sect" value="<?php echo $old_sect; ?>" size="30" maxlength="80" /> (filename without extension)</td> + </tr> + <tr> + <th align="right">Notes IDs:</th> + <td><input type="text" name="ids" value="<?php echo $ids; ?>" size="30" maxlength="80" /> (comma separated list)</td> + </tr> + <tr> + <th align="right">Move to section:</th> + <td><input type="text" name="new_sect" value="<?php echo $new_sect; ?>" size="30" maxlength="80" /></td> + </tr> + <tr> + <td align="center" colspan="2"> + <input type="submit" value="Change" /> + </td> + </tr> +</table> +</form> +<?php + } + echo "<p><a href='$PHP_SELF'>Back to notes index</a></p>\n"; + foot(); + exit; case 'approve': if ($id) { if ($result = mysql_query("SELECT * FROM note WHERE id=$id")) {