PhpLabWare version 0.3 
/dd/ -> 0_0031_inc.php

1  <?php
2 
3  // 0_0031_inc.php - See code
4  // 0_0031_inc.php - author: Nico Stuurman
5 
6    /***************************************************************************
7    * Copyright (c) 2002 by Nico Stuurman *
8    * ------------------------------------------------------------------------ *
9    * This code is part of phplabware (http://phplabware.sf.net) *
10    * *
11    * *
12    * This program is free software; you can redistribute it and/or modify it *
13    * under the terms of the GNU General Public License as published by the *
14    * Free Software Foundation; either version 2 of the License, or (at your *
15    * option) any later version. *
16    \**************************************************************************/
17 
18  // get the real tablenames into a column
19  $db->Execute("ALTER TABLE tableoftables ADD COLUMN real_tablename text");
20  $r=$db->Execute("SELECT id,tablename FROM tableoftables");
21  while (!$r->EOF) {
22     $real_tablename=$r->fields["tablename"];
23     if ($r->fields["id"]>10000)
24        $real_tablename.="_".$r->fields["id"];
25     $db->Execute("UPDATE tableoftables SET real_tablename='$real_tablename' WHERE id='".$r->fields["id"]."'");
26     $r->MoveNext();
27  }
28 
29  // Make it possible to assign a user to multiple groups:
30  $db->Execute("CREATE INDEX usersxgroups_userid ON usersxgroups(usersid)");
31  $db->Execute("CREATE INDEX usersxgroups_groupid ON usersxgroups(groupsid)");
32 
33  // Make it possible to assign different 'powers' to different groups
34  $db->Execute("ALTER TABLE groups ADD COLUMN power int");
35 
36  // Make a table that allows showing different tables to different groups
37  if ($db_type=="mysql")
38     $db->Execute("CREATE TABLE groupxtable_display (
39                  groupid int,
40                  tableid int,
41                  UNIQUE INDEX (groupid,tableid))");
42  else {
43     $db->Execute("CREATE TABLE groupxtable_display (
44                  groupid int,
45                  tableid int,
46                  CONSTRAINT gxtspecial PRIMARY KEY (groupid,tableid))");
47     $db->Execute("CREATE INDEX groupxtable_display_groupid ON groupxtable_display(groupid)");
48     $db->Execute("CREATE INDEX groupxtable_display_tableid ON groupxtable_display(tableid)");
49  }
50  // Make all current tables visible to all groups
51  $rg=$db->Execute("SELECT id FROM groups");
52  while (!$rg->EOF) {
53    $ag[]=$rg->fields["id"];
54    $rg->MoveNext();
55  }
56  $rt=$db->Execute("SELECT id FROM tableoftables");
57  while (!$rt->EOF) {
58    $at[]=$rt->fields["id"];
59    $rt->MoveNext();
60  }
61  foreach ($ag AS $groupid)
62     foreach ($at AS $tableid)
63        $db->Execute("INSERT INTO groupxtable_display VALUES ('$groupid','$tableid')");
64 
65  // Add some indices to tableoftables
66  $db->Execute("CREATE INDEX tableoftables_id ON tableoftables(id)");
67  $db->Execute("CREATE INDEX tableoftables_tablename ON tableoftables(tablename)");
68  $db->Execute("CREATE INDEX tableoftables_tablename ON tableoftables(tablename(10))");
69  ?>


Generated: Sun Oct 5 21:17:35 2003 SourceForge Logo Generated by PHPXref 0.2