database zonder mysql alleen met php
Ik ben begonnen met een script waardoor je zonder een echte mysql database (of een andere) toch een database kan gebruiken op je site... graag jullie mening over dit.. of dit handig is of juist helemaal niet.. functies die erin komen (kheb nu nog alleen de 1e 3): deleterow($rowname,$tablename) delete rij ->> rijnaam,tabelnaam deletecol($colname,$tablename) delete kolom ->> kolomnaam,tabelnaam deletetable($tablename) delete tabel ->> tabelnaam deletecontent($tablename,$rowname,$colname,$newcontent) delete inhoud van een cel ->> tabelnaam,rijnaam,kolomnaam,nieuwe inhoud(optioneel) createtable($tablename,$a_row,$a_col,$rowname,$colname) maak nieuwe tabel ->> tabelnaam,aantal rijen(minimaal 1),aantal kolommen(minimaal 1),rijnamen(bij meer dan 1 rij namen in een array),kolomnamen(bij meer dan 1 kolom namen in een array) createrow($rowname,$a_row,$celcontent) maak nieuwe rij ->> rijnaam(bij meerdere in een array),aantal nieuwe rijen(minimaal 1),celinhoud(bij meer dan 1 kolom de inhoud in een array) createcol($colname,$a_col,$celcontent) maak nieuwe kolom ->> kolomnaam(bij meerdere in een array),aantal nieuwe kolommen(minimaal 1),celinhoud(bij meer dan 1 rij de inhoud in een array) renametable($oldname,$newname) rename tabel ->> oude naam,nieuwe naam renamerow($oldname,$newname,$tablename) rename rij ->> oude naam,nieuwe naam,tabelnaam renamecol($oldname,$newname,$tablename) rename kolom ->> oude naam,nieuwe naam, tabelnaam add($tablename,$rowname,$colname,$celcontent) voeg inhoud toe aan een cel ->> tabelnaam,rijnaam,kolomnaam,celinhoud om deze functies aan te roepen moet je config.php includen. om inhoud van enkele cellen weer te geven moet je dat oproepen met $cel[$tabelnaam][$rijnaam][$kolomnaam] voor het overzicht en om makkelijk dingen te kunnen veranderen enzo heb ik ook een show.php gemaakt.. er moeten nog de functies delete row in en delete col... ook nog een beveiliging, maar ik wil eerst alles afhebben voordat ik me daarover druk ga maken. bij het voorbeeld kan je de tabellen allemaal aanpassen enzo je kan dus ff checken of de info er ook in blijf staan enzo.. hou het een beetje netjes zodat iedereen het graag eens wil proberen dat ook kan doen :)
files:
--config.php--
<?
//bestand openen
$db = 'database.txt';
$fopenr = fopen($db,"r");
$database = fread ($fopenr, filesize ($db));
//tabellen scheiden
$dbt = explode('#',$database);
//tellen hoeveel tabellen er zijn
$dbta = count($dbt);
//loop voor de tabellen
for($a = '0'; $a < $dbta; $a++){
$dbr = explode('|',$dbt[$a]);
$dbra = count($dbr);
//naam van tabel $a
$name_table[$a] = $dbr['0'];
//naam van de rijen in de eerste tabel
$name_cola = explode(',',$dbr['1']);
$name_colaa = count($name_cola);
for($aa='0';$aa < $name_colaa; $aa++){
$name_col[$a][$aa] = $name_cola[$aa];
}
//naam voor het opslaan van inhoud van cellen
$table_n = $dbr['0'];
//loop voor rijen
for($b='2', $ba='0'; $b < $dbra; $b++, $ba++){
$dbc = explode('^',$dbr[$b]);
$dbca = count($dbc);
//naam voor de rij
$name_row[$a][$ba] = $dbc['0'];
//naam voor het opslaan van de inhoud van de cellen
$row_n = $dbc['0'];
//loop voor de cellen
for($c = '1', $ca = '0'; $c < $dbca; $c++, $ca++){
$col_n = $name_col[$a][$ca];
//data opslaan
$cel[$table_n][$row_n][$col_n] = $dbc[$c];
}
}
}
//delete rij ->> rijnaam,tabelnaam
function deleterow($rowname,$tablename){
$db = 'database.txt';
$fopenr = fopen($db,"r");
$database = fread ($fopenr, filesize ($db));
$dbt = explode('#',$database);
$dbta = count($dbt);
for($a='0';$a<$dbta ;$a++){
$dbr = explode('|',$dbt[$a]);
if($dbr['0'] !== $tablename){
$data .= $dbt[$a];
if($a<($dbta-'1')){
$data .= '#';
}
}
else{
$data .= $dbr['0'].'|'.$dbr['1'].'|';
$dbra = count($dbr);
for($b='2';$b<$dbra;$b++){
$dbc = explode('^',$dbr[$b]);
$dbrn = $dbc['0'];
if($dbrn == $rowname){
$nr = $b;
}
}
for($c='2';$c<$dbra;$c++){
if($c !== $nr){
$data .= $dbr[$c];
if(($dbra-'1' == $nr)&&($c==($nr-'1'))){}
else{
if($c < ($dbra-'1')){
$data .= '|';
}
}
}
}
if($a<($dbta-'1')){
$data .= '#';
}
}
}
$fopenw = fopen($db, "w+");
fwrite($fopenw, $data);
fclose($fopenw);
}
//delete kolom ->> kolomnaam,tabelnaam
function deletecol($colname,$tablename){
$db = 'database.txt';
$fopenr = fopen($db,"r");
$database = fread ($fopenr, filesize ($db));
$dbt = explode('#',$database);
$dbta = count($dbt);
for($a='0';$a<$dbta ;$a++){
$dbr = explode('|',$dbt[$a]);
if($dbr['0'] !== $tablename){
$data .= $dbt[$a];
if($a<($dbta-'1')){
$data .= '#';
}
}
else{
$data .= $dbr['0'].'|';
$dbra = count($dbr);
$dbcn = explode(',',$dbr['1']);
$dbca = count($dbcn);
for($b='0';$b<$dbca;$b++){
if($dbcn[$b] == $colname){
$nr = $b;
}
}
for($c='0';$c<$dbca;$c++){
if($c !== $nr){
$data .= $dbcn[$c];
if(($dbca-'1' == $nr)&&($c==($nr-'1'))){}
else{
if($c < ($dbca-'1')){
$data .= ',';
}
}
}
}
$data .= '|';
for($d='2';$d<$dbra;$d++){
$col = explode('^',$dbr[$d]);
$data .= $col['0'].'^';
for($e='0';$e<$dbca;$e++){
if($e!==$nr){
$data .= $col[($e+'1')];
if(($dbca-'1' == $nr)&&($e==($nr-'1'))){}
else{
if($e<($dbca-'1')){
$data.='^';
}
}
}
}
if($d<($dbra-'1')){
$data .= '|';
}
}
if($a<($dbta-'1')){
$data.='#';
}
}
}
$fopenw = fopen($db, "w+");
fwrite($fopenw, $data);
fclose($fopenw);
}
//delete tabel ->> tabelnaam
function deletetable($tablename){
$db = 'database.txt';
$fopenr = fopen($db,"r");
$database = fread ($fopenr, filesize ($db));
$dbt = explode('#',$database);
$dbta = count($dbt);
for($aa='0';$aa < $dbta;$aa++){
$dbr = explode('|',$dbt[$aa]);
if($tablename == $dbr['0']){
$deletetable[$aa] = 'yes';
}
}
for($a='0';$a<$dbta;$a++){
$dbr = explode('|',$dbt[$a]);
if($deletetable[$a] !== 'yes'){
$dataa .= $dbt[$a];
if($a < ($dbta-'1')){
if(($a == ($dbta-'2'))&&($deletetable[($a+'1')] == 'yes')){
}
else{
$dataa .= '#';
}
}}
}
$fopenschrijven = fopen($db, "w+");
fwrite($fopenschrijven, $dataa);
fclose($fopenschrijven);
}
//delete inhoud van een cel ->> tabelnaam,rijnaam,kolomnaam,nieuwe inhoud(optioneel)
function deletecontent($tablename,$rowname,$colname,$newcontent){
}
//maak nieuwe tabel ->> tabelnaam,aantal rijen(minimaal 1),aantal kolommen(minimaal 1),rijnamen(bij meer dan 1 rij namen in een array),kolomnamen(bij meer dan 1 kolom namen in een array)
function createtable($tablename,$a_row,$a_col,$rowname,$colname){
}
//maak nieuwe rij ->> rijnaam(bij meerdere in een array),aantal nieuwe rijen(minimaal 1),celinhoud(bij meer dan 1 kolom de inhoud in een array)
function createrow($rowname,$a_row,$celcontent){
}
//maak nieuwe kolom ->> kolomnaam(bij meerdere in een array),aantal nieuwe kolommen(minimaal 1),celinhoud(bij meer dan 1 rij de inhoud in een array)
function createcol($colname,$a_col,$celcontent){
}
//rename tabel ->> oude naam,nieuwe naam
function renametable($oldname,$newname){
}
//rename rij ->> oude naam,nieuwe naam,tabelnaam
function renamerow($oldname,$newname,$tablename){
}
//rename kolom ->> oude naam,nieuwe naam, tabelnaam
function renamecol($oldname,$newname,$tablename){
}
//voeg inhoud toe aan een cel ->> tabelnaam,rijnaam,kolomnaam,celinhoud
function add($tablename,$rowname,$colname,$celcontent){
}
?>
--show.php--
[code]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="formulier" action="change.php" method="post" accept-charset="iso-8859-1">
<?php
include('config.php');
deletecol('unnamed col 1','dafs');
for($i='0';$i<$dbta;$i++){
//tabellen aanmaken
echo "\n".'name table = <input type="text" size="15" value="'.$name_table[$i].'" name="table['.$i.']"> ';
if($dbta>'1'){
echo '<input type="checkbox" name="deletetable['.$i.']" value="yes"> delete this table';}
echo '<br><br><table>';
$rowa = count($name_row[$i]);
$col_a = count($name_col[$i]);
//kolom namen in tabel
echo "\n".'<tr><td></td>';
for($l='0';$l<$col_a;$l++){
echo "\n".'<td><b><input type="text" size="32" value="'.$name_col[$i][$l].'" name="col['.$i.']['.$l.']"></b></td>';
}
echo "\n".'</tr>';
for($j='0';$j<$rowa;$j++){
//rijnamen in tabel
echo '<tr>';
$n_row = $name_row[$i][$j];
echo "\n".'<td><b><input type="text" size="15" value="'.$n_row.'" name="row['.$i.']['.$j.']"><b></td>';
//inhoud van de cellen
for($k='0';$k<$col_a;$k++){
$n_table = $name_table[$i];
$n_col = $name_col[$i][$k];
echo "\n".'<td><textarea rows="4" cols="25" name="cel['.$i.']['.$j.']['.$k.']">';
echo $cel[$n_table][$n_row][$n_col].'</textarea></td>';
}
echo "\n</tr>";
}
//tabellen afsluiten
echo "\n".'</table><br>'
?>
<input type="checkbox" name="new[<? echo $i; ?>]" value="yes"> add
<select name="amount[<? echo $i; ?>]"><option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<select name="thing[<? echo $i; ?>]"><option value="row">row(s)</option><option value="col">col(s)</option></select>
<br>
<?php
echo '<br><hr>';
}
?>
<input type="checkbox" name="newtable" value="yes"> add new table --> table name: <input type="text" size="15" name="newtable_n"> with
<select name="newtable_r"><option value="1" selected>1 row</option>
<option value="2">2 rows</option>
<option value="3">3 rows</option>
<option value="4">4 rows</option>
<option value="5">5 rows</option>
<option value="6">6 rows</option>
<option value="7">7 rows</option>
<option value="8">8 rows</option>
<option value="9">9 rows</option>
<option value="10">10 rows</option>
</select> and
<select name="newtable_c"><option value="1" selected>1 col</option>
<option value="2">2 cols</option>
<option value="3">3 cols</option>
<option value="4">4 cols</option>
<option value="5">5 cols</option>
<option value="6">6 cols</option>
<option value="7">7 cols</option>
<option value="8">8 cols</option>
<option value="9">9 cols</option>
<option value="10">10 cols</option>
</select><br>
<input type="submit" value="save changes">
</form>
</body>
</html>[/code]
--change.php--
<?
$database = 'database.txt';
$table_a = count($table);
for($a='0';$a<$table_a;$a++){
if ($deletetable[$a] !== 'yes'){
$data .= $table[$a].'|';
$col_a = count($col[$a]);
for($b='0';$b<$col_a;$b++){
$data .= $col[$a][$b];
if($b < ($col_a-'1')){
$data .= ',';}
else{
//kolom toevoegen
if(($new[$a] == 'yes')&&($thing[$a] == 'col')){
for($w = '1';$w<=$amount[$a];$w++){
$data .= ',unnamed col '.$w;}}
$data .= '|';}
}
$row_a = count($row[$a]);
$row_aa = $row_a;
//rijentoevoegen
if(($new[$a] == 'yes')&&($thing[$a] == 'row')){
$row_aa = $row_a;
$row_a = ($row_a+$amount[$a]);
}
for($c='0'; $c < $row_a ; $c++){
if($c >= $row_aa){
$data .= 'unnamed row '.($c+'1');}
else{
$data .= $row[$a][$c].'^';
}
for($d='0' ; $d < $col_a ; $d++ ){
//rijentoevoegen
if($c < $row_aa){
$data .= $cel[$a][$c][$d];
}
if($d < ($col_a-'1')){
$data .= '^';}
else{
//kolom toevoegen
if(($new[$a] == 'yes')&&($thing[$a] == 'col')){
for($w = '1';$w<=$amount[$a];$w++){
$data .= '^';}}
if($c < ($row_a-'1')){
$data .= '|';}}
}
}
if($a < ($table_a-'1')) {
if(($a == ($table_a-'2'))&&($deletetable[($a+'1')] == 'yes')){
}else{
$data .= '#';}}
}}
//nieuwe tabel
if($newtable == 'yes'){
$data .= '#'.$newtable_n.'|';
for($an='1';$an<=$newtable_c;$an++){
$data .= 'unnamed col '.$an;
if($an<$newtable_c){
$data .= ',';}
}
for($bn='1';$bn<=$newtable_r;$bn++){
$data .= '|unnamed row '.$bn.'^';
for($cn='1';$cn<$newtable_r;$cn++){
$data .= '^';}
}}
$fopenw = fopen($database, "w+");
fwrite($fopenw, $data);
fclose($fopenw);
echo "<SCRIPT LANGUAGE=\"javascript\" TYPE=\"text/javascript\">window.location=\"show.php\"</SCRIPT>\n";
?>
--database.txt (moet chmod 777 hebben)--
unnamed table|unnamed col 1|unnamed row 1^
Reacties
0