Gästebuch Admin Bereich Problem

MR_L0oNY

Grünschnabel
Hallo

ich bin gerade dabei PHP mithilfe eines Buches zu lernen und muss leider feststellen, dass die meisten Scripts in diesem Buch Fehler erhalten.
Ich hab ein Gästebuch programiert und komme an dieser Stelle nicht weiter:
PHP:
<html>
	<head>
		<title>
			Admin Bereich
		</title>
	</head>
	<body>
		<div align ="center">
			<h2>
				Admin Bereich
			</h2>
			<table widht="300">
				<tr>
					<td>
						<?php
							error_reporting (e_all);
							include ('include.php');
							$db = @MYSQL_CONNECT ($server, $user, $passwort) or die (mysql_error());
							$db_select = @MYSQL_SELECT_DB ($datenbank)or die (mysql_error());
							$result = mysql_query ("SELECT * FROM gaestebuch WHERE freigabe != 'ja'" ) or die (mysql_error());
							$menge = mysql_num_rows($result) or die (mysql_error());
							while ($row = mysql_fetch_row ($result)); //während  row = 
							{
						?>
					<fieldset style="width:390px; border-color:#2f5faf; border-width:1px">
						<legend><span>
						<?php
							if ($row[6] == "mittel")  //wenn spalte 6  = mittel
							{
								echo '<img src="mittel.gif" width="30" />'; //ausgabe ==mittel
							}
							if ($row[6] == "gut")
							{
								echo '<img src="gut.gif" width="30" />';
							}
							if ($row[6] =="schlecht")
							{
								echo '<img src="schlecht.gif" width="30" />';
							}
						?>
						<?php echo $row[4]; ?>  <!--ausgabe überschrift-->
						</span></legend>
						<table width="390" border="0" align="center" cellspacing="3" cellspadding ="4" class="ansicht">
							<tr>
								<td valign="top"colspan="2">
								<?php echo $row[5]; ?><!--ausgabe kommentar-->
								</td>
							</tr>
							<tr>
								<td valign="top" colspan="2">
								Geschrieben von: 
								<?php
								if ($row[2] == '') //wenn kein name angegeben dann
								{
								echo $row[1]; //ausgabe von name 
								}
								else		//sonst
								{
								?>
									<a href="mailto:<? echo $row[2];  ?>"><!--link zu angegebener mail-->
									<? echo $row[1]; // ausgabe name?></a>
									<?
										}
									if ($row[3] == '') //wenn homepage leer dann
									{
									echo ''; //ausgabe nichts 
									}
									else //sonst
									{
								?>
									<a href="<? echo $row[3]; ?>">zur Homepage</a> <!--link zu homepage-->
								<?php
								}
								?>
								</td>
							<tr>
						</table>
					</fieldset>
					<br />
					<table width="300">
						<tr>
							<td>
								<form action="loeschen.php?id=<?php echo $row[0]; ?>"; method="POST" >
									<input type ="submit" value = "l&ouml;schen" />
									<input type ="hidden" name="id" value="<?php echo $row[0]; ?>" />
								</form>
							</td>
							<td>
								<form action ="freigabe.php?id=
								<?php echo $row[0]; ?>"; method ="post">
									<input type="submit" value="freigeben">
									<input type="hidden" name="id" value="<?php echo $row[0]; ?>" />
								</form>
							</td>
						</tr>
					</table>
					<?php
					}
					?>
					</td>
				</tr>
			</table>
		</div>
	</body>
</html>

das ist der Adminbereich, wo die Einträge aus der MySQL Datenbank zum freischalten angezeigt werden sollen, aber nicht angezeigt werden.
Ich hab durch die Komentare versucht das Problem zu finden, bin aber gescheitert.

Ich versteh auch die Bedingung bei der WHILE schleife nicht ganz.
Wieso haben die Autoren auf einmal ein @ bei der Verbindungsaufbau vor den MySQL befehlen gesetzt.

Ich hab schon die Daten in der Datenbank überprüft, sie sind vorhanden, die Freigabe ist auch auf nein gesetzt, ich weis einfach nicht wieso nichts ausgegeben wird.

Danke im vorraus für die Hilfe
 
Was für Fehler kommen denn?
Die @ Zeichen vor einer Funktion unterdrücken die Fehlerausgabe. Das wird in dem Fall gemacht da bei der rückgabe false (Fehlerfall) auch der mysql_error abgefragt wird und damit die PHP Fehlerausgabe nicht nötig ist
 
Was für Fehler kommen denn?
Die @ Zeichen vor einer Funktion unterdrücken die Fehlerausgabe. Das wird in dem Fall gemacht da bei der rückgabe false (Fehlerfall) auch der mysql_error abgefragt wird und damit die PHP Fehlerausgabe nicht nötig ist

Es kommen keine Fehler, ich hab schon hinter jede SQL Anweiseung "or die mysql_error()" geschrieben in der Hoffnung das er mir ein Fehler ausgibt, aber wie gesagt keine Fehler, ich seh einfach das leere HTML-Formular und nicht den Inhalt der da drin stehn soll.
 
Gib trotzdem mal
PHP:
echo mysql_error();
hinter deine SQL-anweisungen und entferne die @s, die unterdrücken nämlich Fehler, wie meine Vorredner bereits sagt.
Anonsten bist du dir sicher, dass du die richtige Tabelle hast, bzw. Einträge in der Tabelle sind?
 
Ich habe alle @ entfernt und nichts hat funktionier bis ich in den Zeilen

PHP:
  $menge = mysql_num_rows($result) or die (mysql_error());
                            while ($row = mysql_fetch_row ($result)); //während  row = 
                            {
                        ?>
                    <fieldset style="width:390px; border-color:#2f5faf; border-width:1px">

das while entfernt habe, dann wurde alles auf einmal angezeigt.

Ich danke allen die versucht haben mir zu helfen, das Thema ist für mich erledigt.
 
Zurück