R
E
S
O
U
R
C
E
S
       Question Index      Products & Services      Contact Us      Links


WebHatchers will design & develop your site for you.
_______________________

Website Menu Heaven: side or top popup menus, buttons, image rotators, navbars, tons more.
_______________________

Send us your questions and wittiest comments.
_______________________

Report errors on our site.
_______________________

Share your neatest DHTML examples with us; we may publish them.
_______________________


_______________________

      QUESTION INDEX      

Question Index
Browser Insanity
JavaScript
Animation
Buttons and Menus
CSS and HTML
PHP
Personal Status Boards
Content Management
   Systems
Article Content
   Management Systems
Website Directory
   CMS Systems
Photo Gallery CMS
Forum CMS

 INFORMATIVE ARTICLES 

Menus-and-Buttons-
Part-I.htm


Menus-and-Buttons-
Part-II.htm


Change-Div-Size-Color-
and-Location-with-the-
W3C-DOM.htm


Bouncing-Ball-Animation-
with-the-W3C-DOM.htm


Style-Changes-with-the-
W3C-DOM.htm


Animation-with-the-
W3C-DOM.htm


Window-Play-and-Some-
Important-DOM-Methods.htm


Using-getElementsByTagName
-and-getElementsByName.htm


The-CSS-Resources-Intro-
Page.htm


Convert-Word-Files-to-HTML-
and-Install-Editor2-to-
Use-Instead-of-NotePad.htm


CSS-Issues.htm

What Are Fifteen Simple Methods of Doing Web-Page Pop-ups?

Security levels from Javascript and PHP input filtering

What is a regular expression general input validator?

What is a regular expression user name validator?

What is a regular expression password validator?

What is a regular expression email validator?

What is a regular expression URL validator?

How can I convert a Javascript array to a PHP array?

How can I Dynamically Create Input Boxes with Validation?

How do I use JavaScript Object Notation (JSON) in PHP and JavaScript to convert strings and arrays from PHP to JavaScript?

How do I add html to a web page with JavaScript, PHP or ssi includes?

How do I add html to a web page with JavaScript includes?


PHP

How do you put PHP variables in URL and link text?

What is PHP Code for Multiple PSB Hosts?

What is Registration PHP Code for Multiple PSB Hosts?

What is Registration PHP Code for Multiple PSB Hosts with a captcha?

What is Administrator PHP Code for Multiple PSB Hosts?

What's the PHP code for a script for a PSB?

What's the PHP code for a script for PSB updating?

What's the PHP code for a script if you forgot your user name?

What's the PHP code for a script if you forgot your password?

What's the PHP code for a script to change a member's email address?

What's the PHP code for a script to connect to a MySQL database?

What's the PHP code for a script to close a member's account?

What's the PHP code for a script to edit group member?

What's the PHP code for a script to add group member?

What's the PHP code for a script to reset a MySQL table's data to its original?

What's the PHP code for a script to edit a MySQL table's data?

What's the PHP code for a script to change a username?

What's the PHP code for a script to change a password?

What's the PHP code for a script to delete group member?

What's the PHP code for a script to view membership data?

What's the PHP code for a script to change an administrator's password?

What's the PHP code for a script to logout?

What's the PHP code for a script to login?

Security levels from Javascript and PHP input filtering

Security levels and PHP

How can I convert a Javascript array to a PHP array?

What is PHP Code to Prevent Duplicate Data Input - Like User Names or Members?

What is PHP Code for PSB Status Update for Multiple PSB Hosts?

How do I sort 1 PHP array and have the other arrays sort in parallel to how the first array sorts?

How do I use JavaScript Object Notation (JSON) in PHP and JavaScript to convert strings and arrays from PHP to JavaScript?

How do you do PHP-to-JavaScript String Conversion with No JSON?

How do you Convert PHP String to JavaScript String?

How do you Post a JavaScript Array to a PHP Array?

How do you send a value to PHP using JavaScript?

Info on unwanted primary field auto-sorting

How can I do instant article font size, font family, and paragraph formatting with radio buttons?

How can I create custom HTML tags that are safer for MySQL databases?

How can I edit text from MySQL databases by using a textarea box?

How can I highlight matched search terms in a MySQL database table search?

How can I search using not only exact phrase matching but also a series of words to match in a MySQL database table search?

What's the code for an Ajax and PHP Based Input Filter?

Ajax and PHP Based Insult Auto-Completer

How can I use PHP and MySQL for Checking Key Codes to Allow Update to a New Software App Version?




Personal Status Boards (PSB™)

Standard Free PSB

PSB Pro Version

Social PSB

Social PSB Plus (with Email)

Business PSB

Business PSB Plus (with Email)

PSB demo

Social PSB demo

Business PSB demo

So what's all this PSB stuff about?

Chart comparing business status boards

PSB hosting diagram

PSB Licence Agreement




Article Content Management System

Content Management System Introduction

Content Management System—Article Navigation

Content Management System—Article Indexing

Content Management System—Article Editing

Content Management System—Article Searching

Content Management System—Article Deleting

Content Management System—Article Writing

Content Management System—Article Reading

What are the terms of use for our Article Content Management System?




Website Directory Content Management System

Website Directory Navigation

Website Directory—Delete Category

Website Directory—Delete URL

Website Directory—Add URL

Website Directory—Add Category

Website Directory—Directory Creating

Website Directory—View by Category (Demo Code)

Website Directory—View by URL (Demo Code)

Website Directory—View by Category (Demo)

Website Directory—View by URL (Demo)

Website Directory—View

Website Directory—View (Demo)




Photo Gallery Content Management System

Code for Photo Gallery Navigation

Code for Photo Gallery—View

Code for Photo Gallery—Create

Code for Photo Gallery—Add Category

Code for Photo Gallery—Delete Category

Code for Photo Gallery—Add Photo

Code for Photo Gallery—Delete Photo

Code for JavaScript Photo Gallery

JavaScript Photo Gallery




Forum Content Management System

Forum: home page

Forum: search

Forum: login

Forum: topic and replies viewing page

Forum: add topic to database

Forum: add reply to database

Forum: edit topic in database

Forum: create topic in database

Forum: delete topic in database

Forum: delete reply in database

Forum: delete user account in members table



Copyright © 2002 -
MCS Investments, Inc. sitemap

PSBs, social networking, social evolution, microcommunities, personal status boards
PSBs, social networking, business personal status boards
website design, ecommerce solutions
website menus, buttons, image rotators
Ez-Architect, home design software
the magic carpet and the cement wall, children's adventure book
the squirrel valley railroad, model railroad videos, model train dvds
the deep rock railroad, model railroad videos, model train dvds

Add Group Member

The add-group-member.php script lets administrators add a new user's first name and the rest of the record to the administrator's PSB™ table. Any name of 1 to 12 characters containing only letters, numbers and underline is okay. Editing group members or deleting group members are done in other scripts.

In adding a group member name and the rest of the record in the administrator's PSB™ table, the configure.php is included to establish server and database connections. Next, we get the username and new fname variables POSTed to our PHP script, with the username being POSTed from the page that sent us here and the other variables getting POSTed from this member adding page to itself. Note that if the Administrator is not logged in and therefore his username (stored in $U) is unset, he is sent to the login page. If the $A variable is not set, he has not yet entered data into the form.

Once the $A variable is set with the new first name, the PHP script adds the specified first name and the rest of the record to the Administrator's PSB™ table where first names, IDs, statuses and comments are stored. To do this, the table gets queried with "SELECT max(ID) FROM $B", which finds the maximum ID number in the ID column of the table. This ID number gets incremented before using it as the ID of the new member. This is critical because the new ID has to be greater than the rest of the ID numbers or the PSB™ will not function right.

Let's look at how MySQL databases work. The PRIMARY key, when we push it into a PHP array after pulling it from the database with MySQL commands in PHP, will ALWAYS come out of the database table as a sorted array, but the other fields will be unsorted arrays—in the same order as they were originally entered. If we use the MySQL command ORDER BY, we can get displayed HTML tables in which rows/records DISPLAY in any desired order. But this does NOT mean that these sorted display values can be pushed into PHP arrays in sorted form. When we try, we always get the PRIMARY field array sorted in ascending order, but the other fields will be unsorted arrays—in the same order as they were originally entered. There is no way to get ALL the fields' arrays to be in parallel, as long as we include the PRIMARY key in the mix. If we leave it out, the fields used will all be unsorted arrays, representing records in parallel, with element 3 in each array, for example, representing the various fields in one distinct record/row. This works. Once we found this out, we gave up plans to have the ID field be PRIMARY (therefore presorted). Instead, we assigned a different unused field, N, as PRIMARY, and never thought about it again, never displaying it or using it. It was set to be an auto-incrementing field so we needn't stick values into an INSERT—just use empty quotes (MySQL knows what to do with these). With the ID field now parallel to the other fields when we pushed the values into arrays, there were no more problems, but before we took the PRIMARY attribute from ID, there were loads of problems. The reason that most people use ID as PRIMARY is that if all you plan to do is display the records in HTML tables, all works smoothly—PRIMARY ID fields are a good choice for this use. But our plans included putting the values in PHP arrays which we then converted to JavaScript arrays using JSON, for use in the browser. For example, in the PSB™ we change the generic "Member Status" to a specific member's name once the "Change Status" button is clicked, and we needed the JavaScript arrays to accomplish this. The reason we even had a PRIMARY field is that MySQL requires it in order to keep things straight, internally.

In the process of deleting members (which sometimes happens), holes in the ID number sequences arise which could hold a new member later, and sure enough, when we add a new member, they often fill the gap. However we don't mean there's a gap between records 3 and 5 that gets plugged with record 4. No, the new record that gets plugged into the gap in the table is one higher than the highest numbered record (because we programmed it that way). If the highest record number was 12, then 13 gets plugged in the gap between 3 and 5. (Of course, you can always use the phpMyAdmin utility and access the MySQL database and put records where you want with whatever ID numbers you want. But this is surely doing things the hard way, and you cannot expect users of apps you build to do this.) This "mixing records in the MySQL table" phenomenon doesn't hurt anything as long as we are not utilizing the PRIMARY field for anything. The way we make sure that all IDs are distinct and unique is to force a newly added group member's ID to be one higher than the highest existing number, which is easily done with MySQL's "SELECT max(ID) FROM tablename" function. Add 1 to these results and we have our new member's ID. One cannot predict how and when MySQL will decide to plug a hole. As one MySQL expert puts it: "there is no such thing as a beginning, middle, or end with MySQL tables." So trying to "append" a record to the "end," even if it has the highest ID number, is a fool's errand. Once a deletion causes a gap, new records will go into the gaps and there is nothing that can be done about it. If you have records that will never ever suffer a deletion, you just MAY be able to keep the latest, highest numbered record at the end of the MySQL table. But why create apps that rely on this when it's not necessary? When we grab the "last" record in a table, regardless of whether we're refering to the actual position in the table or the record (not necessarily last) with the highest ID number, it will always create PHP and JavaScript arrays with element number 6 in each array representing one single MySQL row/record. But if we counted on the highest ID being last, and gaps have EVER occured for ANY reason, we'd get arrays with mixed records. In sum, then, it's good practice to avoid counting on record positions in tables, and it's likewise good practice to use no PRIMARY fields in your record data (but instead use an unused column as an auto-incrementing PRIMARY) when you need to use arrays to store your MySQL table records for use in a browser app.

Note that we check through the Firstname data in the table to make sure the group member added is not a duplicate. If it is, we don't add the name, but give a warning message instead.

If the table gets appended successfully, you get a message to that effect. Success is detected by a special MySQL function, mysql_affected_rows(). Once the appending is done, there's a button to let the administrator return to the Administrators Page. Note that JSON is used to pass the user name from PHP to JavaScript and then it gets POSTed back to PHP by the form in this script as well as to the Administrator page. This keeps the user logged in so he need not login constantly as he uses various editing scripts.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<TITLE>Add Group Member</TITLE>
<meta name="description" content="Add Group Member">
<meta name="keywords" content="Add Group Member,php,javascript, dhtml, DHTML">
<style type="text/css">
BODY {margin-left:0; margin-right:0; margin-top:0;text-align:left}
p, li {font:13px Verdana; color:black;text-align:left}
h1 {font:bold 28px Verdana; color:black;text-align:center}
h2 {font:bold 24px Verdana;text-align:center}
h3 {font:bold 15px Verdana;}
</style>
</head><body>

<div style='position:absolute;top:450px;left:370px;border:1px solid black;background-color:#eee;'>

<?php

include_once"configure.php";

$U=$_POST['username'];
$A=$_POST['fname'];

if (!isset($U)) {
echo '<script language="javascript">alert("Please login.");
window.location="login.php"; </script>';
}

$B=$U."_psb";

$result = mysql_query("SELECT * FROM $B") or die(mysql_error());

echo "<table border='1' width='162'>";
echo "<tr><th>ID</th><th>First Name</th></tr>";
while($row = mysql_fetch_array($result)) {
echo "<tr><td>";
echo $row['ID'];
echo "</td><td>";
echo $row['Firstname'];
echo "</td></tr>";
}
echo "</table>";

if (isset($A)) {

$dupe=0;

$myArray=array();

$res = mysql_query("SELECT Firstname FROM $B") or die(mysql_error());
while ($row = mysql_fetch_row($res)) {
array_push ($myArray, $row[0]);
}

$num=mysql_num_rows($result);

for($i=0;$i<$num;$i++){
if($A==$myArray[$i]){unset($A);$dupe=1;}
}
if($dupe==1){$dupe=0;echo '<script language="javascript">alert("This name already exists.");</script>';}else{

$result = mysql_query("SELECT max(ID) FROM $B") or die(mysql_error());
$row = mysql_fetch_row($result);
$number=$row[0]+1;

mysql_query("INSERT INTO $B (N, Firstname, ID, Status, Comment)
VALUES('','$A','$number','99','')");
$rc = mysql_affected_rows();
if ($rc>0){unset($A);
echo '<script language="javascript">alert("The change was successfully accomplished.");</script>';}
else{echo '<script language="javascript">alert("The change was unsuccessful.");</script>';}
}
?>

<div style='position:absolute;top:0px;left:0px;border:1px solid black;background-color:#eee;'>

<?php

$B=$U."_psb";

$result = mysql_query("SELECT * FROM $B") or die(mysql_error());

echo "<table border='1' width='162'>";
echo "<tr><th>ID</th><th>First Name</th></tr>";
while($row = mysql_fetch_array($result)) {
echo "<tr><td>";
echo $row['ID'];
echo "</td><td>";
echo $row['Firstname'];
echo "</td></tr>";
}
echo "</table>";

?>

</div>

<?php
}

mysql_close();
?>
</div>

<h1>Add Group Member</h1>

<div id='pw' style='position:absolute;top:150px;left:370px;width:262px'><table style="background-color:#8aa;border-color:#00f" border='6' cellspacing=0 cellpadding=6><tr><td>
<form id='formpw' name="formpw" method="post" action="add-group-member.php" onsubmit="return validatefname()">
<label for="First Name"><b>First Name:    </b><input type="text" name="fname" size="12" maxlength="12" value=""></label><br><br>
<input type="hidden" name="username" value=" ">
<input type="submit" value="Add Group Member"><br><br>
<input type="reset" value="Reset"></form></td></tr></table>

<br><br>

<form style='margin-left:0px' name="MyForm" method="POST" action="administrator-page.php">
<input type="button" value="Return to Administrator Page" onclick="goback()">
<input type="hidden" name="username" value=" ">
</form>

</div>

<script language="javascript">

function goback(){
var u = <?php echo json_encode($U); ?>;
document.MyForm.username.value=u;
document.MyForm.submit();}

function validatefname(){

var u = <?php echo json_encode($U); ?>;
document.formpw.username.value=u;

var ck_username = /^[A-Za-z0-9_]{1,12}$/;
if (document.formpw.fname.value.search(ck_username)==-1)
{alert("Please only enter letters, numbers and underline for user first names, and enter 1 to 12 characters.");return false}

return true;}

</script>

</body></html>