Toon posts:

[PHP] Update meerdere rijden met een query ?

Pagina: 1
Acties:
  • 37 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een pagina waarop er gegevens getoond worden en die wijzigbaar zijn, alleen zodra ik de gegevens wijzig en submit druk werkt het niet.

De tabel bestaat uit meer dan 2 velden maar wil het eerst werkend hebben met alleen "id" en "deelnemers"

Er moet iets met een array gebeuren ik weet alleen niet wat, kan iemand mij verder helpen?

hier is de 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
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
[code]


<html>
<head>
<title>Gegevens Wijzigen</title>
</head>

<body>
<link rel="stylesheet" type="text/css" href="layout.css">
<?php  
include("data.inc");  
?>  

<?php 
if($_SERVER['REQUEST_METHOD']=='POST') 
{    
  for($i=0; $i< count($_POST['deelnemers']);$i++)
  {
     $sql =  "UPDATE project_objecten
             'SET deelnemers ='" . $_POST['deelnemers'][$i] . "
             WHERE id='" . $_POST['id']. "'";
     $query = mysql_query( $sql );
     if(!$query)
     {  
        echo "Er is iets fout gegaan:<br>\n" . mysql_error() .'<br>'.$sql;  
     }  
     
     else
     {  
       echo "Succes.".$_POST['deelnemers'].'<br>';  
     }  
  }
}    

?>   
<form method="POST">

<?php  
$sql = "SELECT * FROM Project_objecten WHERE deelnemers LIKE '%" . $_POST['gebruikersnaam'] . "%'";    
$query = mysql_query($sql);   
if (mysql_num_rows($query) != 0)  
{  
  echo '<table border="0" width="20%">';  
  while ($result = mysql_fetch_array($query)) // De gegevens worden in een tabel weergegeven
  {  
    echo '<td width="5%">';     
    echo "<input type=\"text\" name=\"id[]\" value=\"" . $result['id'] . "\">";  
    echo '</td>';  
    echo '<td width="15%">';      
    echo "<input type=\"text\" name=\"deelnemers[]\" value=\"" . $result['deelnemers'] . "\">";  
//  echo '</td>';  
//  echo '<td width="10%">';     
//  echo "<input type=\"text\" name=\"coach\" value=\"" . $result['coach'] . "\">";  
//  echo '</td>';  
//  echo '<td width="20%">';    
//  echo "<input type=\"text\" name=\"projectNaam\" value=\"" . $result['projectNaam'] . "\">";  
//  echo '</td>';  
//  echo '<td width="10%">';    
//  echo "<input type=\"text\" name=\"startDatum\" value=\"" . $result['startDatum'] . "\">";  
//  echo '</td>';  
//  echo '<td width="10%">';    
//  echo "<input type=\"text\" name=\"eindDatum\" value=\"" . $result['eindDatum'] . "\">";  
//  echo '</td>';  
//  echo '<td width="10%">';    
//  echo "<input type=\"text\" name=\"aantalDagen\" value=\"" . $result['aantalDagen'] . "\">";  
//  echo '</td>';  
//  echo '<td width="15%">';    
//  echo "<input type=\"text\" name=\"resultaat\" value=\"" . $result['resultaat'] . "\">";  
    echo '</td></tr>';  
  }  
  echo '</table>';  
}  
else   
{  
echo "<br>Er is nog geen verwante projectinformatie gevonden, Neem contact op met je Coach.";    
} 
echo '<pre>';
print_r($_POST);
echo '</pre>' 
?>  
<input name="submit" type="submit" value="submit">
</form>
</body>
</html>

Zodra ik het onderste veld wijzig krijg ik de volgende foutmeldingen:

UPDATE project_objecten 'SET deelnemers ='78 WHERE id='Array'Er is iets fout gegaan:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''SET deelnemers ='test WHERE id='Array'' at line
UPDATE project_objecten 'SET deelnemers ='test WHERE id='Array'

Ik vermoed dat het iets met de id te maken heeft.


-------------------------------------
echo '<pre>';
print_r($_POST);
echo '</pre>'

geeft dit aan:

Array
(
    [id] => Array
        (
            [0] => 59
            [1] => 58
            [2] => 60
            [3] => 61
            [4] => 62
            [5] => 63
            [6] => 64
            [7] => 65
            [8] => 66
            [9] => 67
            [10] => 68
            [11] => 69
            [12] => 70
            [13] => 71
            [14] => 72
            [15] => 73
            [16] => 74
            [17] => 75
            [18] => 76
        )

    [deelnemers] => Array
        (
            [0] => 78
            [1] => 78
            [2] => 78
            [3] => 78
            [4] => 78
            [5] => 78
            [6] => 78
            [7] => 78
            [8] => 78
            [9] => 78
            [10] => 78
            [11] => 78
            [12] => 78
            [13] => 78
            [14] => 78
            [15] => 78
            [16] => 78
            [17] => 78
            [18] => test
        )

    [submit] => submit
)

[/code]


Dit ziet er toch goed uit ?


Ik heb de search al gebruikt en kwam een paar topics tegen maar heb het juiste antwoord er niet in kunnen vinden.

[ Voor 66% gewijzigd door Verwijderd op 02-12-2004 10:04 ]


Verwijderd

haal die qoute eens weg in je query voor SET.

Lijkt me toch simpel debug werk

[edit 1]
Hij wordt dus zo

PHP:
1
2
3
 $sql =  "UPDATE project_objecten 
             SET deelnemers ='" . $_POST['deelnemers'][$i] . "' 
             WHERE id=" . $_POST['id'][$i];


dus ook een aanpassing bij je id

[edit 2]

er zat nog een typo in. nu zou die goed moeten zijn volgens mij...

[ Voor 80% gewijzigd door Verwijderd op 02-12-2004 10:10 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

$_POST['id'] -> $_POST['id'][$i]

neem ik aan :? anders snap ik je code niet :P

En wat Sooterd zegt natuurlijk :P

Je kunt natuurlijk zelf ook even je foutmeldingen bekijken....

[ Voor 39% gewijzigd door Bosmonster op 02-12-2004 10:07 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Wat Scooterd en Bosmonster zeggen dus :)

Als je de volgende keer ne query laat afdrukken als je hierover een foutmelding krijg is een stuk makkelijk zelf te achterhalen wat er mis zit in de query. Hierdoor had je zeer waarschijnlijk zelf de fout wel gezien :)

Zie ook P&W FAQ - Leer **** debuggen!!.

En vandaar dat je topic nu dicht is.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.