Dit is wat ik gebruik:
De tabel
Maak een tabel aan die er zo uit ziet:
Code:
CREATE TABLE `ledenlijst` (
`ledenlijst_id` int(11) NOT NULL auto_increment,
`achternaam` varchar(40) NOT NULL default '',
`voornaam` varchar(40) NOT NULL default '',
`functie` varchar(5) NOT NULL default '',
`lidnummer` varchar(13) NOT NULL default '',
`adres` varchar(80) NOT NULL default '',
`geboortedatum` varchar(10) NOT NULL default '',
`verjaardag` varchar(4) NOT NULL default '',
`mv` char(1) NOT NULL default '',
`telefoon` varchar(15) NOT NULL default '',
`telefoon2` varchar(15) NOT NULL default '',
PRIMARY KEY (`ledenlijst_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Een record ziet er dan zo uit:
Code:
INSERT INTO `ledenlijst` (`ledenlijst_id`, `achternaam`, `voornaam`, `functie`, `lidnummer`, `adres`, `geboortedatum`, `verjaardag`, `mv`, `telefoon`, `telefoon2`) VALUES
(1, 'Janssens', 'JAN', 'G', '1989010101111', 'Janssensstraat 1\n1000 Brussel', '1989-01-01', '', 'M', '(016) 01 23 45', '');
De CSVExporteer via de ledenadministratie een CSV ("Excel")-bestand dat als volgt is opgebouwd:
Code:
naam;Voornaam;Functies;Lidnummer;Adres;Geboortedatum;Geslacht;Telefoon;Gsm;
"Janssens";"Jan";"G";"1989010101111";"Janssensstraat 1 , 1000 Brussel";"01/01/1989";"M";"016/01.23.45";"";
Het import-script... ziet er zo uit:
Code:
if (isset($_POST['actie'])) {
$actie = $_POST['actie'];
} else {
$actie = "";
}
if ($actie == "aanpassen") {
// +++++++++++++++++++++++++++++++ VERBINDING MAKEN +++++++++++++++++++++++++++++++ //
$tabel = "ledenlijst";
// tabel ledenlijst leegmaken
$select = "DELETE FROM $tabel";
$query = mysql_query($select)or die(mysql_error());
// tijdelijk aantal velden verwijderen
$select = 'ALTER TABLE `ledenlijst` DROP `ledenlijst_id` ';
$query = mysql_query($select);
$select = 'ALTER TABLE `ledenlijst` DROP `verjaardag` ';
$query = mysql_query($select);
$select = 'ALTER TABLE `ledenlijst` DROP `begindatum` ';
$query = mysql_query($select);
// tijdelijke velden aanmaken
$select = 'ALTER TABLE `ledenlijst` ADD `ledenlijst_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST';
$query = mysql_query($select)or die(mysql_error());
$select = 'ALTER TABLE `ledenlijst` ADD `temp` CHAR( 1 ) NOT NULL;';
$query = mysql_query($select)or die(mysql_error());
//echo("<pre>");
$local_file = "ledenlijsten_aanpassen_actieve_lijst.txt";
if (isset($_FILES['bestand']['tmp_name'])) {
$bestand = $_FILES['bestand']['tmp_name'];
} else {
$bestand = "";
}
if(move_uploaded_file($bestand, $local_file)) {
$fcontents = file($local_file);
for($i=1; $i<sizeof($fcontents); $i++) {
$line = trim($fcontents[$i]);
$arr = explode(";", $line);
$aantal = count($arr);
$sql = "INSERT INTO $tabel VALUES ('" . $i . "','".implode("','", $arr);
$sql .= "')";
$sql = ereg_replace("\"","",$sql);
// echo ("\n$sql");
mysql_query($sql)or die("\nfoutje: " . mysql_error());
}
} else {
echo ("foutje hier");
}
//echo("</pre>");
// veld "verjaardag" weer toevoegen
$select = 'ALTER TABLE `ledenlijst` ADD `verjaardag` VARCHAR( 4 ) NOT NULL AFTER `geboortedatum`';
$query = mysql_query($select)or die(mysql_error());
// overbodige velden verwijderen
$select = 'ALTER TABLE `ledenlijst` DROP `temp` ';
$query = mysql_query($select)or die(mysql_error());
// lijst aanpassen
$select = "SELECT * FROM $tabel";
$query = mysql_query($select)or die(mysql_error());
$aantal_aangepast = "0";
while($list = mysql_fetch_object($query)) {
$ledenlijst_id = $list->ledenlijst_id;
$achternaam = $list->achternaam;
$voornaam = $list->voornaam;
$functie = $list->functie;
$telefoon = "";
$telefoon2 = "";
if ($list->telefoon <> "") {
$telefoon = ereg_replace("\."," ",$list->telefoon);
$telefoon = ereg_replace("/",") ",$telefoon);
$telefoon = "(" . $telefoon;
$telefoon = trim($telefoon);
$telefoonrij = preg_split('//', $telefoon, -1, PREG_SPLIT_NO_EMPTY);
$aantal = count($telefoonrij);
$spatie = $aantal - 3;
if ($telefoonrij[$spatie] <> " ") {
$telefoon = "";
for ($i=0;$i<$aantal;$i++) {
if ($i == $spatie) {
$telefoon .= $telefoonrij[$i] . " ";
} else {
$telefoon .= $telefoonrij[$i];
}
}
}
$telefoonrij = preg_split('//', $telefoon, -1, PREG_SPLIT_NO_EMPTY);
$aantal = count($telefoonrij);
$spatie = $aantal - 6;
if ($telefoonrij[$spatie] <> " ") {
$telefoon = "";
for ($i=0;$i<$aantal;$i++) {
if ($i == $spatie) {
$telefoon .= $telefoonrij[$i] . " ";
} else {
$telefoon .= $telefoonrij[$i];
}
}
}
}
if ($list->telefoon2 <> "") {
$telefoon2 = ereg_replace("\."," ",$list->telefoon2);
$telefoon2 = ereg_replace("/",") ",$telefoon2);
$telefoon2 = "(" . $telefoon2;
$telefoon2 = trim($telefoon2);
$telefoon2rij = preg_split('//', $telefoon2, -1, PREG_SPLIT_NO_EMPTY);
$aantal = count($telefoon2rij);
$spatie = $aantal - 3;
if ($telefoon2rij[$spatie] <> " ") {
$telefoon2 = "";
for ($i=0;$i<$aantal;$i++) {
if ($i == $spatie) {
$telefoon2 .= $telefoon2rij[$i] . " ";
} else {
$telefoon2 .= $telefoon2rij[$i];
}
}
}
$telefoon2rij = preg_split('//', $telefoon2, -1, PREG_SPLIT_NO_EMPTY);
$aantal = count($telefoon2rij);
$spatie = $aantal - 6;
if ($telefoon2rij[$spatie] <> " ") {
$telefoon2 = "";
for ($i=0;$i<$aantal;$i++) {
if ($i == $spatie) {
$telefoon2 .= $telefoon2rij[$i] . " ";
} else {
$telefoon2 .= $telefoon2rij[$i];
}
}
}
}
$geboortedatum = $list->geboortedatum;
if ($geboortedatum{1} == "/") {
$geboortedatum = "0" . $geboortedatum;
}
$geboortedatumrij = preg_split('//', $geboortedatum, -1, PREG_SPLIT_NO_EMPTY);
$geboortedatum = $geboortedatumrij[6] . $geboortedatumrij[7] . $geboortedatumrij[8] . $geboortedatumrij[9] . "-" . $geboortedatumrij[3] . $geboortedatumrij[4] . "-" . $geboortedatumrij[0] . $geboortedatumrij[1];
$verjaardag = $geboortedatumrij[3] . $geboortedatumrij[4] . $geboortedatumrij[0] . $geboortedatumrij[1];
$selecteer = "SELECT * FROM $tabel WHERE achternaam='$achternaam' AND voornaam='$voornaam'";
$querie = mysql_query($selecteer)or die(mysql_error());
$aantal_gevonden = "0";
while($lijst = mysql_fetch_object($querie)) {
if ($lijst->verjaardag == $verjaardag) {
$aantal_gevonden++;
}
}
if (($aantal_gevonden == "0") && ($functie <> "MM") && ($functie <> "LV") && ($functie <> "AB")) {
$verjaardag = $geboortedatumrij[3] . $geboortedatumrij[4] . $geboortedatumrij[0] . $geboortedatumrij[1];
} else {
$verjaardag = "";
}
$aantal_aangepast++;
$ed = "UPDATE $tabel SET telefoon='$telefoon' WHERE achternaam='$achternaam' AND voornaam='$voornaam'";
$querie = mysql_query($ed)or die(mysql_error());
$ed = "UPDATE $tabel SET telefoon2='$telefoon2' WHERE achternaam='$achternaam' AND voornaam='$voornaam'";
$querie = mysql_query($ed)or die(mysql_error());
$ed = "UPDATE $tabel SET geboortedatum='$geboortedatum' WHERE achternaam='$achternaam' AND voornaam='$voornaam'";
$querie = mysql_query($ed)or die(mysql_error());
$ed = "UPDATE $tabel SET verjaardag='$verjaardag' WHERE achternaam='$achternaam' AND voornaam='$voornaam' AND functie='$functie'";
$querie = mysql_query($ed)or die(mysql_error());
$achternaam = $list->achternaam;
$achternaam = ereg_replace("\-","\- ",$achternaam);
$achternaam = ucwords(strtolower($achternaam));
$achternaam = ereg_replace("\- ","-",$achternaam);
$ed = "UPDATE $tabel SET achternaam='$achternaam' WHERE ledenlijst_id='$ledenlijst_id'";
$querie = mysql_query($ed)or die(mysql_error());
$voornaam = $list->voornaam;
$voornaam = ereg_replace("\-","\- ",$voornaam);
$voornaam = ucwords(strtolower($voornaam));
$voornaam = ereg_replace("\- ","-",$voornaam);
$ed = "UPDATE $tabel SET voornaam='$voornaam' WHERE ledenlijst_id='$ledenlijst_id'";
$querie = mysql_query($ed)or die(mysql_error());
$adres = $list->adres;
$adres = ereg_replace("\-","\- ",$adres);
$adres = ucwords(strtolower($adres));
$adres = ereg_replace("\- ","-",$adres);
$adres = ereg_replace(" , ","\n",$adres);
$ed = "UPDATE $tabel SET adres='$adres' WHERE ledenlijst_id='$ledenlijst_id'";
$querie = mysql_query($ed)or die(mysql_error());
}
echo ("\n <h2>Update geslaagd</h2>");
echo ("\n <p>De ledenlijst is weer up-to-date ($aantal_aangepast leden ingevoerd en aangepast).</p>");
} else {
echo ("\n <p>Met dit scriptje kan je de tabel met de ledenlijsten updaten.</p>");
echo ("\n ");
echo ("\n <p>Geef hieronder het csv-bestand op en klik op "Update gegevens".</p>");
echo ("\n ");
echo ("\n <form enctype=\"multipart/form-data\" action=\"ledenlijsten_aanpassen.php\" method=\"post\">");
echo ("\n <input type =\"hidden\" name=\"actie\" value=\"aanpassen\">");
echo ("\n <table class=\"tabel\" align=\"center\">");
echo ("\n <tr>");
echo ("\n <td class=\"td1\" colspan=\"2\">Ledenlijst updaten</td>");
echo ("\n </tr>");
echo ("\n <tr>");
echo ("\n <td class=\"td1\" align=\"right\" width=\"200\">Bestand:</td>");
echo ("\n <td class=\"td2\"><input type =\"file\" class=\"input\" size=\"36\" name=\"bestand\"></td>");
echo ("\n </tr>");
echo ("\n <tr>");
echo ("\n <td class=\"td2\" colspan=\"2\"><input type=\"submit\" class=\"button\" name=\"submit\" value=\"Update gegevens\"></td>");
echo ("\n </tr>");
echo ("\n </table>");
echo ("\n </form>");
}
Zorg ervoor dat je in de map waarin je deze code zet ook een bestand "ledenlijsten_aanpassen_actieve_lijst.txt" aanmaakt met voldoende schrijfrechten (chmod 777).
De ledenlijst weergevenDat doe je met deze code:
Code:
echo ("\n \n <table class=\"tabel3\">");
echo ("\n <tr>");
echo ("\n <th><a href=\"?groep=$groep&sorteer=functie\" title=\"sorteren op functie\">Functie</a></th>");
echo ("\n <th><a href=\"?groep=$groep&sorteer=achternaam\" title=\"sorteren op achternaam\">Achternaam</a></th>");
echo ("\n <th><a href=\"?groep=$groep&sorteer=voornaam\" title=\"sorteren op voornaam\">Voornaam</a></th>");
echo ("\n <th><a href=\"?groep=$groep&sorteer=adres\" title=\"sorteren op adres\">Adres</a></th>");
echo ("\n <th><a href=\"?groep=$groep&sorteer=telefoon\" title=\"sorteren op telefoonnummer\">Telefoon</a></th>");
echo ("\n <th><a href=\"?groep=$groep&sorteer=geboortedatum\" title=\"sorteren op geboortedatum\">Geboortedatum</a></th>");
echo ("\n <th><a href=\"?groep=$groep&sorteer=lidnummer\" title=\"sorteren op lidnummer\">Lidnummer</a></th>");
echo ("\n <th><a href=\"?groep=$groep&sorteer=mv\" title=\"sorteren op geslacht\">M/V</a></th>");
echo ("\n </tr>");
if (isset($_GET['sorteer'])) {
$sorteer = $_GET['sorteer'];
} else {
$sorteer = "functie";
}
$tabel = "ledenlijst";
$select = "SELECT * FROM $tabel ORDER BY $sorteer, achternaam";
$query = mysql_query($select)or die(mysql_error());
$aantal_leden = "0";
while($list = mysql_fetch_object($query)){
$aantal_leden++;
$telefoon = "";
$telefoon2 = "";
$adres = ereg_replace(" "," ",$list->adres);
$adres = ereg_replace("\n","<br />",$adres);
$geboortedatumrij = preg_split('//', $list->geboortedatum, -1, PREG_SPLIT_NO_EMPTY);
$geboortedatum = $geboortedatumrij[8] . $geboortedatumrij[9] . "/" . $geboortedatumrij[5] . $geboortedatumrij[6] . "/" . $geboortedatumrij[0] . $geboortedatumrij[1] . $geboortedatumrij[2] . $geboortedatumrij[3];
echo ("\n <tr>");
echo ("\n <td>$list->functie</td>");
echo ("\n <td>$list->achternaam</td>");
echo ("\n <td>$list->voornaam</td>");
echo ("\n <td>$adres</td>");
if ($list->telefoon == "") {
if ($list->telefoon2 == "") {
echo ("\n <td align=\"right\"></td>");
} else {
echo ("\n <td align=\"right\">$list->telefoon2</td>");
}
} else {
if ($list->telefoon2 == "") {
echo ("\n <td align=\"right\">$list->telefoon</td>");
} else {
echo ("\n <td align=\"right\">$list->telefoon<br />$list->telefoon2</td>");
}
}
// echo ("\n <td align=\"right\">$list->telefoon<br />$list->telefoon2</td>");
echo ("\n <td align=\"right\">$geboortedatum</td>");
echo ("\n <td align=\"right\">$list->lidnummer</td>");
echo ("\n <td align=\"right\">$list->mv</td>");
echo ("\n </tr>");
}
echo ("\n </table>");
echo ("\n ");
echo ("\n <ul class=\"platte_opsomming\">");
echo ("\n <li class=\"pijltje\">Aantal ingeschreven leden: $aantal_leden</li>");
echo ("\n </ul>");
Normaal zou dit moeten werken, maar hou er rekening mee dat dit cut & paste-werk is van mijn eigen scriptjes. Misschien moet je dus hier en daar nog wat aanpassen.
Succes ermee!
To