Fehler in dynamischem Formular

syntraxx

Mitglied
Hallo Leute

Ich habe da irgendwie eine Endlosschleife geschrieben. Ich weiss aber nicht genau wie ich das ändern soll. Vielleicht hat mir einer nen Tipp.
Hier das Skript:

PHP:
<?
$db = "XXXXXXXXXXXX";
$link = mysql_connect( "XXXXXXX", "XXXXXXXX", "XXXXXXXX" );
	mysql_select_db( $db );
$id = 1;

while ($anfrage = mysql_query ("SELECT * FROM produkte WHERE id='$id'"))
{
$zeile = mysql_fetch_row($anfrage);

// Tabelle ausgeben mit Formular
print ('
<form name="form" method="post" action="reg_cart.php">
<table width="600" border="0">
  <tr>
	<td width="70">'.$zeile[1].'</td>
	<td width="260">'.$zeile[2].'</td>
	<td width="40">CHF</td>
	<td width="60">'.$zeile[3].'</td>
	<td width="30"><input type="text" size="4" name="textfield" value="1"></td>
	<td width="140"><input type="submit" name="Submit" value="In Warenkorb legen"></td>
  </tr>
</table>
</form>
');
// Ende der Ausgabe

$id++;
}
mysql_close;
?>

Der PRINT Befehl soll nur so lange ausgeführ werden bis in der Tabelle keine Datensätze mehr vorhanden sind.

Gruss

Marc
 
Wenn du bei jedem Schleifendurchlauf eine neue Anfrage an die Datenbank sendest, dann ist das auch kein wunder :)
PHP:
<? 
$db = "XXXXXXXXXXXX"; 
$link = mysql_connect( "XXXXXXX", "XXXXXXXX", "XXXXXXXX" ); 
    mysql_select_db( $db ); 
$id = 1; 
$anfrage = mysql_query ("SELECT * FROM produkte WHERE id='$id'");
while ($zeile = mysql_fetch_row($anfrage)) 
{ 
// Tabelle ausgeben mit Formular 
print (' 
<form name="form" method="post" action="reg_cart.php"> 
<table width="600" border="0"> 
  <tr> 
    <td width="70">'.$zeile[1].'</td> 
    <td width="260">'.$zeile[2].'</td> 
    <td width="40">CHF</td> 
    <td width="60">'.$zeile[3].'</td> 
    <td width="30"><input type="text" size="4" name="textfield" value="1"></td> 
    <td width="140"><input type="submit" name="Submit" value="In Warenkorb legen"></td> 
  </tr> 
</table> 
</form> 
'); 
// Ende der Ausgabe 

$id++; 
} 
mysql_close; 
?>
 
Irgendwie wollte deine Lösung nicht ganz. Hab jetzt was anderes, aber relativ umständliches gemacht:

PHP:
<? 
$db = "XXXXXXXXXXXX"; 
$link = mysql_connect( "XXXXXXX", "XXXXXXXX", "XXXXXXXX" ); 
    mysql_select_db( $db ); 
$id = 1;
$query1 = "SELECT id FROM produkte";
$query2 = mysql_query($query1);
$query3 = mysql_num_rows($query2);


while ($id <= $query3)
{
$anfrage = mysql_query ("SELECT * FROM produkte WHERE id='$id'");

$zeile = mysql_fetch_row($anfrage);

// Tabelle ausgeben mit Formular
print ('
<form name="form" method="post" action="reg_cart.php">
<table width="600" border="0">
  <tr>
	<td width="70">'.$zeile[1].'</td>
	<td width="260">'.$zeile[2].'</td>
	<td width="40">CHF</td>
	<td width="60">'.$zeile[3].'</td>
	<td width="30"><input type="text" size="4" name="textfield" value="1"></td>
	<td width="140"><input type="submit" name="Submit" value="In Warenkorb legen"></td>
  </tr>
</table>
</form>
');
// Ende der Ausgabe

$id++;
}
mysql_close;
?>
 
Wieso nicht gleich:
PHP:
<?php

	$db = "XXXXXXXXXXXX";
	$link = mysql_connect( "XXXXXXX", "XXXXXXXX", "XXXXXXXX" );
	mysql_select_db( $db );

	$query = "
		SELECT
		        *
		  FROM
		        `produkte`
		";
	$result = mysql_query($query);

	while( $row = mysql_fetch_array($anfrage, MYSQL_NUM) ) {
	
		[…]
	}
	mysql_close();

?>
 
Zurück