Ausgelesene Datensätze werden nicht dargestellt

Guten Tag

Ich habe hier bei bplaced eine Webseite zu Testzwecken laufen und würde die jetzt gerne in meinem Praktikumsbetrieb auf dem Webserver (IIS) laufen lassen.

Kopiere ich nun die Dateien auf den Webserver und ändere in den einzelnen files die Datenbankverbindung (User, PW, etc.) und rufe die Seite mit den Datensätzen auf, werden die in der HTML Tabelle einfach nicht angezeigt. Die Datensätze werden jedoch richtig formatiert (gelber und grüner Hintergrund je nach Zahl in der 2. Spalte).

Hier mein Code:

<?php
    $mysqlhost="localhost";
    $mysqluser="user";
    $mysqlpwd="pw";
    $mysqldb="db"; 
        $connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen!");
        mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht wählen!");
        mysql_set_charset('utf8', $connection);
        $sql = "SELECT * FROM tabelle ORDER BY KG, Konto ASC";
        $adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich!");
        $anzahl = mysql_num_rows($adressen_query);
?>     
    <table cellpadding="5" cellspacing="0" border="1" width="90%" class="printable">
    <tr>
        <td id="kg" style="font-weight:bold; background-color:#B0B0B0;">KG</td>
        <td id="konto" style="font-weight:bold; background-color:#B0B0B0;">Konto</td>
        <td id="bezeichnung" style="font-weight:bold; background-color:#B0B0B0;">Bezeichnung</td>
        <td id="erlauterung" style="font-weight:bold; background-color:#B0B0B0;">Erläuterung</td>
        <td id="andern" style="font-weight:bold; background-color:#B0B0B0;"></td>
        <td id="loschen" style="font-weight:bold; background-color:#B0B0B0;"></td>
    </tr>
<?php
    while ($adr = mysql_fetch_array($adressen_query)){
        <tr class="YELLOW">
            <td><?=$adr['KG']?></td>
            <td><?=$adr['Konto']?></td>
            <td><?=$adr['Bezeichnung']?></td>
            <td><?=$adr['Erläuterung']?></td>
            <td style="color:#999;"><a class="Link" href="UpdateAufwand.php?id=<? echo $adr['id']; ?>"><img class="editPic" src="edkl.png" alt="Edit" /></a></td>
            <td style="color:#999;"><a class="Link" onClick="return confirm('Wollen Sie den Datensatz wirklich löschen?')" href="DeleteAufwandPHP.php?id=<? echo $adr['id']; ?>"><img class="deletePic" src="delkl.png" alt="Delete" /></a></td>
        </tr>
?>

Muss ich auf dem Webserver noch irgendwas konfigurieren, damit das richtig angezeigt wird?

-> Anzumerken ist, dass bei bplaced alles tiptop läuft, die Datensätze werden ohne Probleme ausgelesen und angezeigt.

hi,

vielleicht hilft es, short expressions zu vermeiden :qst:

das führ öfter mal zu problemen.

also statt <?=$adr['KG']?> <?php echo $adr['KG']; ?> verwenden.

gruß

[quote=„emil“]hi,

vielleicht hilft es, short expressions zu vermeiden :qst:

das führ öfter mal zu problemen.

also statt <?=$adr['KG']?> <?php echo $adr['KG']; ?> verwenden.

gruß[/quote]

Hallo emil

Vielen Dank für deine Antwort.

Leider habe ich diese Form schon ausprobiert - ohne Erfolg…

Nun, der code den du gezeigt hast ist nicht der komplette code, nehme ich an.
z.B. gehst du hier von PHP direkt in HTML über ohne den PHP Bereich vorher zu schließen ("?>"). Das würde zu einem Syntaxfehler führen, wenn du es tatsächlich genau so dort stehen hast.

<?php while ($adr = mysql_fetch_array($adressen_query)){ <tr class="YELLOW">
Zum Problem:
Da in deinem Screenshot Zeilen angezeigt werden, können wir also davon ausgehen, dass Datensätze gefunden werden, sie aber nicht korrekt ausgegeben werden.
Ich vermute genau das selbe wie emil, dass du die shortsyntax verwendest, welche hier nicht aktiviert ist (und somit definitiv falsch). Die andere Variante sollte funktionieren (sofern du auch die korrekten Feldnamen verwendest, bitte achte auch auf korrekter Groß- und Kleinschreibung).
Bitte achte dabei dass du auch “<?php echo $adr['KG'] ?>” verwendest, und nicht etwa nur “<?php $adr['KG'] ?>”. Letzteres (ohne echo) funktioniert natürlich nicht.

Hast du darauf geachtet, und es klappt trotzdem nicht, dann zeig doch mal bitte den geänderten code (die ohne shortsyntax).

mfg Balmung

[quote=“Balmung”]Nun, der code den du gezeigt hast ist nicht der komplette code, nehme ich an.
z.B. gehst du hier von PHP direkt in HTML über ohne den PHP Bereich vorher zu schließen ("?>"). Das würde zu einem Syntaxfehler führen, wenn du es tatsächlich genau so dort stehen hast.

<?php while ($adr = mysql_fetch_array($adressen_query)){ <tr class="YELLOW">
Zum Problem:
Da in deinem Screenshot Zeilen angezeigt werden, können wir also davon ausgehen, dass Datensätze gefunden werden, sie aber nicht korrekt ausgegeben werden.
Ich vermute genau das selbe wie emil, dass du die shortsyntax verwendest, welche hier nicht aktiviert ist (und somit definitiv falsch). Die andere Variante sollte funktionieren (sofern du auch die korrekten Feldnamen verwendest, bitte achte auch auf korrekter Groß- und Kleinschreibung).
Bitte achte dabei dass du auch “<?php echo $adr['KG'] ?>” verwendest, und nicht etwa nur “<?php $adr['KG'] ?>”. Letzteres (ohne echo) funktioniert natürlich nicht.

Hast du darauf geachtet, und es klappt trotzdem nicht, dann zeig doch mal bitte den geänderten code (die ohne shortsyntax).

mfg Balmung[/quote]

Hallo Balmung

Vielen Dank für deine Antwort. Also liegt es doch an meinem Server, der die short expressions nicht versteht?

Ich habe deine Anweisungen befolgt und den Code nochmals überflogen. Das schliessende PHP-tag nach der while-Schleife war vorhanden.

Hier nun der Code:

<?php
	$mysqlhost="localhost";
	$mysqluser="user";
	$mysqlpwd="pw";
	$mysqldb="db"; 
		$connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen!");
		mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht wählen!");
		mysql_set_charset('utf8', $connection);
		$sql = "SELECT * FROM tbl_Aktiven ORDER BY KG, Konto ASC";
		$adressen_query = mysql_query($sql) or die("Anfrage nicht erfolgreich!");
		$anzahl = mysql_num_rows($adressen_query);
?>     
    <table cellpadding="5" cellspacing="0" border="1" width="90%" class="printable">
	<tr>
		<td id="kg" style="font-weight:bold; background-color:#B0B0B0;">KG</td>
		<td id="konto" style="font-weight:bold; background-color:#B0B0B0;">Konto</td>
		<td id="bezeichnung" style="font-weight:bold; background-color:#B0B0B0;">Bezeichnung</td>
		<td id="erlauterung" style="font-weight:bold; background-color:#B0B0B0;">Erläuterung</td>
		<td id="andern" style="font-weight:bold; background-color:#B0B0B0;"></td>
		<td id="loschen" style="font-weight:bold; background-color:#B0B0B0;"></td>
		<td id="checkbox" style="font-weight:bold; background-color:#B0B0B0;"><a class="Link" target="_blank" href="SelectDrucken.php?id=<? echo $adr['id']; ?>"><img src="print.gif" width="20" height="16" border="0" alt="drucken" align="right" style="margin-right:5px;"></a></td>
	</tr>
<?php
	while ($adr = mysql_fetch_array($adressen_query)){
		if($adr['KG'] <= 999 && $adr['Konto'] == ""){
?>
        <tr class="YELLOW">
            <td><?php echo $adr['KG']; ?></td>
            <td><?php echo $adr['Konto']; ?></td>
            <td><?php echo $adr['Bezeichnung']; ?></td>
            <td><?php echo $adr['Erläuterung']; ?></td>
			<td style="color:#999;"><a class="Link" href="UpdateAktiven.php?id=<?php echo $adr['id']; ?>"><img class="editPic" src="edkl.png" alt="Edit" /></a></td>
			<td style="color:#999;"><a class="Link" onClick="return confirm('Wollen Sie den Datensatz wirklich löschen?')" href="DeleteAktivenPHP.php?id=<?php echo $adr['id']; ?>"><img class="deletePic" src="delkl.png" alt="Delete" /></a></td>
			<td><input type="checkbox" name="auswahl[]" value="<?php $_GET['id']; ?>"></td>
        </tr>
    <?php
		} elseif($adr['KG'] >= 1000 && $adr['Konto'] == ""){
    ?>
        <tr class="GREEN">
            <td><?php echo $adr['KG']; ?></td>
            <td><?php echo $adr['Konto']; ?></td>
            <td><?php echo $adr['Bezeichnung']; ?></td>
            <td><?php echo $adr['Erläuterung']; ?></td>
			<td style="color:#999;"><a class="Link" href="UpdateAktiven.php?id=<?php echo $adr['id']; ?>"><img class="editPic" src="edkl.png" alt="Edit" /></a></td>
			<td style="color:#999;"><a class="Link" onClick="return confirm('Wollen Sie den Datensatz wirklich löschen?')" href="DeleteAktivenPHP.php?id=<?php echo $adr['id']; ?>"><img class="deletePic" src="delkl.png" alt="Delete" /></a></td>
			<td><input type="checkbox" name="auswahl[]" value="<?php $_GET['id']; ?>"></td>
        </tr>
     <?php
		} else {
		?>
         <tr>
            <td>&nbsp;</td>
            <td><?php echo $adr['Konto']; ?></td>
            <td><?php echo $adr['Bezeichnung']; ?></td>
            <td><?php echo $adr['Erläuterung']; ?></td>
			<td style="color:#999;"><a class="Link" href="UpdateAktiven.php?id=<?php echo $adr['id']; ?>"><img class="editPic" src="edkl.png" alt="Edit" /></a></td>
			<td style="color:#999;"><a class="Link" onClick="return confirm('Wollen Sie den Datensatz wirklich löschen?')" href="DeleteAktivenPHP.php?id=<?php echo $adr['id']; ?>"><img class="deletePic" src="delkl.png" alt="Delete" /></a></td>
			<td><input type="checkbox" name="auswahl[]" value="<?php $_GET['id']; ?>"></td>
        </tr>
        <?php
		}
		?>
    <?php
	}
	 ?>
    </table><br />
    
    <div style="text-align:center;">
	<?php
		echo "Anzahl der Datensätze: $anzahl";
	?>

Es funktioniert nun soweit alles. Vielen Dank euch beiden!

EDIT: Ich hätte da noch eine Frage und zwar fehlt mir der Ansatz für folgende Idee: Ich möchte, dass anfangs nur alle gelben Datensätze angezeigt werden. Klickt man dann auf einen gelben Datensatz, klappt dieser auf und alle dazugehörenden Datensätze werden angezeigt (grün). Klickt man nun auf einen grünen Datensatz innerhalb des gelben, klappt dieser auf und es erscheinen alle untergeordneten Datensätze des grünen Datensatzes.

Ich habe hier dazu einen Link: idheap.ch/srscspcp.nsf/mchby … lan&lng=de

hallo,

dies könnte man mit css lösen.

hast du das markup ordentlich gestaltet, z. b. mit listen oder verschachtelten tabellen, könntest du bei :focus die display-eigenschaft nutzen.

gruß