updaten via form
Ik heb tot nu toe dit; maar het werkt niet :(
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
include('config.php');
if(isset($_POST['submit']))
{
$getit = mysql_query("SELECT name FROM content");
$title = stripslashes($_POST['title']);
$query = mysql_query("UPDATE content SET name='$title' WHERE name='$getit'");
echo "Your title has been updated!";
}
else
{
?>
<form name="update" action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<input type="text" name="title" />
<input type="submit" name="submit" />
</form>
<?php
}
?>
include('config.php');
if(isset($_POST['submit']))
{
$getit = mysql_query("SELECT name FROM content");
$title = stripslashes($_POST['title']);
$query = mysql_query("UPDATE content SET name='$title' WHERE name='$getit'");
echo "Your title has been updated!";
}
else
{
?>
<form name="update" action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<input type="text" name="title" />
<input type="submit" name="submit" />
</form>
<?php
}
?>
Weet iemand hoe dit te doen ?
De tabel bestaat uit 2 dinge: naam en content; ik wil de content veranderen waar de naam='title' (dus bij cntent wordt de eigenlijke titel opgeslagen ...
KAn iemand helen ?
Bij voorbaat dank :)
Waar is error_reporting(E_ALL); gebleven? Waar komen $title en $getit vandaan? Superglobals?
Kortom, ga eens debuggen.
Edit: $title en $getit heb ik gevonden, maar ook deze staan in een stukje bijzonder brakke code waar van alles fout zal gaan.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
ik ben echt een beginner, allen de form komt van mij, :(
rest is van iemand anders :(
/edit: hij geeft trouwes geen errors, heb die error_reporting(e^all) erbij gezet
Gewijzigd op 01/01/1970 01:00:00 door Altin
error_reporting(e^all) is fout, dit moet zijn:
error_reporting(E_ALL);
En zet dit op de eerste regel van je script.
En jij denkt dat je hier een naam mee terug krijgt?
- De query zelf retourneerd ALLE namen uit content
- Je haalt de data niet op: waar is de mysql_fetch functie??
Loop de code nog eens goed door en doe inderdaad nog eens wat aan foutafhandeling..
MAar kan iemand zeggen hoe het wel moet aub ?
Want ik kan er niks van :( bovestannde ode is ook niet door mij geschreven :(
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
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
<?php
error_reporting(E_ALL);
include('config.php');
if (isset($_GET['id']) && is_numeric($_GET['id'])){
$id = $_GET['id']
}
if(!$_SERVER['request_method']) {
$select_all = mysql_query("SELECT id,name FROM content");
while ($all_data = mysql_fetch_array($select_all){
echo '<a href="'.$_SERVER['PHP_SELF'].'?id='.$data['id'].'">'.$data['naam'].'</a><br>';
}
}
if($_SERVER['request_method']=="POST")
{
$id=$_POST['id'];
$title = stripslashes($_POST['title']);
$query = mysql_query("UPDATE content SET name='$title' WHERE id='$id'");
echo "Your title has been updated!";
}
elseif($_SERVER['request_method']=="GET")
{
$getit = mysql_fetch_array(mysql_query("SELECT name FROM content WHERE id =".$id));
?>
error_reporting(E_ALL);
include('config.php');
if (isset($_GET['id']) && is_numeric($_GET['id'])){
$id = $_GET['id']
}
if(!$_SERVER['request_method']) {
$select_all = mysql_query("SELECT id,name FROM content");
while ($all_data = mysql_fetch_array($select_all){
echo '<a href="'.$_SERVER['PHP_SELF'].'?id='.$data['id'].'">'.$data['naam'].'</a><br>';
}
}
if($_SERVER['request_method']=="POST")
{
$id=$_POST['id'];
$title = stripslashes($_POST['title']);
$query = mysql_query("UPDATE content SET name='$title' WHERE id='$id'");
echo "Your title has been updated!";
}
elseif($_SERVER['request_method']=="GET")
{
$getit = mysql_fetch_array(mysql_query("SELECT name FROM content WHERE id =".$id));
?>
<form name="update" action="" method="post">
<input type="text" name="title" value=""/>
<input type="hidden" name="id" value=""/>
<input type="submit" name="submit" />
</form>
Volgens mij moet dit werken..
Parse error: parse error, unexpected '}' in C:\Server\Apache2\htdocs\arcadewelp\test.php on line 7
5-7:
if (isset($_GET['id']) && is_numeric($_GET['id'])){
$id = $_GET['id']
}
bedankt :)
van regel 6 moet nog een ; achter
nu is er eentje op 11 :(
veranderen in
while ($all_data = mysql_fetch_array($select_all)){
doet ie het nu wel??
Gewijzigd op 01/01/1970 01:00:00 door Mark D
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Server\Apache2\htdocs\arcadewelp\test.php on line 11
Notice: Undefined index: request_method in C:\Server\Apache2\htdocs\arcadewelp\test.php on line 17
Notice: Undefined index: request_method in C:\Server\Apache2\htdocs\arcadewelp\test.php on line 24
eu er zijn er nog een paar dus :( sorry voor de overlast :(
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
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
<?php
error_reporting(E_ALL);
$connect = mysql_connect("localhost","darkmdmn_mark","test");
mysql_select_db("lol",$connect);
if (isset($_GET['id']) && is_numeric($_GET['id'])){
$id = $_GET['id'];
}
if(!$_SERVER['REQUEST_METHOD']) {
$select_all = mysql_query("SELECT id,name FROM content");
while ($all_data = mysql_fetch_array($select_all)){
echo '<a href="'.$_SERVER['PHP_SELF'].'?id='.$data['id'].'">'.$data['naam'].'</a><br>';
}
}
if($_SERVER['REQUEST_METHOD']=="POST")
{
$id=$_POST['id'];
$title = stripslashes($_POST['title']);
$query = mysql_query("UPDATE content SET name='$title' WHERE id='$id'");
echo "Your title has been updated!";
}
elseif($_SERVER['REQUEST_METHOD']=="GET")
{
$getit = mysql_fetch_array(mysql_query("SELECT name FROM content WHERE id =".$id));
}
?>
error_reporting(E_ALL);
$connect = mysql_connect("localhost","darkmdmn_mark","test");
mysql_select_db("lol",$connect);
if (isset($_GET['id']) && is_numeric($_GET['id'])){
$id = $_GET['id'];
}
if(!$_SERVER['REQUEST_METHOD']) {
$select_all = mysql_query("SELECT id,name FROM content");
while ($all_data = mysql_fetch_array($select_all)){
echo '<a href="'.$_SERVER['PHP_SELF'].'?id='.$data['id'].'">'.$data['naam'].'</a><br>';
}
}
if($_SERVER['REQUEST_METHOD']=="POST")
{
$id=$_POST['id'];
$title = stripslashes($_POST['title']);
$query = mysql_query("UPDATE content SET name='$title' WHERE id='$id'");
echo "Your title has been updated!";
}
elseif($_SERVER['REQUEST_METHOD']=="GET")
{
$getit = mysql_fetch_array(mysql_query("SELECT name FROM content WHERE id =".$id));
}
?>
Werkt het zo wel??
Gewijzigd op 01/01/1970 01:00:00 door Mark D
krijg ik nu dit:
Notice: Undefined variable: id in C:\Server\Apache2\htdocs\arcadewelp\test.php on line 26
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Server\Apache2\htdocs\arcadewelp\test.php on line 26
Ik heb geen id in mijn tabel trouwes ...
het moet iets zijn zoals (in woorden): update content waar name='title'
nogmaals bedankt :)
NIET DOEN, maak een kolom id, zet hem op int, auto_increment, maak daar je key van, en dan het script gebruiken.
Als Request_method GET is wordt $id gebruikt maar niet gemaakt omdat REQUEST METHOD geen post is, dus die if en elseif kloppen niet. Die krijg je zo niet werkend.
mss slaat deze op meer, maar het werkt ook nog niet :(
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
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
<strong>Update multiple rows in mysql</strong><br>
<?php
error_reporting(E_ALL);
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="lserver"; // Mysql password
$db_name="phparcadefree"; // Database name
$tbl_name="main_conf"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
// Count table rows
$count=mysql_num_rows($result);
?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<tr>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Content</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><? $id[]=$rows['name']; ?><? echo $rows['name']; ?></td>
<td align="center"><input name="name[]" type="text" id="name" value="<? echo $rows['content']; ?>"></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this
if($Submit){
for($i=0;$i<$count;$i++){
$sql1="UPDATE $tbl_name SET content='$content[$i]' WHERE name='$name[$i]'";
$result1=mysql_query($sql1);
}
}
if($result1){
header("location:update_multiple.php");
}
mysql_close();
?>
<?php
error_reporting(E_ALL);
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="lserver"; // Mysql password
$db_name="phparcadefree"; // Database name
$tbl_name="main_conf"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
// Count table rows
$count=mysql_num_rows($result);
?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<tr>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Content</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center"><? $id[]=$rows['name']; ?><? echo $rows['name']; ?></td>
<td align="center"><input name="name[]" type="text" id="name" value="<? echo $rows['content']; ?>"></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this
if($Submit){
for($i=0;$i<$count;$i++){
$sql1="UPDATE $tbl_name SET content='$content[$i]' WHERE name='$name[$i]'";
$result1=mysql_query($sql1);
}
}
if($result1){
header("location:update_multiple.php");
}
mysql_close();
?>
ik krijg dit:
Notice: Undefined index: Submit in C:\Server\Apache2\htdocs\arcadewelp\update2.php on line 52
Notice: Undefined variable: result1 in C:\Server\Apache2\htdocs\arcadewelp\update2.php on line 58
Zelfde als bovenstaande, in eerste if worden variabelen gemaakt die in de 2e if worden gebruikt, alleen wordt er maar 1 van de 2 if's uitgevoerd.
Er moet toch wel een deftige manier ijn om dit te doen :P ? het wordt in elke cms gebruikt dacht ik ...
Mark:
Dr klopt niet echt veel van dat script vindt ik, $id wordt aangemaakt in een if, en wordt gebruikt in een elseif, als request method POST is wordt id aangemaakt en is de elseif niet van toepassing dus $id wordt niet gebruikt.
Als Request_method GET is wordt $id gebruikt maar niet gemaakt omdat REQUEST METHOD geen post is, dus die if en elseif kloppen niet. Die krijg je zo niet werkend.
Als Request_method GET is wordt $id gebruikt maar niet gemaakt omdat REQUEST METHOD geen post is, dus die if en elseif kloppen niet. Die krijg je zo niet werkend.
Dan mag je het nog een keer opnieuw lezen
Wanneer er geen post of get is, krijg je een lijstje met titels, die ook een link is naar de ?id= pagina, als het if(get) is krijg je het formulier te zien voor de betreffende id, (een hidden field waar dat id in staat!)
en als je die dan verzend, kom je in de if(post) ruimte, waar die de database update.
Misschien dat het wat ingewikkeld lijkt, maar het zou prima moeten werken (mits je dus een Id in je database gebruikt)
Edit:
alleen de inhoud van die laatste elseif( ) in het bedoelde script, moet in de allereerste if (de uitvoer van de query) maar verder zie ik niet waarom het volgens jou zo niet kan werken!
alleen de inhoud van die laatste elseif( ) in het bedoelde script, moet in de allereerste if (de uitvoer van de query) maar verder zie ik niet waarom het volgens jou zo niet kan werken!
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman