Ik heb de titel van mijn site opgeslagen op een database. En ik kan hem ook weergeven op de site, maar nu wil ik hem kunnen bewerken via een forumlier ...
Ik heb tot nu toe dit; maar het werkt niet :(
<?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 :)
Notice: Undefined index: request_method in C:\Server\Apache2\htdocs\arcadewelp\test.php on line 9

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 :(
<?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));
}
?>

Werkt het zo wel??
op deze regel:$getit = mysql_fetch_array(mysql_query("SELECT name FROM content WHERE id =".$id));
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 :)
Dat zou ik afraden, ik zou toch wel een soort van id(identifier gebruiken, een getal) Hetgene wat je nu probeerd te veranderen is in feite je Id, je sleutel, zoals je het wilt.
NIET DOEN, maak een kolom id, zet hem op int, auto_increment, maak daar je key van, en dan het script gebruiken.
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.
En deze dan ?
mss slaat deze op meer, maar het werkt ook nog niet :(
<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();
?>


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 schreef op 11.07.2006 10:24
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.


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!

Reageren