updaten via form

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Altin

Altin

10/07/2006 22:24:00
Quote Anchor link
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 :(
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
<?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 :)
 
PHP hulp

PHP hulp

17/11/2024 11:59:11
 
Frank -

Frank -

10/07/2006 22:27:00
Quote Anchor link
Waar controleer je of de query is gelukt? Nergens...

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 -
 
Altin

Altin

10/07/2006 22:32:00
Quote Anchor link
Eu kan je zeggen hoe je controleert of de querry gelukt is ?
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
 
Frank -

Frank -

10/07/2006 22:52:00
Quote Anchor link
mysql_query($query) or die(mysql_error()).

error_reporting(e^all) is fout, dit moet zijn:
error_reporting(E_ALL);

En zet dit op de eerste regel van je script.
 
Robert Deiman

Robert Deiman

10/07/2006 23:15:00
Quote Anchor link
$getit = mysql_query("SELECT name FROM content");


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..
 
Altin

Altin

11/07/2006 00:01:00
Quote Anchor link
Ik heb idd error_reporting(E_ALL); gezet, hij geeft geen errors (trouwes staat er in mijn php.in bestand ook om alle meldingen te tonen.
MAar kan iemand zeggen hoe het wel moet aub ?
Want ik kan er niks van :( bovestannde ode is ook niet door mij geschreven :(
 
Robert Deiman

Robert Deiman

11/07/2006 08:55:00
Quote Anchor link
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
<?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));
?>


<form name="update" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $_SERVER['PHP_SELF'] ?>
" method="post">
<input type="text" name="title" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $getit['name']; ?>
"/>
<input type="hidden" name="id" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $id ?>
"/>
<input type="submit" name="submit" />
</form>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

}

?>


Volgens mij moet dit werken..
 
Altin

Altin

11/07/2006 09:24:00
Quote Anchor link
Hij geeft dit :(
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 :)
 
Mark D

Mark D

11/07/2006 09:31:00
Quote Anchor link
$id = $_GET['id']

van regel 6 moet nog een ; achter
 
Altin

Altin

11/07/2006 09:35:00
Quote Anchor link
Parse error: parse error, unexpected '{' in C:\Server\Apache2\htdocs\arcadewelp\test.php on line 11

nu is er eentje op 11 :(
 
Mark D

Mark D

11/07/2006 09:42:00
Quote Anchor link
while ($all_data = mysql_fetch_array($select_all){

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
 
Altin

Altin

11/07/2006 09:46:00
Quote Anchor link
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 :(
 
Mark D

Mark D

11/07/2006 10:01:00
Quote Anchor link
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
<?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??
Gewijzigd op 01/01/1970 01:00:00 door Mark D
 
Altin

Altin

11/07/2006 10:08:00
Quote Anchor link
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 :)
 
Robert Deiman

Robert Deiman

11/07/2006 10:22:00
Quote Anchor link
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.
 
Mark D

Mark D

11/07/2006 10:24:00
Quote Anchor link
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.
 
Altin

Altin

11/07/2006 10:40:00
Quote Anchor link
En deze dan ?
mss slaat deze op meer, maar het werkt ook nog niet :(
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
<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
 
Mark D

Mark D

11/07/2006 10:47:00
Quote Anchor link
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.
 
Altin

Altin

11/07/2006 10:52:00
Quote Anchor link
Er moet toch wel een deftige manier ijn om dit te doen :P ? het wordt in elke cms gebruikt dacht ik ...
 
Robert Deiman

Robert Deiman

11/07/2006 11:22:00
Quote Anchor link
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.


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!
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 



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.