sql record updaten
Maar ik duik er wel weer even in, het is alleen boven mijn kunnen krijg ik het idee.
Want het formulier moet goed zijn, probleem zit hem in die query. Nu alleen de oorzaak en oplossing bedenken. Wat makkelijker gezegt dan gedaan is.
Controleer bijv. of alle post data van je formulier goed aankomt bij het script waar je query staat. Als dat goed is kun je uitsluiten dat het aan je formulier ligt.
Echo die $sql eens, en kijk of je query er ingevuld uit er zo uit ziet als je verwacht.
Op die manier kun je waarschijnlijk hier ook duidelijkere info geven over wat er misgaat, en je leert er ook veel van. :)
Het is moeilijk fouten zoeken als je niet weet waar of wat er fout gaat ...
@ Koen : Wat er precies fout gaat, het formulier word ten eerste al niet meer weergegeven en krijg direct de foutmelding van het script dat er iets is met de database. Nu denk ik dat het ligt waar het script de gegevens selecteerd met SELECT. Ik dacht dat ik eerst alleen met de UPDATE functie en dan het formulier er al was als je dan ook het ID invult zodat het overschreven word.
Maar ik begreep later uit andere scripts dat je ook alles moet selecteren om dat voor elkaar te krijgen.
Hierbij nogmaals de code :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$id = (!empty($_POST['id'])) ? $_POST['id'] : 0;
$UpdateQuery = "UPDATE
vangaart_nieuws
SET
titel='".mysql_real_escape_string($_POST['titel'])."' ,
datum='".mysql_real_escape_string($_POST['datum'])."' ,
url='".mysql_real_escape_string($_POST['url'])."' ,
bericht='".mysql_real_escape_string($_POST['bericht'])."'
WHERE
id=".$id;
$resultaat = mysql_query($UpdateQuery) or die(mysql_error());
if ($resultaat) {
echo "Het bericht is geupdate";
} else {
echo "Bericht updaten is mislukt!";
}
} else { // er is niet op post geklikt
$titel = (!empty($_POST['titel'])) ? $_POST['titel'] : '';
$sql = "SELECT titel, datum, url, bericht FROM vangaart_nieuws WHERE id = ".$_POST['id'];
if(!$result = mysql_query($sql))
{
echo "<b>Database probleem.</b><br> Probeer het nog een keer of neem contact op met de webmaster";
}
else
{
if(mysql_num_rows($result) == 0)
{
echo "Er is geen bericht gekozen";
}
else
{
$gegevens = mysql_fetch_assoc($result);
?>
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$id = (!empty($_POST['id'])) ? $_POST['id'] : 0;
$UpdateQuery = "UPDATE
vangaart_nieuws
SET
titel='".mysql_real_escape_string($_POST['titel'])."' ,
datum='".mysql_real_escape_string($_POST['datum'])."' ,
url='".mysql_real_escape_string($_POST['url'])."' ,
bericht='".mysql_real_escape_string($_POST['bericht'])."'
WHERE
id=".$id;
$resultaat = mysql_query($UpdateQuery) or die(mysql_error());
if ($resultaat) {
echo "Het bericht is geupdate";
} else {
echo "Bericht updaten is mislukt!";
}
} else { // er is niet op post geklikt
$titel = (!empty($_POST['titel'])) ? $_POST['titel'] : '';
$sql = "SELECT titel, datum, url, bericht FROM vangaart_nieuws WHERE id = ".$_POST['id'];
if(!$result = mysql_query($sql))
{
echo "<b>Database probleem.</b><br> Probeer het nog een keer of neem contact op met de webmaster";
}
else
{
if(mysql_num_rows($result) == 0)
{
echo "Er is geen bericht gekozen";
}
else
{
$gegevens = mysql_fetch_assoc($result);
?>
De velden in het form hebben als value bv :
en hebben allemaal een hidden field :
Je hoeft ook geen alleskunner te zijn, dat ben ik ook niet. :)
Wat ik probeerde aan te geven is, dat je zelf al kunt testen hoe en waar het misgaat. Dan kun je ook beter aangeven waar het misgaat.
Dus controleren of de info van het formulier wordt gepost, of de waarde van bijv. $sql ook daadwerkelijk de query is die jij voor ogen had, aangezien je er info vanuit het formulier voor gebruikt.
nu heb ik het volgende script :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
$dbHost = "localhost";
$dbUser = "****";
$dbPass = "****";
$dbName = "****";
function dbConnect(){
global $dbHost, $dbUser, $dbPass, $dbName;
$connection = mysql_connect($dbHost,$dbUser,$dbPass) or die (mysql_error());
mysql_select_db($dbName) or die (mysql_error());
return $connection;
}
function dbDisconnect($connection){
mysql_close($connection);
}
if($_POST['submit'])
{
if(isset($_POST['bericht']))
{
$query = "UPDATE vangaart_nieuws SET bericht = '".$_POST['bericht']."' WHERE `id` = '".$_POST['titel']."'";
$sql = mysql_query($query) or die(mysql_error());
print("Nieuw bericht is ".$_POST['bericht']."");
}
else
{
print("Geen bericht ingevoerd! Niets gewijzigd!");
}
}
else
{
?>
<form name="wijzig_bericht" action="index.php?page=test" method="post">
Selecteer bericht:
<select name="titel">
<?php
$query = "SELECT * FROM vangaart_nieuws";
$sql = mysql_query($query);
while($record = mysql_fetch_object($sql))
{
echo"<option value =".$record->id.">".$record->titel."</option>";
}
?>
</select>
Nieuw bericht: <br>
<textarea name="bericht" cols="40" rows="10"></textarea>
<input type="submit" name="submit" value="Aanpassen">
</form>
<?php } ?>
$dbHost = "localhost";
$dbUser = "****";
$dbPass = "****";
$dbName = "****";
function dbConnect(){
global $dbHost, $dbUser, $dbPass, $dbName;
$connection = mysql_connect($dbHost,$dbUser,$dbPass) or die (mysql_error());
mysql_select_db($dbName) or die (mysql_error());
return $connection;
}
function dbDisconnect($connection){
mysql_close($connection);
}
if($_POST['submit'])
{
if(isset($_POST['bericht']))
{
$query = "UPDATE vangaart_nieuws SET bericht = '".$_POST['bericht']."' WHERE `id` = '".$_POST['titel']."'";
$sql = mysql_query($query) or die(mysql_error());
print("Nieuw bericht is ".$_POST['bericht']."");
}
else
{
print("Geen bericht ingevoerd! Niets gewijzigd!");
}
}
else
{
?>
<form name="wijzig_bericht" action="index.php?page=test" method="post">
Selecteer bericht:
<select name="titel">
<?php
$query = "SELECT * FROM vangaart_nieuws";
$sql = mysql_query($query);
while($record = mysql_fetch_object($sql))
{
echo"<option value =".$record->id.">".$record->titel."</option>";
}
?>
</select>
Nieuw bericht: <br>
<textarea name="bericht" cols="40" rows="10"></textarea>
<input type="submit" name="submit" value="Aanpassen">
</form>
<?php } ?>
Nu wordt het menu weergegeven om de titel te selecteren en het tekstvak, alleen het menu om de titel te selecteren geeft niet de titels weer die in de tabel staan...
Anyone ?
Nou ben je weer aan het * bumpen *
vraag juist of iemand ziet waar het probleem zit dat er in het keuze menu niet de titels weer gegeven worden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php lijkt mij niet de juiste methode.
Ik vraag me af of het op deze manier nog wel werkt.
Ik had dat laatste stuk zelf alsvolgt gedaan:
[code]<?php
//voorafgaande code
else
{
echo "
<form name='wijzig_bericht' action='index.php?page=test' method='post'>
Selecteer bericht:
<select name='titel'>";
$query = "SELECT * FROM vangaart_nieuws";
$sql = mysql_query($query);
while($record = mysql_fetch_object($sql))
{
echo"<option value =".$record->id.">".$record->titel."</option>";
}
echo "
</select>
Nieuw bericht: <br>
<textarea name='bericht' cols='40' rows='10'></textarea>
<input type='submit' name='submit' value='Aanpassen'>
</form>
}
?>
Ik vraag me af of het op deze manier nog wel werkt.
Ik had dat laatste stuk zelf alsvolgt gedaan:
[code]<?php
//voorafgaande code
else
{
echo "
<form name='wijzig_bericht' action='index.php?page=test' method='post'>
Selecteer bericht:
<select name='titel'>";
$query = "SELECT * FROM vangaart_nieuws";
$sql = mysql_query($query);
while($record = mysql_fetch_object($sql))
{
echo"<option value =".$record->id.">".$record->titel."</option>";
}
echo "
</select>
Nieuw bericht: <br>
<textarea name='bericht' cols='40' rows='10'></textarea>
<input type='submit' name='submit' value='Aanpassen'>
</form>
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Wim