Avatar billede butcher Nybegynder
24. september 2003 - 13:00 Der er 7 kommentarer og
1 løsning

Opdater database fra form

Yes den har været oppe før, men det driller alligevel lidt :)

Jeg har en update.htm med følgende:

<form name="update" method="post" action="op.php">
find produkt, der skal opdateres
  <input name="update" type="text" id="idnr">
<input type="submit" name="Submit" value="Submit">
</form>

så langt så godt, så ha jeg naturligvis min op.php som ser sådan her ud:

<?php
$con=mysql_connect("localhost", "root", "xxx")or die("Connect Error: ".mysql_error());
$db="flow";
mysql_select_db($db, $con);
// Request the data
$result = @mysql_query("SELECT * FROM pile WHERE nr = '$_REQUEST[idnr]'");
if (!$result) {
echo("<p>Error performing query: " . mysql_error() . "</p>");
exit(); }
// Display the data
while ( $row = mysql_fetch_array($result) ) {
?>
<center>
<B> Ret i databasen:</B><BR><BR>
<form action="<?=$PHP_SELF;?>" method="POST" name="form">
<table width="65%" border="5" cellspacing="2" cellpadding="5">

<tr><td><B>Nr:</B></td><td>
<B><input type="text" name="nr" maxlength="12"  size = "40" value="<?=$row[nr];?>"></B></td></tr>
<tr><td><B>Name:</B></td><td>
<B><input type="text" name="name" maxlength="35" size = "40" value="<?=$row[name];?>"></B></td></tr>
<tr><td><B>Size:</B></td><td>
<B><input type="text" name="size" maxlength="40"  size = "40" value="<?=$row[size];?>"></B></td></tr>
<tr><td><B>Page:</B></td><td>
<B><input type="text" name="page" maxlength="8"  size = "40" value="<?=$row[page];?>"></B></td></tr>
<tr><td><B>Ean:</B></td><td>
<B><input type="text" name="ean" maxlength="35"  size = "40" value="<?=$row[ean];?>"></B></td></tr>
<tr><td><B>pieces:</B></td><td>
<B><input type="text" name="pieceseur" maxlength="35"  size = "40" value="<?=$row[pieceseur];?>"></B></td></tr>
<tr><td><B>Netto:</B></td><td>
<B><input type="text" name="netto" maxlength="35"  size = "40" value="<?=$row[netto];?>"></B></td></tr>
</table>
<BR>
<input type="hidden" name="id" value="<?echo $_REQUEST[id];?>">
<input type="submit" value="opdatér" name="update">
</form>
<?php
}
if(isset($update)){
$SQL = "UPDATE pile SET nr = '$nr', name = '$name', size = '$size', page = '$page', ean = '$ean', pieceseur = '$pieceseur', netto = '$netto    ' WHERE nr = $id";
mysql_query($SQL);
}
mysql_close();
?>

Men den trækker ikke data ud fra den forrige side, bruger jo også en form der, mange andre bruger et link hvor id er i. Så der er nok noget galt med $result = @mysql_query("SELECT * FROM pile WHERE nr = '$_REQUEST[idnr]'"); og andre linier der omhandler dette, men hvad?? :)
Avatar billede htm Nybegynder
24. september 2003 - 13:06 #1
Dit input felt hedder update...

$result = @mysql_query("SELECT * FROM pile WHERE nr = '$_REQUEST[update]'");
Avatar billede butcher Nybegynder
24. september 2003 - 13:09 #2
ahh yes korrekt, nu kommer der også data, men den vil ikke opdatere..
Avatar billede htm Nybegynder
24. september 2003 - 13:11 #3
if(isset($_REQUEST[update])){
Avatar billede butcher Nybegynder
24. september 2003 - 13:16 #4
Hmm korrekt, men stadig noget galt.

Jeg kigger på følgende linier:

<input type="hidden" name="id" value="<?echo $_REQUEST[id];?>"> .. den skal jeg vel ikke ha med, da jeg ikke har en id kolonne i min tabel

og hvad med:

$SQL = "UPDATE pile SET nr = '$nr', name = '$name', size = '$size', page = '$page', ean = '$ean', pieceseur = '$pieceseur', netto = '$netto    ' WHERE nr = $id";

hvor kommer $id fra .. ??
Avatar billede butcher Nybegynder
24. september 2003 - 13:27 #5
ok så har jeg tilføjet id til min tabel, nok en god ide at ha den med, da jeg senere skal bruge den, så nu ser min kode sådan her ud:

<?php
$con=mysql_connect("localhost", "root", "xxx")or die("Connect Error: ".mysql_error());
$db="flow";
mysql_select_db($db, $con);
// Request the data
$result = @mysql_query("SELECT * FROM pile WHERE nr = '$_REQUEST[update]'");
if (!$result) {
echo("<p>Error performing query: " . mysql_error() . "</p>");
exit(); }
// Display the data
while ( $row = mysql_fetch_array($result) ) {
?>
<center>
<B> Ret i databasen:</B><BR><BR>
<form action="<?=$PHP_SELF;?>" method="POST" name="form">
<table width="65%" border="5" cellspacing="2" cellpadding="5">

<tr><td><B>Nr:</B></td><td>
<B><input type="text" name="nr" maxlength="12"  size = "40" value="<?=$row[nr];?>"></B></td></tr>
<tr><td><B>Name:</B></td><td>
<B><input type="text" name="name" maxlength="35" size = "40" value="<?=$row[name];?>"></B></td></tr>
<tr><td><B>Size:</B></td><td>
<B><input type="text" name="size" maxlength="40"  size = "40" value="<?=$row[size];?>"></B></td></tr>
<tr><td><B>Page:</B></td><td>
<B><input type="text" name="page" maxlength="8"  size = "40" value="<?=$row[page];?>"></B></td></tr>
<tr><td><B>Ean:</B></td><td>
<B><input type="text" name="ean" maxlength="35"  size = "40" value="<?=$row[ean];?>"></B></td></tr>
<tr><td><B>pieces:</B></td><td>
<B><input type="text" name="pieceseur" maxlength="35"  size = "40" value="<?=$row[pieceseur];?>"></B></td></tr>
<tr><td><B>Netto:</B></td><td>
<B><input type="text" name="netto" maxlength="35"  size = "40" value="<?=$row[netto];?>"></B></td></tr>
<input type="hidden" name="id" value="<?echo $_REQUEST[id];?>"> 
</table>
<BR>
<input type="submit" value="opdatér" name="update">
</form>
<?php
}
if(isset($_REQUEST[update])){
$SQL = "UPDATE pile SET nr = '$nr', name = '$name', size = '$size', page = '$page', ean = '$ean', pieceseur = '$pieceseur', netto = '$netto    ' WHERE nr = $id";
mysql_query($SQL);
}
mysql_close();
?>

men den vil stadig ikke opdatere :S
Avatar billede butcher Nybegynder
24. september 2003 - 13:55 #6
hvis jeg smider WHERE nr = $_REQUEST[update]" så bliver alt data nulstillet i den kolonne, dvs. den opdatere, men får ikke data fra form med..
Avatar billede butcher Nybegynder
24. september 2003 - 14:02 #7
nå jeg laver en ny en
Avatar billede htm Nybegynder
24. september 2003 - 18:11 #8
Du skal have $_REQUEST på alle felter også. Men kan se at du har fået det løst.

Takker for point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

BEC Financial Technologies

Development Manager for Document Lifecycle

Capgemini Danmark A/S

Client Partner

Capgemini Danmark A/S

AI/Data Engineer