Hallo,

Ik heb een vreemd probleem.
Ik heb een script waar ik mijn database mee kan update.
Dit werkt perfect.
Alleen in mijn formulier worden de database waardes niet goed weergeven
Als er 2 woorden in de tabel staan word alleen het eerste woord weergeven.
Weet iemand hoe ik dat kan oplossen?

Want als ik nu bijvoorbeeld maar 1 regel wil aanpassen en een andere regel bevat bv Jan klaassen.
Veranderd dit in 'Jan'

Dit is mijn scipt:

<?php
$sql = "SELECT * FROM `tabel' WHERE ID='1'";

$result = mysql_query( $sql, $db );
while( $row = mysql_fetch_array( $result )) {


echo "<form action=update.php method=post>";
echo "<table width=600 border=1>";
echo "<tr><td width=230 align=right><span class=style2>ID:</span></td>";

echo "<td width=370><input type=text name=ID value=" . $row['ID'] . "></td>";
echo "</tr><tr><td align=right><span class=style2>Regel1:</span></td>";
echo "<td><input type=text name=regel1 id=regel1 value=" . $row['regel1'] . " ></td>";
echo "</tr><tr><td align=right><span class=style2>Regel2</span></td>";
echo "<td><input type=text name=regel2 id=ragel2 value=" . $row['regel2'] . "></td>";
echo "</tr><tr><td align=right><span class=style2>Prijs:</span></td>";
echo "<td><input type=text name=prijs id=prijs value=" . $row['prijs'] . "></td>";
echo "</tr><td>" . "<input type=submit name=update value=update" . " </td>";
echo "<td>" . "<input type=hidden name=ID value=" . $row['ID'] . "</td>";
echo "</form>
</table>";
}
?>
Oké, ik heb even gekeken.

Volgens mij heb jij de foutmeldingen niet aan staan. Zet dit dan altijd bovenaan in je script:
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>

Op regel vijf mag je direct de database selecteren:
<?php
$db = mysqli_connect ($host, $user, $password, $database);
?>
Dit is anders ten opzichte van de mysql_ functies.
Regel 7 mag dan ook komen te vervallen.

Verder staat er op regel 21 nog UPDATE tabel in plaats van UPDATE middelbeers.
Regel 21 klopt want ik heb per ongeluk mijn andere database verwijderd.

Als ik dit script:

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
require_once("info.php");
$db = mysqli_connect ($host, $user, $password, $dbnaam) or die ("Kan geen verbinding maken met de database ");

// indien dit bestand in de POST methode wordt aangeroepen is het formulier verstuurd.
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    // GEBRUIK GEEN mysql_ meer maar gebruik mysqli_ of PDO !!!
    
 
    
  $result = mysqli_query($db, "UPDATE middelbeers SET regel1='".mysqli_real_escape_string($_POST['regel1'])
                                            ."', regel2='".mysqli_real_escape_string($_POST['regel2'])
                                            ."', prijs='".mysqli_real_escape_string($_POST['prijs'])
                                            ."' WHERE id=".intval($_POST['id']));
      
	                        
    if($result === FALSE)
        throw new Exception('Update naar tabel mislukt.' . mysqli_error($db));
        
    // optioneel voor een update is een redirect.
    else
        echo('Reclame Bijgewerkt!');
}


$sql = "SELECT * FROM middelbeers WHERE ID=1";
$result = mysqli_query($db, $sql);

// gebruik mysql_fetch_assoc()! mysql_fetch_array() gebruikt dubbel zoveel geheugen. 
$row = mysqli_fetch_assoc($result);

if($row === FALSE)
{
    throw new Exception('Geen record gevonden in de tabel.');
    exit;
}


?>
<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Untitled Document</title>
        <style>
            .labels {
              float:left;
              line-height: 25px;
              width: 70px;
              background-color: #CCC;
            }
            
            .form {
              float:left;
              line-height: 25px;
              width: 70px;Zaz
              margin-left:3px;
            }
            
            .clear {
              clear:both;
            }
    </style>
    </head>
    
    <body>
    	
        <form action="" method="post"> <!-- waarom naar update.php? -->
            <div class="labels">
                <label for="id" >ID:</label><br>
                <label for="regel1" >Regel 1:</label><br>
                <label for="regel2" >Regel 2:</label><br>
                <label for="prijs" >Prijs:</label>
            </div>
            <div class="form">
                <input type="text" id="ID" name="ID" value="<?php echo $row['ID']; ?>" /> <!-- singleton, dus />  -->
                <input type="text" id="regel1" name="regel1" value="<?php echo $row['regel1']; ?>" />
                <input type="text" id="regel2" name="regel2" value="<?php echo $row['regel2']; ?>" />
                <input type="text" id="prijs" name="prijs" value="<?php echo $row['prijs']; ?>" />
                <textarea type="text" rows="5" cols="50" id-"test" name="test"><?php echo $row['test']; ?></textarea>
                <input type="hidden" name="ID" value="<?php echo $row['ID']; ?>" />
                <input type="submit" value="update" />
            </div>
            <div class="clear"></div>
        </form>
    </body>
</html>


krijg ik de volgende fout meldingen:
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in F:\PHP\data\localweb\MYSQL\update1.php on line 14

Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in F:\PHP\data\localweb\MYSQL\update1.php on line 15

Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in F:\PHP\data\localweb\MYSQL\update1.php on line 16

Notice: Undefined index: id in F:\PHP\data\localweb\MYSQL\update1.php on line 17
Beste Jurgen, zou je in het vervolg de scripts die je in dit topic plaatst tussen [code] en [/code] willen plaatsen? Dan zijn ze beter leesbaarder voor iedereen. Alvast bedankt!

- Over de meldingen over mysqli_real_escape_string, je dient twee parameters op te geven. De eerste verwijst naar de variabele van je connectie, en de tweede bevat je input, zoals je nu gebruikt.
- Verder lijkt er geen 'id' mee te zijn gekomen via je $_POST.
mysqli_real_escape_string heeft 2 parameters nodig en jij geeft er 1.


<?php
mysqli_real_escape_string(PARA1, PARA2);
?>


Of ook wel:


<?php
mysqli_real_escape_string($db, $_POST['waarde']);
?>


Volgens mij kan je dit btw ook op google vinden...
Peter bedankt voor je reactie.
Wat denk je dat ik al 3 uur aan het doen ben?
Ik zeg GOOGLe weet alles.
Maar ik kon het effe niet vinden.
Bedankt

Reageren