Per Schleife durch die DB's

Ah wie konnte ich das übersehen ^^ . Jo nice stimmt ja.

Eine allerletzte Sache noch, ich hab jetzt wircklich alles nachvollzogen und was mir dadurch noch am Schluss aufgefallen ist :

Du erstellst ganz zum Schluss noch ein Array : $Datenbanken und bezeichnest das laut Kommentierung als das entstandene Haupt-Array ? Ist nicht $datenbank das Haupt-Array ? Das bekommt doch die ganzen Zuweisungen oder ?


Ah ich verstehe es glaube ich gerade selbst. Man kann in PHP anscheinend einfach Arrays zusammenklatschen wie man will ^^

Du erstellst zum schluss das neue Haupt-Array mit den einzelnen DB-Namen und das bekommt dann die ganzen unter-arrays. Wir haben also zum Schluss ein 3diemsionales Array richtig ?
 
Zuletzt bearbeitet:
Richtig

$Datenbanken enthält pro Datenbanek ein Array
$Datenbank enthält informationen wi den Namen, Anzahl Tabellen und einen weiteren Array mit den Tabellennamen.
 
Ich hab doch nochn Problem mit der Ausgabe, was bedeutet das ich die Array-Struktur doch noch nicht ganz verstanden habe.

Ich habe ein paar einzelne Ausgaben schon hinbekommen, was auch gezeigt hat das der ganze Zugriff einwandfrei funktioniert.


Ich versuche jetzt hier alle Datenbank-Namen auszugeben :

Code:
<table border="1">
		<td class="info">Datenbanken:</td>
		<?php
			for ( $i=0; $i< count($datenbanken); ++$i){
		?>
		<tr>
			<td><?php echo $datenbanken['Database'][$i]; ?></td>
		</tr>
		<?php
			}
		?>
	</table>
Der Count part funktioniert, weil er die Schleife 7 mal durchläuft, allerdings wird kein Name ausgegeben, also ich gebe etwas falsches im aus bzw wo nichts ist.
Kannst da nochmal gucken ? Die Bezeichnungen im Array sind genauso wie wir sie erstellt haben.

Stecken in dbName alle Datenbanknamen und ist jedes für sich als einzelnes Array zu sehen ?
 
Zuletzt bearbeitet:
Wie wärs mit
PHP:
echo $datenbanken[$i]['Database'];

Zudem solltes du nit ++$i nehmen bei dieser Schleife sondern $i++, da der erste index im Array 0 ist und nicht 1. Sprich $i geht von 0-6 bei 7 Datenbanken.
 
Kann es daran liegen das dieser part $datenbanken['john'] , in dem Sinne nicht durchlaufen werden kann, weil es einzelne Arrays für sich sind ? und ich deshalb nicht mit einer Zählvariable Arbeiten kann ?

Ich kann rumprobieren wie ich will .... was wiegesagt klappen müsste :

Code:
                <?php
		        for ( $i=0; $i< count($datenbanken); ++$i){
		?>
		<tr>
			<td><?php echo $datenbanken[$i]['Database']; ?>test</td>
		</tr>
		<?php
			}
		?>
Klappt nicht. Er gibt 7 mal "test" aus was zeigt das er die richtige Anzahl gezählt hat, aber der Durchlauf in datenbanken gibt keinen Wert aus.
 
Zuletzt bearbeitet:
var_dump($datenbanken); analysieren......
*Hand-an-strin-schlag*
Natürlich. $databases ist so wo wie ich es programmiert habe ein array mit keys. Also entweder mit foreach alle Einträge durchgehen oder mit dem Datenbanknamen zugreiffen.

Oder du entfernst die key-Zuteilung in meinem Script. Dann kannst du aber nicht mher über den Datenbanknamen zugreiffen.

Oder du machst eine Kopie ohne die Zuteilung
PHP:
//mit foreach
foreach ($datenbanken as $dbname => $dbDetails){}

//Zugriff über den Key
$mydb = $datenbanken['mydb'];

oder die indexkopie
$datenbankenByIndex = array_values($datenbanken);$
for ($i = 0; $i<count($datenbankenByIndex ); $i++){
    var_dump($datenbankenByIndex [$i]);
}
 
Ich habe es leider mit keiner deiner Möglichkeiten zum laufen gekrigt.

Was glaube ich am dichtesten dran ist :

Code:
	<table border="1">
		<td class="info">Datenbanken:</td>
		<?php
			foreach($datenbanken as $wert){
		?>
		<tr>
			<td><?php echo $datenbanken[$wert]['Database']; ?></td>       ZEILE 61
		</tr>
		<?php
			}
		?>
	</table>

Da krig ich dann 7 mal die Meldung "Warning: Illegal offset type in C:\xampp\htdocs\db_creation.php on line 61"

Hab so langsam alles durch ...
 
Ja jetzt funktionierts endlich. .. . phew

mit dieser Variante :
Code:
foreach ($datenbanken as $dbname => $dbDetails){

Wobei ich nicht ganz verstehe warum es so nicht geht :
Code:
foreach ($datenbanken as $dbname){

Irgendwie ist mir der Unterschied nicht ganz verständlich.

Aufjedenfall wiedermal ein großes Dankeschön an dich ! : P
 
Zurück