login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Database tools > PhpYourAdmin

PhpYourAdmin

Auteur: twopeak - 13 oktober 2004 - 21:01 - Gekeurd door: Dennisvb - Hits: 10746 - Aantal punten: 2.36 (11 stemmen)



Dit scriptje is een soort PhpMyAdmin, maar dat maar op 1 tabel werkt.

De layout werd niet verzorgd, mijn scripten zijn enkel mooi in code ;)

Je slaagt het script op; je editeert de bovenste regeltjes en je laat het maar lopen!

Bij het aanpassen van het script heb ik gemerkt dat het soms nodig is van een pagina te herladen voor je de veranderingen kan zien. Ik weet (nog) niet aan wat het kan liggen.

Wat doet het script eigenlijk?
Hij haalt alle veldnamen op
Hij zet alle records in een tabelletje met de juiste veldnamen, en achteraan de optie om te editeren of verwijderen
Hij toont een formulier om een record toe te voegen.

Wanneer je editeren klikt, krijg je een nieuw formulier om te editeren.
Wanneer je verwijderen klikt krijg je nog een vraag of je zeker bent voordat je het record definitief verwijdert!

Code:
  1. <?
  2. //TE EDITEREN
  3. $tabel=""; //naam tabel
  4. $aantal_tekens = 100; //aantal lettertekens dat er getoond moeten worden
  5. $id_naam = "id"; //naam van het veld met de unieke waarden, ZEER BELANGRIJK!
  6. $database_naam = ""; //naam van de database (wordt meer dan 1x gebruikt!)
  7. $inlognaam=""; //voor je db connectie
  8. $inlogpass=""; //voor je db connectie
  9. //EINDE EDITEREN
  10.  
  11. //connecteren
  12. $mysql_connectie = mysql_connect("127.0.0.1",$inlognaam,$inlogpass) or die (mysql_error());
  13. $mysql_database = mysql_select_db($database_naam) or die (mysql_error());
  14. //basis opzoeken
  15. $query=mysql_query("SELECT * FROM ".$tabel) or die (mysql_error()); //dient om waarden te tonen maar ook om aantal kol. te berekenen
  16. $kolommen = mysql_num_fields($query) or die (mysql_error()); //het aantal velden dat er zijn in die tabel
  17. $veld_namen = mysql_list_fields($database_naam, $tabel, $mysql_connectie) or die (mysql_error());//maakt een instantie (!!!) dat alle veldnamen bevat
  18.  
  19.  
  20.  
  21. //DEEL 1, het script moet meer doen dan enkel de gegevens tonen!
  22.  
  23. if ($_GET['actie']) { //Wordt er geëditeerd of verwijderd? (dus ofwel edit-form tonen ofwel delete confirmatie vragen!)
  24. //checken of id wel bestaat
  25. $controle = mysql_query("SELECT * FROM ".$tabel." WHERE ".$id_naam." = '".addslashes($_GET['id'])."'") or die (mysql_error());
  26. if (mysql_num_rows($controle)==1){//er is enkel en alleen 1 id met dat nummer
  27. $lijst=mysql_fetch_array($controle) or die (mysql_error()); //zet alle waarden in een array
  28. switch ($_GET['actie']) { //actie = edit of del
  29. case "edit":
  30. //toon zo'n formuliertje
  31. echo "<br><form name=\"editeren\" action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n";
  32. //$veld_namen is een instantie, je kan de info er dus enkel zo uithalen als op volgende lijn. Voor elk veld wordt er 1 input text gemaakt!
  33. for ($i = 0; $i < $kolommen; $i++) echo mysql_field_name($veld_namen, $i),": <input type=\"text\" size=\"50\" name=\"",mysql_field_name($veld_namen, $i),"\" value=\"",$lijst[$i],"\"><br>\n";
  34. echo "<input type=\"submit\" name=\"uitvoer\" value=\"editeer\"></form>\n<br>Het veld <b>$id_naam</b> NIET veranderen!<br>\n";
  35. break;
  36. //via mysql_field_type zou ik het type kunnen bekijken en dan een juist input-object kunnen maken, maar dat is voor later!
  37. case "del":
  38. //confirmatie vragen
  39. ?>
  40. <form name="delete" action="<?=$_SERVER['PHP_SELF']; ?>" method="POST">
  41. <input type="hidden" name="del_id" value="<?=addslashes($_GET['id'])?>">Deze record verwijderen?<br>
  42. <input type="submit" name="uitvoer" value="verwijder"><br>
  43. <hr><h3>Record uit <?=$tabel?><br>
  44. <?
  45. $del_toon = mysql_query("SELECT * FROM ".$tabel." WHERE ".$id_naam."='".$_GET['id']."'");
  46. $lijst = mysql_fetch_array($del_toon);
  47. foreach($lijst as $sleutel => $waarde) echo "<b>$sleutel:</b> $waarde<br>";
  48.  
  49. echo "</form>";
  50.  
  51. break;
  52. }
  53. }
  54. $rest_tonen=false; //de lijst met alle records niet tonen
  55. }
  56. //WERD ER VANUIT HET EDITEREN/VERWIJDEREN GEVRAAGD OM IETS TE DOEN
  57. if($_POST['uitvoer']=="editeer") {
  58. //update query bouwen met alle velden uit de POST array
  59. foreach ($_POST as $sleutel => $waarde) {
  60. //submit knop en id veld weglaten!
  61. if ($sleutel != "uitvoer" && $sleutel!= $id_naam) $velden[] = $sleutel=$waarde;
  62. }
  63.  
  64. $sql_query = "UPDATE $tabel SET".implode(",", $velden)." WHERE ".$id_naam." = ".$_POST[$id_naam];
  65. //als je wenst kun je de sql_query eens echo-en, dan zie je wat er gebeurt!
  66. mysql_query($sql_query) or die (mysql_error());
  67.  
  68. $rest_tonen=true;
  69. } elseif ($_POST['uitvoer']=="verwijder") {//gewoon doen, lijkt me logisch
  70. mysql_query("DELETE FROM $tabel WHERE ".$id_naam." = ".$_POST['del_id']." LIMIT 1") or die (mysql_error());
  71. $rest_tonen=true;
  72. } elseif ($_POST['uitvoer']=="Nieuw Record"){ //nieuwe record toevoegen...
  73.  
  74. foreach($_POST as $sleutel => $waarde){
  75. if ($sleutel!="uitvoer"){//waarde van de submit knop niet meesturen
  76. //2 arrays maken, sleutels en waarden, en die later gaan imploderen
  77. $nieuwe_sleutels[] = $sleutel;
  78. $nieuwe_waarden[] = "'".addslashes($waarde)."'";
  79. }}
  80. $toevoeg_query = "INSERT INTO ".$tabel." (".implode(", ", $nieuwe_sleutels).") VALUES( ".implode(", ", $nieuwe_waarden).")";
  81. mysql_query($toevoeg_query);
  82. }
  83.  
  84. if ($rest_tonen || !isset($actie)) { //*********************************
  85. //DEEL 2 GEWOON DE INHOUD VAN DE TABEL TONEN
  86. //er werd geen actie gespecifieerd, gewoon tonen, could be buggy?
  87.  
  88. //maak een tabelletje
  89. echo "<table border=\"1\" width=\"100%\" cellpadding=\"2\"><tr>";
  90. for ($i = 0; $i < $kolommen; $i++) //maak evenveel cellen als er velden zijn
  91. //$veld_namen komt uit de query die alle info uit $tabel haalt (select * from $tabel)
  92. echo "<th>",mysql_field_name($veld_namen, $i) . "</th>";
  93.  
  94. echo "<th colspan=\"2\">acties</th></tr>"; //aangezien er nog 2 cellen bijkomen voor de acties
  95.  
  96. //nu hebben we de header cellen afgedrukt, nu gaan we ze vol inhoud zetten!
  97. while($lijst=mysql_fetch_array($query)){
  98. echo "<tr>";//een nieuwe rij maken
  99. for ($i=0;$i < $kolommen; $i++) {
  100. echo "<td>", substr($lijst[$i],0,$aantal_tekens), "</td>"; //niet het gehele veld tonen...
  101. }
  102. //acties toevoegen en de rij sluiten
  103. echo "<td><a href=\"",$_SERVER['PHP_SELF'],"?actie=edit&id=".$lijst['0']."\" alt=\"editeren\"> editeren </a></td><td><a href=\"",$)_SERVER['PHP_SELF'],"?actie=del&id=".$lijst['0']."\" alt=\"verwijderen\"> verwijderen </a></td></tr>";
  104.  
  105. }
  106. //nog een rij maken voor het toevoeg formulier
  107. echo "<tr><td colspan=\""; echo $kolommen+2; echo "\" valign=\"top\" align=\"center\"><form name=\"toevoegen\" action=\"{$PHP_SELF}\" method=\"POST\">\n<br><table border=\"1\">";
  108. for ($i = 0; $i < $kolommen; $i++) {
  109. if (mysql_field_name($veld_namen, $i)!=$id_naam)
  110. echo "<tr><td>",mysql_field_name($veld_namen, $i),": </td><td><input type=\"text\" size=\"50\" name=\"",mysql_field_name($veld_namen, $i),"\" value=\"",$lijst[$i],"\"></td></tr>\n";
  111. }
  112. echo "<tr><td colspan=\"2\"><input type=\"submit\" name=\"uitvoer\" value=\"Nieuw Record\"></td></tr></table></form>\n </td></tr>";
  113. echo "</table>";
  114.  
  115.  
  116. } //rest_tonen?
  117. ?>
  118.  
  119. </body></html>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (14)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.041s