problemen met updaten naar database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Steven l

steven l

28/10/2007 23:53:00
Quote Anchor link
ik heb een contact pagina waarvan ik de gegevens opsla in een database

alle velden die ik uit die databse haal, wil ik weergeven (in een soort van tabel) met daarachter een slectievakje per nieuw contact. ik wil dus een soort van inbox maken. er komt een nieuwe aanvraag binnen en alle nieuwe aanvragen moeten in die tabel komen. daarvoor gebruik ik een veld "gelezen" dat oorspronkelijk op 0 staat.

nu mijn probleem:

als ik nu een selectievakje aanduid, gaat alleen het laatste weg(of dit nu aangeduid is of niet,speelt geen rol, het is altijd het laatste dat weg wordt gedaan(er meot er wel één aangeduid zijn))

dus eventjes in kort geschets

naam voornaam ... gelezen?
rik peeters ja
ief janssens ja
ivo mertens nee

in dit geval zou dus mertens weggaan, en de 2 ander blijven staan,terwijl het de twee andere zijn die weg moeten.

kunnen jullie me helpen?

mijn code van inbox.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
<?php session_start(); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<title>Rentaband - home</title>
<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<body>
<div align="center"><span class="RentabandBanner">Rentaband</span>
  
</div>
<div id="nav">
<table>
  <tr><td><a href= index.php>Home</a></td>
  <td><a href= theBands.php bands.php>The Bands</a></td>
  <td><a href= registreren.php>Registreren</a></td>
  <td><a href= inloggen.php>Inloggen</a></td>
  <td><a href= contact.php>Contact</a></td></tr>
 </table>
 
</div>

<div id="hoofdscherm_links_admin">
<div id= "nieuws_titel">Wat wilt u doen </div>
<div id="admin_keuze"><a href=inbox.php>inbox</a></div>
</div>

<div id="hoofdscherm_midden_admin">

  
<?php

include_once("include/Config.php");

$connectie = mysql_connect($GLOBALS["HOST"], $GLOBALS["USERNAME"], $GLOBALS["PASSWORD"]);

if (! $connectie) {
    die("Could not connect: " . mysql_error());
}


mysql_select_db($GLOBALS["DB_NAME"], $connectie);

// characterset op utf-8 plaatsen
$sql = "SET NAMES utf8";
mysql_query($sql);

//  opvragen van de niet gelezen berichten

$sql = "SELECT * FROM contacten WHERE gelezen=0";


echo "<table>";
echo"<tr><th>id</th><th>naam</th><th>adres</th><th>gemeente</th><th>telefoonnumer</th><th>emailadres</th><th>vraag</th></tr>";

$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
echo "<tr><td>" . $rij["id"] .
     "</td><td>" . $rij["naam"] . " " .$rij["voornaam"] .
     "</td><td>" . $rij["straat"] . " " .$rij["nummer"] .
     "</td><td>" . $rij["postcode"] . " " .$rij["gemeente"] .
     "</td><td>" . $rij["tel"] .
     "</td><td>" . $rij["emailadres"] .
     "</td><td>" . $rij["vraag"] .
     "</td><td>" ?>
<form name="verwerk_checkbox" method="post" action="inboxVerwerk.php" ><input name="gelezen"  type="checkbox"
     value=" <?php $rij["id"] ?>" /><?php
     "</td></tr><br />\n";
     $_SESSION["id"] = $rij["id"];
}




echo "</table>";
mysql_close($connectie);

?>


<input name="verwerk" type="submit" value="verwerk" />
</form>



         
  </div>



<div id="footer">Site designed by Steven Lasters</div>

</body>
</html>






de code van inboxVerwerk.php
<?php session_start(); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<title>Rentaband - home</title>
<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<body>
<div align="center"><span class="RentabandBanner">Rentaband</span>
  
</div>
<div id="nav">
<table>
  <tr><td><a href= index.php>Home</a></td>
  <td><a href= theBands.php bands.php>The Bands</a></td>
  <td><a href= registreren.php>Registreren</a></td>
  <td><a href= inloggen.php>Inloggen</a></td>
  <td><a href= contact.php>Contact</a></td></tr>
 </table>
 
</div>

<div id="hoofdscherm_links_admin">
<div id= "nieuws_titel">Wat wilt u doen </div>
<div id= "admin_keuze"><a href="inbox.php">inbox </a></div>
</div>

<div id="hoofdscherm_midden_admin">

  
<?php



// includen databasefuncties voor datum, null, ...
include_once("include/MySqlFunctions.php");

// connecteren met de server en database
include_once("include/Config.php");
$connectie = mysql_connect($GLOBALS["HOST"], $GLOBALS["USERNAME"], $GLOBALS["PASSWORD"]);
if (! $connectie) {
    die("Could not connect: " . mysql_error());
}

mysql_select_db($GLOBALS["DB_NAME"], $connectie);

// characterset op utf-8 plaatsen
$sql = "SET NAMES utf8";
mysql_query($sql);
$id = $_SESSION["id"];


// de tabel updaten door de gelezen berichten niet meer weer te geven


if (isset($_POST["gelezen"])) {



$sql = "UPDATE contacten
    SET gelezen=1
    WHERE id = $id"
;
    
echo "uw bericht(en) werd(en) verwerkt!<br />\n";
}
else {
echo "er werd niets geselecteerd of er is iets misgegaan<br />\n";
}

echo "<br />\n";
echo "<a href=\"inbox.php\">terug naar inbox</a>";

if (! mysql_query($sql, $connectie)) {
    die('Error: ' . mysql_error());
}


mysql_close($connectie);

?>



      </div>  

         
  </div>



<div id="footer">Site designed by Steven Lasters</div>

</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Steven l
 
PHP hulp

PHP hulp

29/03/2024 13:04:46
 
- SanThe -

- SanThe -

28/10/2007 23:59:00
Quote Anchor link
<input name="gelezen" type="checkbox"

Oftewel al je checkboxen hebben dezelfde naam. Maak daar een array() van dan kan je ze met foreach() uitlezen.

<input name="gelezen[]" type="checkbox"
 
Jan Koehoorn

Jan Koehoorn

29/10/2007 00:02:00
Quote Anchor link
Goed gevonden SanThe! Ik zat al een paar minuten naar die code te kijken...
 
Steven l

steven l

29/10/2007 00:03:00
Quote Anchor link
kan je me dan eventjes voort helpen?

ik ben niet zo goed met die foreach's en arrays.

alvast bedankt
 
Jan Koehoorn

Jan Koehoorn

29/10/2007 00:07:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        foreach ($_POST['gelezen'] as $val) {
            echo '<p>De checkbox ' . $val . ' was aangevinkt.</p>';
        }
    }

?>

Of, misschien beter:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        if (isset ($_POST['gelezen'])) {
            foreach ($_POST['gelezen'] as $val) {
                echo '<p>De checkbox ' . $val . ' was aangevinkt.</p>';
            }
        }
    }

?>

Ik weet niet zo uit mijn hoofd wat er gebeurt als er geen enkele checkbox is aangevinkt.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
- SanThe -

- SanThe -

29/10/2007 00:13:00
Quote Anchor link
Jan Koehoorn schreef op 29.10.2007 00:07:
Ik weet niet zo uit mijn hoofd wat er gebeurt als er geen enkele checkbox is aangevinkt.

Bij geen en bij één zal de foreach() protesteren.

Maar wat misschien simpeler is om alle id's in de update query in IN(...) te zetten. Dan heb je geen loop nodig.

Edit: Typo.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Jan Koehoorn

Jan Koehoorn

29/10/2007 00:14:00
Quote Anchor link
Quote:
Bij geen en bij één zal de foreach() protesteren.

Bij geen weet ik het inderdaad niet zeker, maar bij één lijkt het mij dat er een array met 1 element verstuurd zal worden via post? Ik zal eens testen...
Edit:
Edit:

Mijn vermoeden klopt. Bij geen 1 checkbox bestaat die array niet. Bij 1 checkbox aangevinkt wordt er een array met 1 element aangemaakt.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
- SanThe -

- SanThe -

29/10/2007 00:20:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        if (isset ($_POST['gelezen'])) {
            $sql = "UPDATE contacten
                      SET gelezen=1
                      WHERE id IN("
. implode(',', $_POST['gelezen']) . ")";
        }
    }

?>

De <form> tag staat ook niet goed, die staat in de while().
 
Jan Koehoorn

Jan Koehoorn

29/10/2007 00:21:00
Quote Anchor link
Nog even de code van mijn testopstelling:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
    ini_set ('display_errors', 1);
    error_reporting (E_ALL);
    require 'stats.php';
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Jan Koehoorn | Checkbox Array test</title>
    
    <link rel="stylesheet" type="text/css" media="screen" href="reset.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="oop.css" />
</head>

<body>
    <div id="container">
    <h1>Jan Koehoorn | Checkbox Array test</h1>
    <form method="post" action="#">
        <input name="test[]" type="checkbox" value="1" />
        <input name="test[]" type="checkbox" value="2" />
        <input name="test[]" type="checkbox" value="3" />
        <input type="submit" value="verzenden" />
    </form>
    <?php
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            if (isset ($_POST['test'])) {
                foreach ($_POST['test'] as $val) {
                    echo '<p>' . $val . '</p>';
                }
            }

            else {
                echo '<p>Vink iets aan</p>';
            }
        }

    ?>

    </div>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Steven l

steven l

29/10/2007 00:26:00
Quote Anchor link
kan je me nog eventjes uitleggen wat de bedoeling is van het volgende
sorry,ben een beginner en wil graag bijleren

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    ini_set ('display_errors', 1);
    error_reporting (E_ALL);
    require 'stats.php';
?>
 
Jan Koehoorn

Jan Koehoorn

29/10/2007 00:28:00
Quote Anchor link
Regel 4 mag je vergeten. Dat is voor de statistieken op mijn eigen site. Regel 2 en 3 zorgen er voor dat ik alle errors, warnings en notices te zien krijg, waardoor ik hopelijk beter ga scripten.
 
- SanThe -

- SanThe -

29/10/2007 00:29:00
Quote Anchor link
Daarmee zet je error_reporting aan. En require 'stats.php'; kan je weghalen want dat is Jan Koehoorn only gebruik.
 
Steven l

steven l

29/10/2007 00:30:00
Quote Anchor link
oke bedankt
 
Jan Koehoorn

Jan Koehoorn

29/10/2007 00:31:00
Quote Anchor link
Namens mijzelf en SanThe: graag gedaan ;-)
 
Steven l

steven l

29/10/2007 00:47:00
Quote Anchor link
toch nog een klein probleem
ik heb men code als volgt aangepast

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php session_start(); ?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<title>Rentaband - home</title>
<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<body>
<div align="center"><span class="RentabandBanner">Rentaband</span>

</div>
<div id="nav">
<table>
<tr><td><a href= index.php>Home</a></td>
<td><a href= theBands.php bands.php>The Bands</a></td>
<td><a href= registreren.php>Registreren</a></td>
<td><a href= inloggen.php>Inloggen</a></td>
<td><a href= contact.php>Contact</a></td></tr>
</table>

</div>

<div id="hoofdscherm_links_admin">
<div id= "nieuws_titel">Wat wilt u doen </div>
<div id="admin_keuze"><a href=inbox.php>inbox</a></div>
</div>

<div id="hoofdscherm_midden_admin">


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

include_once("Config.php");

$connectie = mysql_connect($GLOBALS["HOST"], $GLOBALS["USERNAME"], $GLOBALS["PASSWORD"]);

if (! $connectie) {
    die("Could not connect: " . mysql_error());
}


mysql_select_db($GLOBALS["DB_NAME"], $connectie);

// characterset op utf-8 plaatsen
$sql = "SET NAMES utf8";
mysql_query($sql);

//  opvragen van de niet gelezen berichten

$sql = "SELECT * FROM contacten WHERE gelezen=0";


echo "<table>";
echo"<tr><th>id</th><th>naam</th><th>adres</th><th>gemeente</th><th>telefoonnumer</th><th>emailadres</th><th>vraag</th></tr>";

?>
<form method="post" action="#">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

$resultaat
= mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
echo "<tr><td>" . $rij["id"] .
     "</td><td>" . $rij["naam"] . " " .$rij["voornaam"] .
     "</td><td>" . $rij["straat"] . " " .$rij["nummer"] .
     "</td><td>" . $rij["postcode"] . " " .$rij["gemeente"] .
     "</td><td>" . $rij["tel"] .
     "</td><td>" . $rij["emailadres"] .
     "</td><td>" . $rij["vraag"] .
     "</td><td>" ?>


<input name="test[]" type="checkbox" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $rij["id"] ?>
" />

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
     "</td></tr><br />\n";
     $_SESSION["id"] = $rij["id"];
}




echo "</table>";

?>

<input type="submit" value="verzenden" />
</form>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            if (isset ($_POST['test'])) {
                foreach ($_POST['test'] as $val) {
                    echo '<p>' . $val . '</p>';
                    $sql = "UPDATE contacten
                     SET gelezen=1
                     WHERE id = $val"
;
                }
            }

            else {
                echo '<p>Vink iets aan</p>';
            }
        }

mysql_close($connectie);

?>





</div>



<div id="footer">Site designed by Steven Lasters</div>

</body>
</html>

hij geeft geen fout als ik iets aanduid maar hij doeet ook niet(nu zou hij toch de value al moeten laten zien toch?)

asl ik niets aanduid geeft hij wel dat ik iets aan moet vinken
 
- SanThe -

- SanThe -

29/10/2007 00:55:00
Quote Anchor link
Je voert de query niet uit.
 
Steven l

steven l

29/10/2007 00:57:00
Quote Anchor link
wat bedoel je daarmee?
 
- SanThe -

- SanThe -

29/10/2007 01:08:00
Quote Anchor link
$sql = "UPDATE contacten
SET gelezen=1
WHERE id = $val";
mysql_query($sql) or die(mysql_error());
 
Steven l

steven l

29/10/2007 01:12:00
Quote Anchor link
nee,nog niet

volgens mij heeft het iets met de value van het formulier te maken,alleen wete ik niet wat

als ik er een value invul bv 51 ipv <php $rij["id"] ?> lukt het wel.
Gewijzigd op 01/01/1970 01:00:00 door steven l
 
- SanThe -

- SanThe -

29/10/2007 01:28:00
Quote Anchor link
Ik snap niet wat je nou bedoelt.

Edit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $rij["id"] ?>

Zet er eens echo bij.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $rij["id"]; ?>
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Steven l

steven l

29/10/2007 11:16:00
Quote Anchor link
ja,het marcheert volledig

dank je wel voor jullie hulp
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.