[TYPO3-german] Script einbauen?

Marco Behnke marco at behnke.biz
Sun Jun 28 13:47:35 CEST 2009


Jochen Graf schrieb:
> Hallo,
> 
> ich habe im Internet folgendes Script gefunden, aber ich schaffe es 
> nicht, dieses einzubauen
> 
> #####################################################################
> 
> <?php
> $mysqlhost = "localhost"; // MySQL-Host angeben
> $mysqluser = "root"; // MySQL-User angeben
> $mysqlpwd = "**** "; // Passwort angeben
> 
> ###########################################
> 
> $connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpwd);
> if (mysql_error()) {
> echo "Konnte Datenbankserver nicht anwählen, bitte versuchen Sie es 
> später nocheinmal. <!-- ".mysql_error()."//-->";
> }
> 
> $db_list = mysql_list_dbs();
> $i = 0;
> $cnt = mysql_num_rows($db_list);
> 
> echo "<table cellspacing=\"0\" cellpadding=\"0\" width=\"500\" 
> align=\"center\">\n";
> 
> while ($i < $cnt) {
> 
> $db = mysql_db_name($db_list, $i);
> ###########################################
> 
> mysql_select_db($db, $connection);
> $result = mysql_list_tables($db);
> 
> echo "<tr>
> <td colspan=\"2\" style=\"font-weight:bold\"><br />Datenbank: <span 
> style=\"color:blue\">".$db."</span></td>
> </tr>\n";
> echo "<tr>\n
> <td>Tabelle</td>
> <td>Ergebnis</td>\n
> </tr>\n";
> while ($row = mysql_fetch_row($result)) {
> 
> $sql = "OPTIMIZE TABLE `".$row[0]."`";
> $erg = mysql_query($sql, $connection) or die(mysql_error());
> $daten= mysql_fetch_array($erg, MYSQL_ASSOC);
> 
> if($daten){
> 
> switch ($daten['Msg_text']) {
> case "Table is already up to date":
> $color = "#CAF9AE";
> break;
> 
> case "OK":
> $color = "#63EB66";
> break;
> 
> case "The handler for the table doesn't support check/repair":
> $color = "#63EB66";
> break;
> 
> default:
> $color = "#F21C1C";
> break;
> }
> 
> echo "<tr style=\"background-color:".$color."\">
> <td width=\"300\" nowrap>".$row[0]."</td>
> <td width=\"200\" nowrap>".$daten['Msg_text']."</td>
> </tr>\n";
> }
> }
> ###########################################
> $i++;
> }
> echo "</table>\n";
> ?>
> 
> ##############################################################
> 
> Bei diesem Sctipt werden die Überhänge der Dastenbank gelöscht, könnte 
> mir bitte jemand einen Tipp geben, wie ich das zum laufen bekommen?

Installier PHP My Admin, damit kannst Du das machen, ohne ein eigenes 
PHP Skript irgendwie als mod unter zu bringen

> 
> In diesem Script würde ich gerne nur zwei Datenbanken einbauen, so wie 
> ich das sehe, werden hier alle Datenbanken abgearbeitet.

Wie viel Erfahrung hast Du mit PHP?

Hier wird die Liste aller Datenbanken geholt
$db_list = mysql_list_dbs();
$i = 0;
$cnt = mysql_num_rows($db_list);

An dieser Stelle wird eine Schleife über alle DBs gebaut
while ($i < $cnt) {
   $db = mysql_db_name($db_list, $i);



Wenn Du das Skript jetzt nur für 2 Datenbanken ausführen lassen 
möchtest, änderst Du die ersten 3 Zeilen um in

$db_list = array('Datenbank 1', 'Datenbank 2');
$i = 0;
$cnt = count($db_list);


Empfehlen tue ich das jedoch nicht. Benutze PHP My Admin

Nebenbei erwähnt sollte man sich NIEMALS per Superuser (hier root) mit 
der Datenbank verbinden.


More information about the TYPO3-german mailing list