Hi All,

Ik was een beetje aan het oefenen met data toe te voegen in db middels een form door een tutorial. Nu is dat gelukt. Ik kan het toevoegen.
Maar dan zie ik nog oude gegevens. Plus dat als je zinloos op submit blijft drukken die een stukje geschiedenis mee pakt. Ik bedoel hiermee, Hij loopt 1 of 2 submit achter. Als ik nu a invoer dan zie ik nog k van de vorige invoer terwijl als ik in mysql db ga kijken, dan is dat veld wel degelijk geupdate.

Dus ik wil dat de pagina automatisch refreshed zodat de ingevoerde data weer zichtbaar is.

Weet iemand daar een oplossing op ?
Ikke niet :(

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<?php
include('requires/connect_db.php');
$getinfo1 = "SELECT site_id, site_name, site_luck FROM site";
$result1 = mysql_query($getinfo1);
while ($row = mysql_fetch_assoc($result1)){
$site_name1 = $row['site_name'];
$site_luck = $row['site_luck'];
}
echo $site_name1;
echo '<br>'.	$num_sites;
echo '<br>'.$site_luck;
?>
<form method="post" action="">
<input type="text" name="site2" value="<?php echo $site_luck ?>">
<input type="hidden" name="nr" value="refresh">
<input type="submit" name="submitchange1" value="Do it">
</BODY>
</HTML>
<?php
if (isset($_POST['submitchange1'])) {
$update = $_POST['site2'];
$change_db ="UPDATE site SET site_luck='".$update."'";
$do_it = mysql_query($change_db) or die (mysql_error());
mysql_close();
}
?>
Er is onbekend wélk record er in het formulier staat


Dat niet
Je doet op regel 11 een SELECT zonder enige vorm van ORDER BY en op regel 20 pak je het eerste resultaat. Aangezien het dus niet gesorteerd is kan dit elk record zijn. En dat komt in de echo op regel 43.
Aha, nu snap ik hem...
Dan gaan we sorteren he ;)
Zie edit.
Ja, nu staat er altijd hetzelfde record in het formulier. Maar wat nou als je een ander record wilt aanpassen? De opzet is gewoon niet goed.
Ai, daar gaat ik even over nadenken ;)


EDIT

<html>
    <head>
        <title>Pagina titel</title>
    </head>
    
    <body>
        <?php
        include('requires/connect_db.php');
        
        // Alles uit de database halen
        $sql = mysql_query("SELECT site_id, site_name, site_luck FROM site ORDER BY site_id ASC");
            
        // Als query gelukt is
        if($sql)
        {
            // Als er items aanwezig zijn
            if(mysql_num_rows($sql) > 0)
            {
				// Als er op submit is  gedrukt en de naam van die submit is form1
				if($_SERVER['REQUEST_METHOD'] == 'POST')
				{
					$rec = mysql_fetch_array($sql)
                
					// Als er op submit is gedrukt
					if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['form2']))
					{
						// Updaten (mysql_real_escape_string doet de beveiliging)
						$upd = mysql_query("UPDATE site SET site_luck = '".mysql_real_escape_string($_POST['site2'])."'");
						
						// Als de query is gelukt
						if($upd)
						{
							echo 'Er is geüpdate';
						}
						else // Anders
						{
							echo 'Er is een fout opgetreden bij de query: <br />';
							echo mysql_error();
						}
					}
					else // Anders
					{            
						// Het formulier
						echo '<form method="post" action="">';
							echo '<input type="text" name="site2" value="'.$_POST['site1'].'">';
							echo '<input type="hidden" name="nr" value="refresh">';
							echo '<input type="submit" name="form2" value="Verzenden">';
						echo '</form>';
					}
				}
				else // Anders
				{
					echo 'Selecteer hieronder welk item u wilt wijzigen: <br />';
					
					// Lijst met te wijzigen items d.m.v een formulier en while loop
					echo '<form method="post" action="">';
						echo '<select name="site1">';
							while($rec = mysql_fetch_array($sql))
							{
								echo '<option value="'.$rec['site_luck'].'">'.$rec['site_luck'].'</option>';
							}
						echo '</select>';
						
						echo '<input type="submit" value="Verzenden">';
					echo '</form>';
				}
            }
            else // Anders
            {
                echo 'Er zijn geen items aanwezig';
            }
        }
        else // Anders
        {
            echo 'Er is een fout opgetreden bij de query: <br />';
            echo mysql_error();
        }
        ?>
    </body>
</html>



Nu moet je eerst kiezen welke je wilt updaten...
Heb niet getest...

Begrijp je nu eigenlijk wat er gebeurt?

Reageren