[Gelöst] [PHP/MYSQL] Endlose Schleife bei Datenbankabfrage

MCStreetguy

Stammuser
Hallo Community :)

Ich hab ein Problem auf meiner Internetseite :/
Ich habe eine register-queue also eine datenbank in der alle Benutzer gespeichert werden die sich registrieren wollen bis sie von einem admin bestätigt werden.
Ich möchte jetzt per PHP jeden Eintrag der Datenbank als Formular ausgeben.
Ich hab bisher folgendes:
PHP:
<h3>User Validation</h3>
	<?php
		# MySQL Data
		$db_host = "localhost";
		$db_user = "*benutzer*";
		$db_pass = "*passwort*";
		# Database Connect
		$dblink = mysql_connect($db_host, $db_user, $db_pass);
		if(!$dblink) {
			die("ERROR WHILE CONNECTING TO DATABASE!! ".mysql_error());
		}
		# Echo all Entries
		$dbquery = "SELECT username FROM `mcstreetguy`.`register_queue`";
		while ($entry = mysql_fetch_object(mysql_query($dbquery, $dblink))) { ?>
			<form method="post" action="log.php?validate" name="validate_user" id="validate_user">
				<p><?php echo $entry->username; ?> want's to create an account.</p>
				<input type="hidden" name="valuser" id="valuser" value="<?php echo $entry->username; ?>" />
				<input type="submit" name="val_submit" id="val_submit" value="Validate" class="submit_btn" />
			</form>
		<?php }
	?>

Das klappt überhaupt nicht...
Die Daten werden zwar empfangen, aber der Befehl wird endlos wiederholt :/

Weiß einer von euch was ich falsch mache?

Danke schonmal, MCStreetguy
 
Zuletzt bearbeitet:

dafuq

Stammuser
Dein Problem liegt darin, dass du deine Datenbank-Abfrage ständig in einer Schleife erneut ausführst, dadurch startet die Schleife nach jedem Durchlauf wieder bei Null.

Das hier...
PHP:
while ($entry = mysql_fetch_object(mysql_query($dbquery, $dblink))) { ?>

... sollte also eigentlich so aussehen:
PHP:
// Abfrage ausführen
$result = mysql_query($dbquery, $dblink);

// Ergebnisse zeilenweise verarbeiten
while ($entry = mysql_fetch_object($result)) { ?>

Und nur so nebenbei: die MySQL-Funktionen sind als veraltet markiert und werden wohl in späteren PHP-Versionen nicht mehr unterstützt sein, es empfiehlt sich also ein Umstieg auf MySQLi oder PDO.

mfg
 
Zuletzt bearbeitet:

MCStreetguy

Stammuser
Oh :D Vielen Dank ist mir gar nicht aufgefallen :)

Ja ich probiere im Moment nur ein bisschen aus :)
Ich weiß das MySQL veraltet ist und auf einer reellen Webseite mit einem wirklichen Nutzen würde ich auch andere Methoden benutzen.

Aber Danke nochmal für die schnelle und gute Antwort :)
 
F

Fluffy

Guest
Und ich breche dann auch gleich mal eine Lanze für Code-Qualität.
Es ist grundsätzlich eine schlechte Idee zuweisungsoperationen in einem Konditional vorzunehmen und das Ergebniss dieser Operation auszuwerten.

Bei größeren Projekten sieht man diese Zuweisungen einfach nicht mehr und es ist, was den Code angeht, unstrukturiert.
Gruß

Fluffy
 
Oben