From: elserj Date: Tue, 14 Jan 2014 00:42:25 +0000 (+0000) Subject: Restore messed up commit of inventory X-Git-Url: http://gitweb.planteome.org/?a=commitdiff_plain;h=c6805fec042ac60faf9eaa159a04f0d03c09fb0b;p=old-jaiswallab-svn%2F.git Restore messed up commit of inventory svn path=/; revision=521 --- diff --git a/inventory_web/' b/inventory_web/' new file mode 100644 index 0000000..db04053 --- /dev/null +++ b/inventory_web/' @@ -0,0 +1,79 @@ +body{ + font-family:"Arial Black", Gadget, sans-serif; + background-color:EBFFFA; +} + +.optional{ + border:none; +} + +.required{ + background-color:A62000; + color:000000; + font-weight:900; +} + +.header{ + border:none; + background-color:A6A6A6; + box-shadow: inset 0 3px 3px 0 rgba(255, 255, 255, 0.32); + font-size:15; + white-space:nowrap; +} + +.spacer { + border:none; +} + +tr.no-border-row td { + border:none; +} + +td { + height:50; + border-radius:5px; + vertical-align:middle; +} + +#logindiv { + width:500px; + background-color:919191; + margin:0 auto; + -moz-border-radius: 15px; + border-radius: 15px; +} + +textarea.rounded { + border: 1px solid #ccc; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + -moz-box-shadow: 2px 2px 3px #666; + -webkit-box-shadow: 2px 2px 3px #666; + box-shadow: 2px 2px 3px #666; + font-size: 20px; + padding: 1px 1px; + outline: 1; + -webkit-appearance: none; +} + +input.rounded { + border: 1px solid #ccc; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + -moz-box-shadow: 2px 2px 3px #666; + -webkit-box-shadow: 2px 2px 3px #666; + box-shadow: 2px 2px 3px #666; + font-size: 20px; + padding: 4px 7px; + outline: 0; + -webkit-appearance: none; +} + +input.rounded:focus { + border-color: #339933; +} + +.required_input { +} diff --git a/inventory_web/InventoryTracker.php b/inventory_web/InventoryTracker.php new file mode 100644 index 0000000..8aac1d7 --- /dev/null +++ b/inventory_web/InventoryTracker.php @@ -0,0 +1,179 @@ + + + + + + + + + + Jaiswal Lab Inventory Tracker + + + + + + + + + + +
+
+

Add Inventory Item

+
+ + + + + + + + + + + + + + + + + + +

ITEM INFORMATION:

NOTES

REQUIRED:Type:Quantity:
OPTIONAL:Price:Collection Date:Expiration
Date:
OPTIONAL:Species:Line:


LOCATION

REQUIRED:Building/Room:
OPTIONAL:Freezer #:Shelf:Cupboard:


CURATOR

REQUIRED:Name:
OPTIONAL:Email:
+
+ + + +

Search Inventory Database

+
+ + + + + + + + + + + + + + +
+Search In: +
From: To:
Or search for most recent entries
+
+
+ + + + + + + + + diff --git a/inventory_web/create_user_script.php b/inventory_web/create_user_script.php new file mode 100644 index 0000000..38416b5 --- /dev/null +++ b/inventory_web/create_user_script.php @@ -0,0 +1,53 @@ + + diff --git a/inventory_web/dataTables.css b/inventory_web/dataTables.css new file mode 100644 index 0000000..ce8045e --- /dev/null +++ b/inventory_web/dataTables.css @@ -0,0 +1,501 @@ +/* + * * File: demo_table_jui.css + * * CVS: $Id$ + * * Description: CSS descriptions for DataTables demo pages + * * Author: Allan Jardine + * * Created: Tue May 12 06:47:22 BST 2009 + * * Modified: $Date$ by $Author$ + * * Language: CSS + * * Project: DataTables + * * + * * Copyright 2009 Allan Jardine. All Rights Reserved. + * * + * * *************************************************************************** + * * DESCRIPTION + * * + * * The styles given here are suitable for the demos that are used with the standard DataTables + * * distribution (see www.datatables.net). You will most likely wish to modify these styles to + * * meet the layout requirements of your site. + * * + * * Common issues: + * * 'full_numbers' pagination - I use an extra selector on the body tag to ensure that there is + * * no conflict between the two pagination types. If you want to use full_numbers pagination + * * ensure that you either have "example_alt_pagination" as a body class name, or better yet, + * * modify that selector. + * * Note that the path used for Images is relative. All images are by default located in + * * ../images/ - relative to this CSS file. + * */ + + +/* + * * jQuery UI specific styling + * */ + +.paging_two_button .ui-button { + float: left; + cursor: pointer; + * cursor: hand; + * } + * + * .paging_full_numbers .ui-button { + * padding: 2px 6px; + * margin: 0; + * cursor: pointer; + * * cursor: hand; + * color: #333 !important; + * } + * + * .dataTables_paginate .ui-button { + * margin-right: -0.1em !important; + * } + * + * .paging_full_numbers { + * width: 350px !important; + * } + * + * .dataTables_wrapper .ui-toolbar { + * padding: 5px; + * } + * + * .dataTables_paginate { + * width: auto; + * } + * + * .dataTables_info { + * padding-top: 3px; + * } + * + * table.display thead th { + * padding: 3px 0px 3px 10px; + * cursor: pointer; + * * cursor: hand; + * } + * + * div.dataTables_wrapper .ui-widget-header { + * font-weight: normal; + * } + * + * + */* + * Sort arrow icon positioning + * */ +table.display thead th div.DataTables_sort_wrapper { + position: relative; + padding-right: 20px; +} + +table.display thead th div.DataTables_sort_wrapper span { + position: absolute; + top: 50%; + margin-top: -8px; + right: 0; +} + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * + * * Everything below this line is the same as demo_table.css. This file is + * * required for 'cleanliness' of the markup + * * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * DataTables features + * */ + +.dataTables_wrapper { + position: relative; + clear: both; +} + +.dataTables_processing { + position: absolute; + top: 0px; + left: 50%; + width: 250px; + margin-left: -125px; + border: 1px solid #ddd; + text-align: center; + color: #999; + font-size: 11px; + padding: 2px 0; +} + +.dataTables_length { + width: 40%; + float: left; +} + +.dataTables_filter { + width: 50%; + float: right; + text-align: right; +} + +.dataTables_info { + width: 50%; + float: left; +} + +.dataTables_paginate { + float: right; + text-align: right; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * DataTables display + * */ +table.display { + margin: 0 auto; + width: 100%; + clear: both; + border-collapse: collapse; +} + +table.display tfoot th { + padding: 3px 0px 3px 10px; + font-weight: bold; + font-weight: normal; +} + +table.display tr.heading2 td { + border-bottom: 1px solid #aaa; +} + +table.display td { + padding: 3px 10px; +} + +table.display td.center { + text-align: center; +} + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * DataTables sorting + * */ + +.sorting_asc { + background: url('../images/sort_asc.png') no-repeat center right; +} + +.sorting_desc { + background: url('../images/sort_desc.png') no-repeat center right; +} + +.sorting { + background: url('../images/sort_both.png') no-repeat center right; +} + +.sorting_asc_disabled { + background: url('../images/sort_asc_disabled.png') no-repeat center right; +} + +.sorting_desc_disabled { + background: url('../images/sort_desc_disabled.png') no-repeat center right; +} + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * DataTables row classes + * */ +table.display tr.odd.gradeA { + background-color: #ddffdd; +} + +table.display tr.even.gradeA { + background-color: #eeffee; +} + + + + +table.display tr.odd.gradeA { + background-color: #ddffdd; +} + +table.display tr.even.gradeA { + background-color: #eeffee; +} + +table.display tr.odd.gradeC { + background-color: #ddddff; +} + +table.display tr.even.gradeC { + background-color: #eeeeff; +} + +table.display tr.odd.gradeX { + background-color: #ffdddd; +} + +table.display tr.even.gradeX { + background-color: #ffeeee; +} + +table.display tr.odd.gradeU { + background-color: #ddd; +} + +table.display tr.even.gradeU { + background-color: #eee; +} + + +tr.odd { + background-color: #E2E4FF; +} + +tr.even { + background-color: white; +} + + + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * * Misc + * */ +.dataTables_scroll { + clear: both; +} + +.dataTables_scrollBody { + -webkit-overflow-scrolling: touch; +} + +.top, .bottom { + padding: 15px; + background-color: #F5F5F5; + border: 1px solid #CCCCCC; +} + +.top .dataTables_info { + float: none; +} + +.clear { + clear: both; +} + +.dataTables_empty { + text-align: center; +} + +tfoot input { + margin: 0.5em 0; + width: 100%; + color: #444; +} + +tfoot input.search_init { + color: #999; +} + +td.group { + background-color: #d1cfd0; + border-bottom: 2px solid #A19B9E; + border-top: 2px solid #A19B9E; +} + +td.details { + background-color: #d1cfd0; + border: 2px solid #A19B9E; +} + + +.example_alt_pagination div.dataTables_info { + width: 40%; +} + +.paging_full_numbers a.paginate_button, + .paging_full_numbers a.paginate_active { + border: 1px solid #aaa; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + padding: 2px 5px; + margin: 0 3px; + cursor: pointer; + *cursor: hand; + color: #333 !important; +} + +.paging_full_numbers a.paginate_button { + background-color: #ddd; +} + +.paging_full_numbers a.paginate_button:hover { + background-color: #ccc; + text-decoration: none !important; +} + +.paging_full_numbers a.paginate_active { + background-color: #99B3FF; +} + +table.display tr.even.row_selected td { + background-color: #B0BED9; +} + +table.display tr.odd.row_selected td { + background-color: #9FAFD1; +} + + +/* + * * Sorting classes for columns + * */ +/* For the standard odd/even */ +tr.odd td.sorting_1 { + background-color: #D3D6FF; +} + +tr.odd td.sorting_2 { + background-color: #DADCFF; +} + +tr.odd td.sorting_3 { + background-color: #E0E2FF; +} + +tr.even td.sorting_1 { + background-color: #EAEBFF; +} + +tr.even td.sorting_2 { + background-color: #F2F3FF; +} + +tr.even td.sorting_3 { + background-color: #F9F9FF; +} + + +/* For the Conditional-CSS grading rows */ +/* + * Colour calculations (based off the main row colours) + * Level 1: + * dd > c4 + * ee > d5 + * Level 2: + * dd > d1 + * ee > e2 + * */ +tr.odd.gradeA td.sorting_1 { + background-color: #c4ffc4; +} + +tr.odd.gradeA td.sorting_2 { + background-color: #d1ffd1; +} + +tr.odd.gradeA td.sorting_3 { + background-color: #d1ffd1; +} + +tr.even.gradeA td.sorting_1 { + background-color: #d5ffd5; +} + +tr.even.gradeA td.sorting_2 { + background-color: #e2ffe2; +} + +tr.even.gradeA td.sorting_3 { + background-color: #e2ffe2; +} + +tr.odd.gradeC td.sorting_1 { + background-color: #c4c4ff; +} + +tr.odd.gradeC td.sorting_2 { + background-color: #d1d1ff; +} + +tr.odd.gradeC td.sorting_3 { + background-color: #d1d1ff; +} + +tr.even.gradeC td.sorting_1 { + background-color: #d5d5ff; +} + +tr.even.gradeC td.sorting_2 { + background-color: #e2e2ff; +} + +tr.even.gradeC td.sorting_3 { + background-color: #e2e2ff; +} + +tr.odd.gradeX td.sorting_1 { + background-color: #ffc4c4; +} + +tr.odd.gradeX td.sorting_2 { + background-color: #ffd1d1; +} + +tr.odd.gradeX td.sorting_3 { + background-color: #ffd1d1; +} + +tr.even.gradeX td.sorting_1 { + background-color: #ffd5d5; +} + +tr.even.gradeX td.sorting_2 { + background-color: #ffe2e2; +} + +tr.even.gradeX td.sorting_3 { + background-color: #ffe2e2; +} + +tr.odd.gradeU td.sorting_1 { + background-color: #c4c4c4; +} + +tr.odd.gradeU td.sorting_2 { + background-color: #d1d1d1; +} + +tr.odd.gradeU td.sorting_3 { + background-color: #d1d1d1; +} + +tr.even.gradeU td.sorting_1 { + background-color: #d5d5d5; +} + +tr.even.gradeU td.sorting_2 { + background-color: #e2e2e2; +} + +tr.even.gradeU td.sorting_3 { + background-color: #e2e2e2; +} + + +/* + * * Row highlighting example + * */ +.ex_highlight #example tbody tr.even:hover, #example tbody tr.even td.highlighted { + background-color: #ECFFB3; +} + +.ex_highlight #example tbody tr.odd:hover, #example tbody tr.odd td.highlighted { + background-color: #E6FF99; +} diff --git a/inventory_web/dataTables.js b/inventory_web/dataTables.js new file mode 100644 index 0000000..4e62102 --- /dev/null +++ b/inventory_web/dataTables.js @@ -0,0 +1,141 @@ +/*! DataTables 1.9.4 + * * ©2008-2013 SpryMedia Ltd - datatables.net/license + * */ +(function(X,l,n){var L=function(h){var j=function(e){function o(a,b){var c=j.defaults.columns,d=a.aoColumns.length,c=h.extend({},j.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,nTh:b?b:l.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.oDefaults:d});a.aoColumns.push(c);if(a.aoPreSearchCols[d]===n||null===a.aoPreSearchCols[d])a.aoPreSearchCols[d]=h.extend({},j.models.oSearch);else if(c=a.aoPreSearchCols[d], +c.bRegex===n&&(c.bRegex=!0),c.bSmart===n&&(c.bSmart=!0),c.bCaseInsensitive===n)c.bCaseInsensitive=!0;m(a,d,null)}function m(a,b,c){var d=a.aoColumns[b];c!==n&&null!==c&&(c.mDataProp&&!c.mData&&(c.mData=c.mDataProp),c.sType!==n&&(d.sType=c.sType,d._bAutoType=!1),h.extend(d,c),p(d,c,"sWidth","sWidthOrig"),c.iDataSort!==n&&(d.aDataSort=[c.iDataSort]),p(d,c,"aDataSort"));var i=d.mRender?Q(d.mRender):null,f=Q(d.mData);d.fnGetData=function(a,b){var c=f(a,b);return d.mRender&&b&&""!==b?i(c,b,a):c};d.fnSetData= +L(d.mData);a.oFeatures.bSort||(d.bSortable=!1);!d.bSortable||-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableNone,d.sSortingClassJUI=""):-1==h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortable,d.sSortingClassJUI=a.oClasses.sSortJUI):-1!=h.inArray("asc",d.asSorting)&&-1==h.inArray("desc",d.asSorting)?(d.sSortingClass=a.oClasses.sSortableAsc,d.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed):-1== +h.inArray("asc",d.asSorting)&&-1!=h.inArray("desc",d.asSorting)&&(d.sSortingClass=a.oClasses.sSortableDesc,d.sSortingClassJUI=a.oClasses.sSortJUIDescAllowed)}function k(a){if(!1===a.oFeatures.bAutoWidth)return!1;da(a);for(var b=0,c=a.aoColumns.length;bj[f])d(a.aoColumns.length+j[f],b[i]);else if("string"===typeof j[f]){e=0;for(w=a.aoColumns.length;eb&&a[d]--; -1!=c&&a.splice(c,1)}function S(a,b,c){var d=a.aoColumns[c];return d.fnRender({iDataRow:b,iDataColumn:c,oSettings:a,aData:a.aoData[b]._aData,mDataProp:d.mData},v(a,b,c,"display"))}function ea(a,b){var c=a.aoData[b],d;if(null===c.nTr){c.nTr=l.createElement("tr");c.nTr._DT_RowIndex=b;c._aData.DT_RowId&&(c.nTr.id=c._aData.DT_RowId);c._aData.DT_RowClass&& +(c.nTr.className=c._aData.DT_RowClass);for(var i=0,f=a.aoColumns.length;i=a.fnRecordsDisplay()?0:a.iInitDisplayStart,a.iInitDisplayStart=-1,y(a));if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++;else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!wa(a))return}else a.iDraw++;if(0!==a.aiDisplay.length){var g= +a._iDisplayStart;d=a._iDisplayEnd;a.oFeatures.bServerSide&&(g=0,d=a.aoData.length);for(;g")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=h('
')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),i,f,g,e,w,o,k,m=0;m")[0];w=d[m+ +1];if("'"==w||'"'==w){o="";for(k=2;d[m+k]!=w;)o+=d[m+k],k++;"H"==o?o=a.oClasses.sJUIHeader:"F"==o&&(o=a.oClasses.sJUIFooter);-1!=o.indexOf(".")?(w=o.split("."),e.id=w[0].substr(1,w[0].length-1),e.className=w[1]):"#"==o.charAt(0)?e.id=o.substr(1,o.length-1):e.className=o;m+=k}c.appendChild(e);c=e}else if(">"==g)c=c.parentNode;else if("l"==g&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)i=ya(a),f=1;else if("f"==g&&a.oFeatures.bFilter)i=za(a),f=1;else if("r"==g&&a.oFeatures.bProcessing)i=Aa(a),f= +1;else if("t"==g)i=Ba(a),f=1;else if("i"==g&&a.oFeatures.bInfo)i=Ca(a),f=1;else if("p"==g&&a.oFeatures.bPaginate)i=Da(a),f=1;else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;k=0;for(w=e.length;k'):""===c?'':c+' ',d=l.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="";a.aanFeatures.f||(d.id=a.sTableId+"_filter");c=h('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"""));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=this.value===""?"":this.value, +g=0,e=c.length;g=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||i.sSearch.length>b.length||1==c||0!==b.indexOf(i.sSearch)){a.aiDisplay.splice(0, +a.aiDisplay.length);la(a,1);for(b=0;b").html(c).text()); +return c.replace(/[\n\r]/g," ")}function ma(a,b,c,d){if(c)return a=b?a.split(" "):oa(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:oa(a);return RegExp(a,d?"i":"")}function Ja(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):null===a?"":"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):a}function oa(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"), +"\\$1")}function Ca(a){var b=l.createElement("div");b.className=a.oClasses.sInfo;a.aanFeatures.i||(a.aoDrawCallback.push({fn:Ka,sName:"information"}),b.id=a.sTableId+"_info");a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Ka(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),i=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),g;g=0===f?b.sInfoEmpty:b.sInfo;f!=i&&(g+=" "+b.sInfoFiltered);g+=b.sInfoPostFix;g=ja(a,g); +null!==b.fnInfoCallback&&(g=b.fnInfoCallback.call(a.oInstance,a,c,d,i,f,g));a=a.aanFeatures.i;b=0;for(c=a.length;b",c,d,i=a.aLengthMenu;if(2==i.length&&"object"===typeof i[0]&&"object"===typeof i[1]){c=0;for(d=i[0].length;c'+i[1][c]+""}else{c=0;for(d=i.length;c'+i[c]+""}b+="";i=l.createElement("div");a.aanFeatures.l|| +(i.id=a.sTableId+"_length");i.className=a.oClasses.sLength;i.innerHTML="";h('select option[value="'+a._iDisplayLength+'"]',i).attr("selected",!0);h("select",i).bind("change.DT",function(){var b=h(this).val(),i=a.aanFeatures.l;c=0;for(d=i.length;ca.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Da(a){if(a.oScroll.bInfinite)return null;var b=l.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;j.ext.oPagination[a.sPaginationType].fnInit(a, +b,function(a){y(a);x(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,function(a){y(a);x(a)})},sName:"pagination"});return b}function qa(a,b){var c=a._iDisplayStart;if("number"===typeof b)a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay()&&(a._iDisplayStart=0);else if("first"==b)a._iDisplayStart=0;else if("previous"==b)a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-a._iDisplayLength:0,0>a._iDisplayStart&&(a._iDisplayStart= +0);else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLengthh(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(h(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else""!==a.oScroll.sXInner?a.nTable.style.width= +q(a.oScroll.sXInner):i==h(d).width()&&h(d).height()i-a.oScroll.iBarWidth&&(a.nTable.style.width=q(i))):a.nTable.style.width=q(i);i=h(a.nTable).outerWidth();C(s,e);C(function(a){p.push(q(h(a).width()))},e);C(function(a,b){a.style.width=p[b]},g);h(e).height(0);null!==a.nTFoot&&(C(s,j),C(function(a){n.push(q(h(a).width()))},j),C(function(a,b){a.style.width=n[b]},o),h(j).height(0));C(function(a,b){a.innerHTML= +"";a.style.width=p[b]},e);null!==a.nTFoot&&C(function(a,b){a.innerHTML="";a.style.width=n[b]},j);if(h(a.nTable).outerWidth()d.offsetHeight||"scroll"==h(d).css("overflow-y")?i+a.oScroll.iBarWidth:i;if(r&&(d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(g-a.oScroll.iBarWidth);d.style.width=q(g);a.nScrollHead.style.width=q(g);null!==a.nTFoot&&(a.nScrollFoot.style.width=q(g));""===a.oScroll.sX?D(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."): +""!==a.oScroll.sXInner&&D(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else d.style.width=q("100%"),a.nScrollHead.style.width=q("100%"),null!==a.nTFoot&&(a.nScrollFoot.style.width=q("100%"));""===a.oScroll.sY&&r&&(d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth));""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=q(a.oScroll.sY),r=""!==a.oScroll.sX&&a.nTable.offsetWidth> +d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeightd.clientHeight||"scroll"==h(d).css("overflow-y");b.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px";null!==a.nTFoot&&(R.style.width=q(r),l.style.width=q(r),l.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px");h(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function C(a,b,c){for(var d= +0,i=0,f=b.length,g,e;itd",b));j=N(a,f);for(f=d=0;fc)return null;if(null===a.aoData[c].nTr){var d=l.createElement("td");d.innerHTML=v(a,c,b,"");return d}return J(a,c)[b]}function Pa(a,b){for(var c=-1,d=-1,i=0;i/g,"");e.length>c&&(c=e.length,d=i)}return d}function q(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1); +return 48>b||57/g,""),i=q[c].nTh,i.removeAttribute("aria-sort"),i.removeAttribute("aria-label"),q[c].bSortable?0d&&d++;f=RegExp(f+"[123]");var o;b=0;for(c=a.length;b
')[0];l.body.appendChild(b);a.oBrowser.bScrollOversize= +100===h("#DT_BrowserTest",b)[0].offsetWidth?!0:!1;l.body.removeChild(b)}function Va(a){return function(){var b=[s(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var U=/\[.*?\]$/,Wa=X.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,e=[],f=h.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===b&&null!==d&&(d=Wa(d)),e.push((f?"":'"'+c+'":')+d);return(f? +"[":"{")+e+(f?"]":"}")};this.$=function(a,b){var c,d,e=[],f;d=s(this[j.ext.iApiIndex]);var g=d.aoData,o=d.aiDisplay,k=d.aiDisplayMaster;b||(b={});b=h.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page){c=d._iDisplayStart;for(d=d.fnDisplayEnd();c=d.fnRecordsDisplay()&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart&&(d._iDisplayStart=0));if(c===n||c)y(d),x(d);return g};this.fnDestroy=function(a){var b=s(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,i,f,a=a===n?!1:a;b.bDestroying=!0;A(b,"aoDestroyCallback","destroy",[b]);if(!a){i=0;for(f=b.aoColumns.length;itr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(h(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(h(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);h(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];P(b);h(T(b)).removeClass(b.asStripeClasses.join(" "));h("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc, +b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(h("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),h("th, td",b.nTHead).each(function(){var a=h("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();h(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):a||c.appendChild(b.nTable);i=0;for(f=b.aoData.length;i=t(d);if(!m)for(e=a;et<"F"ip>')):h.extend(g.oClasses,j.ext.oStdClasses);h(this).addClass(g.oClasses.sTable);if(""!==g.oScroll.sX||""!==g.oScroll.sY)g.oScroll.iBarWidth=Qa();g.iInitDisplayStart===n&&(g.iInitDisplayStart=e.iDisplayStart, +g._iDisplayStart=e.iDisplayStart);e.bStateSave&&(g.oFeatures.bStateSave=!0,Sa(g,e),z(g,"aoDrawCallback",ra,"state_save"));null!==e.iDeferLoading&&(g.bDeferLoading=!0,a=h.isArray(e.iDeferLoading),g._iRecordsDisplay=a?e.iDeferLoading[0]:e.iDeferLoading,g._iRecordsTotal=a?e.iDeferLoading[1]:e.iDeferLoading);null!==e.aaData&&(f=!0);""!==e.oLanguage.sUrl?(g.oLanguage.sUrl=e.oLanguage.sUrl,h.getJSON(g.oLanguage.sUrl,null,function(a){pa(a);h.extend(true,g.oLanguage,e.oLanguage,a);ba(g)}),i=!0):h.extend(!0, +g.oLanguage,e.oLanguage);null===e.asStripeClasses&&(g.asStripeClasses=[g.oClasses.sStripeOdd,g.oClasses.sStripeEven]);b=g.asStripeClasses.length;g.asDestroyStripes=[];if(b){c=!1;d=h(this).children("tbody").children("tr:lt("+b+")");for(a=0;a=g.aoColumns.length&&(g.aaSorting[a][0]=0);var k=g.aoColumns[g.aaSorting[a][0]];g.aaSorting[a][2]===n&&(g.aaSorting[a][2]=0);e.aaSorting===n&&g.saved_aaSorting===n&&(g.aaSorting[a][1]= +k.asSorting[0]);c=0;for(d=k.asSorting.length;c=parseInt(n,10)};j.fnIsDataTable=function(e){for(var h=j.settings,m=0;me)return e;for(var h=e+"",e=h.split(""),j="",h=h.length,k=0;k'+k.sPrevious+''+k.sNext+"":'';h(j).append(k);var l=h("a",j), +k=l[0],l=l[1];e.oApi._fnBindAction(k,{action:"previous"},n);e.oApi._fnBindAction(l,{action:"next"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",l.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),l.setAttribute("aria-controls",e.sTableId))},fnUpdate:function(e){if(e.aanFeatures.p)for(var h=e.oClasses,j=e.aanFeatures.p,k,l=0,n=j.length;l'+k.sFirst+''+k.sPrevious+''+k.sNext+''+k.sLast+"");var t=h("a",j),k=t[0],l=t[1],r=t[2],t=t[3];e.oApi._fnBindAction(k,{action:"first"},n);e.oApi._fnBindAction(l,{action:"previous"},n);e.oApi._fnBindAction(r,{action:"next"},n);e.oApi._fnBindAction(t,{action:"last"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",l.id=e.sTableId+"_previous",r.id=e.sTableId+"_next",t.id=e.sTableId+"_last")}, +fnUpdate:function(e,o){if(e.aanFeatures.p){var m=j.ext.oPagination.iFullNumbersShowPages,k=Math.floor(m/2),l=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),n=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,t="",r,B=e.oClasses,u,M=e.aanFeatures.p,L=function(h){e.oApi._fnBindAction(this,{page:h+r-1},function(h){e.oApi._fnPageChange(e,h.data.page);o(e);h.preventDefault()})};-1===e._iDisplayLength?n=k=r=1:l=l-k?(r=l-m+1,k=l):(r=n-Math.ceil(m/2)+1,k=r+m-1);for(m=r;m<=k;m++)t+= +n!==m?''+e.fnFormatNumber(m)+"":''+e.fnFormatNumber(m)+"";m=0;for(k=M.length;mh?1:0},"string-desc":function(e,h){return eh?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(e,h){return eh?1:0},"html-desc":function(e,h){return e< +h?1:e>h?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");return e},"date-asc":function(e,h){return e-h},"date-desc":function(e,h){return h-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,h){return e-h},"numeric-desc":function(e,h){return h-e}});h.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==typeof e)return null;var h,j=!1;h=e.charAt(0);if(-1=="0123456789-".indexOf(h))return null; +for(var k=1;k")?"html":null}]);h.fn.DataTable=j;h.fn.dataTable=j;h.fn.dataTableSettings=j.settings;h.fn.dataTableExt=j.ext};"function"===typeof define&&define.amd?define(["jquery"],L):jQuery&&!jQuery.fn.dataTable&& +L(jQuery)})(window,document); diff --git a/inventory_web/edit_item.php b/inventory_web/edit_item.php new file mode 100644 index 0000000..0975546 --- /dev/null +++ b/inventory_web/edit_item.php @@ -0,0 +1,108 @@ + + + + + diff --git a/inventory_web/images/background_grey.jpg b/inventory_web/images/background_grey.jpg new file mode 100644 index 0000000..5d28ce8 Binary files /dev/null and b/inventory_web/images/background_grey.jpg differ diff --git a/inventory_web/images/cal.gif b/inventory_web/images/cal.gif new file mode 100644 index 0000000..8526cf5 Binary files /dev/null and b/inventory_web/images/cal.gif differ diff --git a/inventory_web/images/calendar_background.jpg b/inventory_web/images/calendar_background.jpg new file mode 100644 index 0000000..dcb8eea Binary files /dev/null and b/inventory_web/images/calendar_background.jpg differ diff --git a/inventory_web/jquery.ui.selectmenu.css b/inventory_web/jquery.ui.selectmenu.css new file mode 100644 index 0000000..d63438b --- /dev/null +++ b/inventory_web/jquery.ui.selectmenu.css @@ -0,0 +1,27 @@ +/* Selectmenu + * ----------------------------------*/ +.ui-selectmenu { display: block; display: inline-block; position: relative; height: 2.2em; vertical-align: middle; text-decoration: none; overflow: hidden; zoom: 1; } +.ui-selectmenu-icon { position:absolute; right:6px; margin-top:-8px; top: 50%; } +.ui-selectmenu-menu { padding:0; margin:0; position:absolute; top: 0; display: none; z-index: 1005;} /* z-index: 1005 to make selectmenu work with dialog */ +.ui-selectmenu-menu ul { padding:0; margin:0; list-style:none; position: relative; overflow: auto; overflow-y: auto ; overflow-x: hidden; -webkit-overflow-scrolling: touch;} +.ui-selectmenu-open { display: block; } +ul.ui-selectmenu-menu-popup { margin-top: -1px; } +.ui-selectmenu-menu li { padding:0; margin:0; display: block; border-top: 1px dotted transparent; border-bottom: 1px dotted transparent; border-right-width: 0 !important; border-left-width: 0 !important; } +.ui-selectmenu-menu li a,.ui-selectmenu-status { line-height: 1.4em; display: block; padding: .405em 2.1em .405em 1em; outline:none; text-decoration:none; } +.ui-selectmenu-menu li.ui-state-disabled a, .ui-state-disabled { cursor: default; } +.ui-selectmenu-menu li.ui-selectmenu-hasIcon a, +.ui-selectmenu-hasIcon .ui-selectmenu-status { padding-left: 20px; position: relative; margin-left: 5px; } +.ui-selectmenu-menu li .ui-icon, .ui-selectmenu-status .ui-icon { position: absolute; top: 1em; margin-top: -8px; left: 0; } +.ui-selectmenu-status { line-height: 1.4em; } +.ui-selectmenu-menu li span,.ui-selectmenu-status span { display:block; margin-bottom: .2em; } +.ui-selectmenu-menu li .ui-selectmenu-item-header { font-weight: bold; } +.ui-selectmenu-menu li .ui-selectmenu-item-footer { opacity: .8; } +/* for optgroups */ +.ui-selectmenu-menu .ui-selectmenu-group { font-size: 1em; } +.ui-selectmenu-menu .ui-selectmenu-group .ui-selectmenu-group-label { line-height: 1.4em; display:block; padding: .6em .5em 0; font-weight: bold; } +.ui-selectmenu-menu .ui-selectmenu-group ul { margin: 0; padding: 0; } +/* IE6 workaround (dotted transparent borders) */ +* html .ui-selectmenu-menu li { border-color: pink; filter:chroma(color=pink); width:100%; } +* * html .ui-selectmenu-menu li a { position: relative } +*/* IE7 workaround (opacity disabled) */ +*+html .ui-state-disabled, *+html .ui-state-disabled a { color: silver; } diff --git a/inventory_web/lab_inventory.php b/inventory_web/lab_inventory.php new file mode 100644 index 0000000..85b818b --- /dev/null +++ b/inventory_web/lab_inventory.php @@ -0,0 +1,59 @@ + + + + + + + diff --git a/inventory_web/login_page.php b/inventory_web/login_page.php new file mode 100644 index 0000000..e3cd846 --- /dev/null +++ b/inventory_web/login_page.php @@ -0,0 +1,109 @@ +Sorry, username and password combination not recognized."; + if($_GET['request']=='app') { + echo "failure"; + $try_login=false; + } else { + $try_login = true; + } + } + +} +if($try_login) { + echo ""; + echo ' + Jaiswal Lab Inventory Tracker + + + + + + + +'; + echo ''; + echo ""; + echo "
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo "
Username:
Password:
"; + echo "
"; + echo ""; +} + + + + + +?> diff --git a/inventory_web/note.php b/inventory_web/note.php new file mode 100644 index 0000000..304db1f --- /dev/null +++ b/inventory_web/note.php @@ -0,0 +1,68 @@ + + + + + + + + +
+Add a note to an existing inventory item: + + + + + + + + +
Item ID:
Name:
Note:
+ +
+ + diff --git a/inventory_web/print_qr.php b/inventory_web/print_qr.php new file mode 100644 index 0000000..5cd430d --- /dev/null +++ b/inventory_web/print_qr.php @@ -0,0 +1,73 @@ + + + + +'; +?> diff --git a/inventory_web/search_results.php b/inventory_web/search_results.php new file mode 100644 index 0000000..897babd --- /dev/null +++ b/inventory_web/search_results.php @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + The following results match your query: "; + echo "\n"; + echo "\n"; + echo ""; + while($row != null) { + echo ""; + $row = mysql_fetch_row($results); + + } + echo ""; + +?> + +Back to Search + + + + + + + diff --git a/inventory_web/style.css b/inventory_web/style.css new file mode 100644 index 0000000..fce415a --- /dev/null +++ b/inventory_web/style.css @@ -0,0 +1,78 @@ +body{ + background-color:EBFFFA; +} + +.optional{ + border:none; +} + +.required{ + background-color:FFAE00; + color:000000; + font-weight:900; +} + +.header{ + border:none; + background-color:A6A6A6; + box-shadow: inset 0 3px 3px 0 rgba(255, 255, 255, 0.32); + font-size:15; + white-space:nowrap; +} + +.spacer { + border:none; +} + +tr.no-border-row td { + border:none; +} + +td { + height:50; + border-radius:5px; + vertical-align:middle; +} + +#logindiv { + width:500px; + background-color:919191; + margin:0 auto; + -moz-border-radius: 15px; + border-radius: 15px; +} + +textarea.rounded { + border: 1px solid #ccc; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + -moz-box-shadow: 2px 2px 3px #666; + -webkit-box-shadow: 2px 2px 3px #666; + box-shadow: 2px 2px 3px #666; + font-size: 20px; + padding: 1px 1px; + outline: 1; + -webkit-appearance: none; +} + +input.rounded { + border: 1px solid #ccc; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + border-radius: 10px; + -moz-box-shadow: 2px 2px 3px #666; + -webkit-box-shadow: 2px 2px 3px #666; + box-shadow: 2px 2px 3px #666; + font-size: 20px; + padding: 4px 7px; + outline: 0; + -webkit-appearance: none; +} + +input.rounded:focus { + border-color: #339933; +} + +.required_input { +} diff --git a/inventory_web/temp_search.php b/inventory_web/temp_search.php new file mode 100644 index 0000000..bc0a5d3 --- /dev/null +++ b/inventory_web/temp_search.php @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + +"; + + + echo "
TYPEQUANTITYPRICELINEEXPIRATION DATESPECIESCOLLECTION DATETIMESTAMP
$row[1]$row[2]$row[3]$row[4]$row[5]$row[6]$row[7]$row[8] +
+
+
+
+
+
"; + echo ""; + echo ""; + while($row != null) { + echo ""; + for($i = 1; $i < sizeOf($row); $i++) { + echo ""; + } + echo ""; + echo ""; + $row = mysql_fetch_row($results); + } + echo ""; + echo "
TypeQuantityPriceLineExpiration DateSpeciesCollection DateTimestamp
" . $row[$i] . "See Item
"; + + +} +#search each database for the input parameters +if($_POST['category'] == "all") { + +if(isset($_GET['search'])) $search_param = $_GET['search']; +if(isset($_POST['search'])) $search_param = $_POST['search']; +$some_results = false; +$item_ids; + +mysql_connect("floret.cgrb.oregonstate.edu","lab-inventory-user","lab-inventory-user_pw"); +mysql_select_db("lab_inventory"); +$date_search = ""; +if(isset($_POST['from_date']) && isset($_POST['to_date']) && $_POST['from_date']!="" && $_POST['to_date']!="") { + $date_search = "(time_stamp between '" . $_POST['from_date'] . " 00:00:00' and '" . $_POST['to_date'] . " 23:59:59')"; +} + +#if no search query was entered, then search only by date +$match_against = ""; +if($search_param != "") { + $match_against = "(match(type,line,species) against ('$search_param'))"; +} + +$and = ""; +if($date_search!= "" && $match_against != "") $and = "AND"; + +$query = "select * from item where $match_against $and $date_search"; +$results = mysql_query($query); +$row = mysql_fetch_row($results); +if($row != null) { + $some_results = true; + echo "

Your query matched the following items:

"; + + + echo ""; + echo ""; + echo ""; + while($row != null) { + echo ""; + for($i = 1; $i < sizeOf($row); $i++) { + echo ""; + } + echo ""; + echo ""; + $row = mysql_fetch_row($results); + } + echo ""; + echo "
TypeQuantityPriceLineExpiration DateSpeciesCollection DateTimestamp
" . $row[$i] . "See Item
"; +} + +$query = "select * from notes where match(note,curator) against('$search_param')"; +$results = mysql_query($query); +$row = mysql_fetch_row($results); + +if($row != null) { + $some_results = true; + echo "
Your query matched the following notes:
"; + echo ""; + echo ""; + + while($row != null) { + echo ""; + for($i = 1; $i < sizeOf($row); $i++) { + echo ""; + } + echo ""; + echo ""; + $row = mysql_fetch_row($results); + } + echo "

Note

Curator

Date

" . $row[$i] . "See Item
"; +} + +$query = "select * from meta where match(msds_link,warranty_info,service,manufacturer) against('$search_param')"; +$results = mysql_query($query); +$row = mysql_fetch_row($results); +if($row != null) { + $some_results = true; + echo "
Your query matched the following meta information:
"; + + echo ""; + echo ""; + echo ""; + while($row != null) { + for($i = 1; $i < sizeOf($row); $i++) { + echo $row[$i] . "\t"; + } + echo "See Item"; + echo "
"; + $row = mysql_fetch_row($results); + } + echo ""; + echo "

MSDS Link

Warranty Info

Service

Manufacturer

"; +} +if($some_results==false) { + echo "

Sorry, your query found no results!

"; + +} +} else { + $table; + $param = $_POST['search']; + $additive = ""; + + $category = $_POST['category']; + $curator_categories = array("name","email"); + $location_categories = array("building/room","freezer","shelf","cupboard"); + $item_categories = array("type","quantity","price","collection date","expiration date","species","line"); + if(in_array($category,$item_categories)) { + $table = "item"; + if(isset($_POST['from_date']) && isset($_POST['to_date']) && $_POST['from_date']!="" && $_POST['to_date']!="") { + $additive = "&from_time=" . $_POST['from_date'] . " 00:00:00&to_time=" . $_POST['to_date'] . " 24:59:59"; + } + } elseif(in_array($category,$location_categories)) { + $table = "location"; + } elseif(in_array($category,$curator_categories)) { + $table = "curator"; + } + $url = "search_results.php?table=$table&category=$category¶m=$param" . $additive; + header("Location: $url"); + + +} +?> diff --git a/inventory_web/tmp-images/.gitignore b/inventory_web/tmp-images/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/inventory_web/to_database.php b/inventory_web/to_database.php new file mode 100644 index 0000000..2f9548b --- /dev/null +++ b/inventory_web/to_database.php @@ -0,0 +1,217 @@ + + + + + + + + Item Created + + + + + + + + + + + + + +Submission successful.
Print and tag the item with a qr code:"; + +$rand = FLOOR(10000*RAND()); +echo " "; +echo ""; + +exec('cd;qrencode -o /data/www/Jaiswal-Lab/inventory/tmp-images/qr_code' . $rand . ".png '$qr_code'"); + + + +} else if($_GET['type'] == "note") { + + $database = "lab_inventory"; + $user = "lab-inventory-user"; + $password = "lab-inventory-user_pw"; + $host = "floret.cgrb.oregonstate.local:3306"; + + + $connection=mysql_connect($host,$user,$password); + + mysql_select_db($database); + + $name = $_POST['note_name']; + $note = $_POST['note']; + $id = $_POST['item_id']; + + if($id != null) { + $query = "insert into notes (id,note,curator,date) values ($id,'$note','$name',$date)"; + mysql_query($query); + echo "Thank you for your note submission. Submission was successful, and future queries of this item will have your note attached."; + } else { + echo "Sorry, that is not a valid QR Code. Please rescan the item or double check the code you entered."; + } + +} + + +?> + + + + + + diff --git a/inventory_web/view_notes.php b/inventory_web/view_notes.php new file mode 100644 index 0000000..67433f3 --- /dev/null +++ b/inventory_web/view_notes.php @@ -0,0 +1,97 @@ + + + +"; +echo ""; +while($column_row != null) { + echo "$column_row[0]"; + $column_row = mysql_fetch_row($column_results); +} +echo ""; + +while($row != null) { + + echo ""; + for($i = 1; $i < sizeOf($row);$i ++) { + echo "$row[$i]"; + } + echo ""; + + $row = mysql_fetch_row($results); + +} +echo ""; + + + + + + +?>