Antwort
 
Themen-Optionen Thema durchsuchen
Alt 11.09.2006, 10:47 Nach oben    #1
Benutzer
 
Registriert seit: 11.09.2006
Beiträge: 30
Standard Komplette Datenbank auslesen

Hallo,

ich Suche ein Client oder Script mit dem ich eine Komplette Datenbank mit Tabellen, Feldern und Inhalten auslesen und ausgeben kann. Also im Prinzip eine alternative zu phpmyadmin. Kann mir da jemand helfen? vielen lieben dank

mfg
try
Tryzero ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2006, 10:52 Nach oben    #2
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.214
Standard

das kommt wohl drauf an, was du letztlich damit vorhast...

Es gibt da mit Sicherheit mehrere Möglichkeiten!
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2006, 11:07 Nach oben    #3
Benutzer
 
Registriert seit: 11.09.2006
Beiträge: 30
Standard

Hi Jann, danke für die schnelle Antwort.

Es sieht so aus, das die Seite nen Projekt von einem Freund ist, der Coder aber abgesprungen ist und ich das schnell fertig machen soll. Der Coder hat nur keine Daten für den Server hinterlassen und das phmyadmin ist mithilfe von .htaccess geschützt. Die Seite haben wir uns schon geladen und auf meinem Server soweit installiert nur von der DB gab oder gibt es kein Backup, nun brauchen wir, da wir nur die DB-Connection Daten haben, die Tabellen, da wir sonst zulange sitzen um die Tabellen, Felder... etc ausfindig zu machen und neu zu erstellen...

so long
try
Tryzero ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2006, 11:26 Nach oben    #4
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.214
Standard

ganz einfache Idee:
ein weiteres pma nehmen und die login-Daten des Servers, den ihr haken wollt eintragen, in der Voraussetzung, dass der überhaupt nach außen ansprechbar ist!

Aber... wenn ihr eh Zugriff drauf habt... warum entfernt ihr dann nicht einfach die htaccess?

Sry, aber das klingt für mich gerade alles nicht sehr vertrauenserweckend, was du das machen willst.

Fragt doch einfach den 'Coder' deines Freundes, ob er euch freiwillig die Daten gebt? Das wird schon so seinen Grund haben, oder?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2006, 11:33 Nach oben    #5
Benutzer
 
Registriert seit: 11.09.2006
Beiträge: 30
Standard

Hehe, nene so einfach ist es nicht... wir haben nur Zugriff auf die das html verzeichniss auf dem Server, kommen also schlecht auf die .htaccess druff, wir probieren ja schon die ganze zeit den coder zu erreichen, nur er ist leider seit 6tagen nicht mehr dagwesen und die seite soll bis samstag fertig sein... haken ist das eher nicht und schließlich haben wir immernoch recht auf den code da der kumpel den coder bezahlt hat nur nun nachdem er fertig ist keine verbesserungen mehr machen will... trotzdem thx...
Tryzero ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2006, 13:43 Nach oben    #6
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.183
Standard

wenn das script lauffähig ist, sollten dort doch die zugangsdaten irgendwo drinstehen ? ....
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2006, 14:50 Nach oben    #7
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

Also ich geh mal davon aus, dass er wirklich vom Coder "überlistet" wurde, bzw der sich einfach aus dem Staub gemacht hat.

Ich hab da mal eben das hier geschrieben:
(DB-Daten bitte aktualisieren)
PHP-Code:
<?php
$dbname 
'datenbankname';
mysql_connect('localhost''root''');
mysql_select_db($dbname);

$sql "SHOW TABLES FROM ".$dbname;
$result_table mysql_query($sql);
while(
$table mysql_fetch_row($result_table))
{
    
$sql "SHOW COLUMNS FROM ".$table[0];
    
$result_field mysql_query($sql);
    echo 
"<br><br><h2>Tabelle: ".$table[0]."</h2><br>";
    while(
$fields mysql_fetch_assoc($result_field))
    {
        echo 
"<pre>";
        
print_r($fields);
        echo 
"</pre>";
    }
    
$sql "SELECT * FROM ".$table[0].";";
    
$result mysql_query($sql);
    while(
$erg mysql_fetch_array($result))
    {
        
$insert "INSERT INTO ".$table[0]." VALUES(";
        for(
$i 0$i <= count($erg); $i++)
        {
            if(
$i == 0)
            {
                
$insert .= " '".$erg[$i]."'";
            }
            else
            {
                
$insert .= ", '".$erg[$i]."'";
            }
            
        }
        
$insert .= ");<br>";
        echo 
$insert;
    }
}
?>
//edit: das funktioniert aber auch nur, wenn euer datenbanknutzer genug rechte hat, sonst könnte es problematisch werden
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2006, 16:35 Nach oben    #8
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

PHP-Code:
$file realpath(dirname('.')).'/tbl_name.sql';

$sql "SELECT
            *
        INTO OUTFILE
            :file
        FROM 
            `tbl_name`"

__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2006, 17:43 Nach oben    #9
Johannes Schlichenmaier
 
Benutzerbild von Jojo
 
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 397
Standard

Zitat:
Zitat von Lars Beitrag anzeigen
PHP-Code:
$file realpath(dirname('.')).'/tbl_name.sql';

$sql "SELECT
            *
        INTO OUTFILE
            :file
        FROM 
            `tbl_name`"

Er will ja alle Tabellen haben, unabhängig vom Namen.
__________________
In the beginning was the word
and the word was content-type: plain/text

heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int
Jojo ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2006, 18:53 Nach oben    #10
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

Code:
SHOW TABLES;
__________________
Gedanken aus Draht stricken einen Zaun.
Lars ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.09.2006, 23:57 Nach oben    #11
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

jou lars, aber dennoch hast du dann nur die inhalte, aber nicht die namen der spalten.
mein skript (siehe oben) zeigt dagegen alles an inklusive einstellungen zu den einzelnen spalten.

//edit: ich würde mich über feedback dazu sehr freuen @ topicstarter
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2006, 08:33 Nach oben    #12
Benutzer
 
Registriert seit: 11.09.2006
Beiträge: 30
Standard

Hey,

thx für die vielen Antworten, schreib grad von der Arbeit, werde heute nachmittag mal testen wies funktioniert, schonmal vielen dank an alle besonders WarrenFaith

Ich werd mich melden

so long
try
Tryzero ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2006, 13:24 Nach oben    #13
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

also die Datensätze werden gleich als INSERTS ausgegeben so das per copy/paste die daten leicht eingespielt werden können. lediglich den Aufbau der Tabellen musst du dir aus den Arrays noch zusammensetzen, hatte gestern zu wenig zeit um das auch noch zu machen.
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2006, 13:43 Nach oben    #14
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Zitat:
Zitat von WarrenFaith Beitrag anzeigen
also die Datensätze werden gleich als INSERTS ausgegeben so das per copy/paste die daten leicht eingespielt werden können. lediglich den Aufbau der Tabellen musst du dir aus den Arrays noch zusammensetzen, hatte gestern zu wenig zeit um das auch noch zu machen.
Ja die werden als inserts ausgegebn, allerdings ist mir (beim Testen) passiert, dass mehr Insert-Variablen gegeben werden, als Felder in der Tabelle vorhanden sind. Beispiel:
Tabelle hat 3 Felder, Feld1, Feld2, Feld3
Und der INSERT-Query hat so ausgesehn:
INSERT INTO tabelle VALUES ('', '', '', '', '', '' , '') ..

Aber sonst tolles kleines Script. Auch danke von mir.
Hier noch ein Beispiel für den Fehler (direkt aus der Anwendung
Code:
Tabelle: xpc1_usergroups

Array
(
    [Field] => groupID
    [Type] => int(10)
    [Null] => NO
    [Key] => PRI
    [Default] => 
    [Extra] => auto_increment
)

Array
(
    [Field] => groupName
    [Type] => varchar(255)
    [Null] => NO
    [Key] => 
    [Default] => 
    [Extra] => 
)

Array
(
    [Field] => active
    [Type] => enum('0','1')
    [Null] => NO
    [Key] => 
    [Default] => 1
    [Extra] => 
)

INSERT INTO xpc1_usergroups VALUES( '1', 'male', '1', '', '', '', '');
INSERT INTO xpc1_usergroups VALUES( '2', 'female', '1', '', '', '', '');
INSERT INTO xpc1_usergroups VALUES( '3', 'couple', '1', '', '', '', '');
INSERT INTO xpc1_usergroups VALUES( '4', 'group', '1', '', '', '', '');
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2006, 14:16 Nach oben    #15
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

Tatsache, hab ich gar nicht bemerkt, aber logisch ist es.
mysql_fetch_array hat sowohl Indexnummern als auch die Spaltennamen als index, ist daher doppelt so groß wie es sein sollte. Hier ist die korrekte Version (mit mysql_fetch_row und einem = weniger)
PHP-Code:
<?php
$dbname 
'datenbankname';
mysql_connect('localhost''root''');
mysql_select_db($dbname);

$sql "SHOW TABLES FROM ".$dbname;
$result_table mysql_query($sql);
while(
$table mysql_fetch_row($result_table))
{
    
$sql "SHOW COLUMNS FROM ".$table[0];
    
$result_field mysql_query($sql);
    echo 
"<br><br><h2>Tabelle: ".$table[0]."</h2><br>";
    while(
$fields mysql_fetch_assoc($result_field))
    {
        echo 
"<pre>";
        
print_r($fields);
        echo 
"</pre>";
    }
    
$sql "SELECT * FROM ".$table[0].";";
    
$result mysql_query($sql);
    while(
$erg mysql_fetch_row($result))
    {
        
$insert "INSERT INTO ".$table[0]." VALUES(";
        for(
$i 0$i count($erg); $i++)
        {
            if(
$i == 0)
            {
                
$insert .= " '".$erg[$i]."'";
            }
            else
            {
                
$insert .= ", '".$erg[$i]."'";
            }
            
        }
        
$insert .= ");<br>";
        echo 
$insert;
    }
}
?>
Danke für den Hinweis Chr!s.
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2006, 18:50 Nach oben    #16
Benutzer
 
Registriert seit: 11.09.2006
Beiträge: 30
Standard

hey danke,

geht soweit, bin jetzt dabei die tabellen ausgabe auch in nen CREATE zu formatieren, nur das funktioniert noch nicht ganz!

Der Code:

PHP-Code:
<?php
$dbname 
'dbname';
mysql_connect('localhost''user''pass');
mysql_select_db($dbname);

$sql "SHOW TABLES FROM ".$dbname;
$result_table mysql_query($sql);
while(
$table mysql_fetch_row($result_table))
{

printf('CREATE TABLE %s ('."\n"$table[0]);
$sql "SHOW COLUMNS FROM ".$table[0];
$result_field mysql_query($sql);
$first true;
while(
$row mysql_fetch_row($result_field))
{
    echo (
$first '' ", \n");
        
$first false;
    echo 
$row[0], ' '$row[1], ' ', ($row[2] == 'NO' 'NOT NULL' 'NULL'), ' ', ( (!empty($row[4]) && $row[4] != '') ? "DEFAULT " $row[4] : '') , ' ' $row[5], ' ';
    switch(
$row[3]){
        case 
'PRI':
            echo 
'PRIMARY';
        break;
        case 
'UNI':
            echo 
'UNIQUE';
        break;
    }
}
echo 
")\n";


    
$sql "SELECT * FROM ".$table[0].";";
    
$result mysql_query($sql);
    while(
$erg mysql_fetch_row($result))
    {
        
$insert "INSERT INTO `".$table[0]."` VALUES(";
        for(
$i 0$i count($erg); $i++)
        {
            if(
$i == 0)
            {
                
$insert .= " '".$erg[$i]."'";
            }
            else
            {
                
$insert .= ", '".$erg[$i]."'";
            }
            
        }
        
$insert .= ");<br>";
        echo 
$insert;
    }
}
?>
Als Ergebniss bekomme ich:
Code:
CREATE TABLE config ( config_id int(11) NOT NULL  auto_increment PRIMARY,  config_1 int(1) NOT NULL   ,  config_2 int(11) NOT NULL   ,  config_3 int(11) NOT NULL   ,  config_4 int(1) NOT NULL   ); INSERT INTO `config` VALUES( '1', '2', '3', '4', '5');
In phpmyadmin, weil ich zufall bin die tables alle manuell einzutragen und zu ändern, folgender fehler

Code:
Fehler

     SQL-Befehl:     
              CREATE  TABLE config(config_id int( 11  )  NOT  NULL  AUTO_INCREMENT  PRIMARY ,
config_2 int( 1  )  NOT  NULL ,
config_3 int( 11  )  NOT  NULL ,
config_4 int( 11  )  NOT  NULL ,
config_5 int( 1  )  NOT  NULL 
);

     
      MySQL meldet:  
  #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' config_2 int(1) NOT NULL , config_3 int(11) NOT NULL , config_4' at line 1
Könnt ihr mir da auchnoch weiterhelfen ? thx

mfg try
Tryzero ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2006, 18:53 Nach oben    #17
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Sollte es nicht PRIMARY_KEY anstatt PRIMARY heißen?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2006, 18:55 Nach oben    #18
Benutzer
 
Registriert seit: 11.09.2006
Beiträge: 30
Standard

hm... geht das nicht auch nur mit primary? ... hm

habs mal grad manuell getestet, selbst wenn ich PRIMARY_KEY machen funxt es nocht net
Tryzero ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.09.2006, 19:11 Nach oben    #20
Benutzer
 
Registriert seit: 11.09.2006
Beiträge: 30
Standard

habs hinbekommen

2 Fehler:

1. ")\n";

fehlte das ;

2. hatte PRIMARY_KEY geschrieben anstadt PRIMARY KEY

thx

Geändert von Ben (12.09.2006 um 19:20 Uhr). Grund: Hab mal die Farben entfernt. Das sah irgendwie .. komisch aus. :)
Tryzero ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.