Avatar billede tvj Nybegynder
05. januar 2001 - 20:36 Der er 26 kommentarer

Update...

Hej

Hvis nu jeg med php henter nogle ting ud fra en mysql database. Vi siger det ser sådan ud:

<html>

<head>
<meta http-equiv=\"Content-Language\" content=\"da\">
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 4.0\">
<meta name=\"ProgId\" content=\"FrontPage.Editor.Document\">
<title>Ny side 1</title>
</head>

<body>

<form method=\"POST\" action=\"--WEBBOT-SELF--\">
  <!--webbot bot=\"SaveResults\" U-File=\"fpweb:///_private/form_results.txt\"
  S-Format=\"TEXT/CSV\" S-Label-Fields=\"TRUE\" -->
  <p>DAS produkt1&nbsp; pris: <input type=\"text\" name=\"T7\" size=\"20\"> </p>
  <p>DAS produkt2&nbsp; pris: <input type=\"text\" name=\"T8\" size=\"20\"> </p>
  <p>DAS produkt3&nbsp; pris: <input type=\"text\" name=\"T9\" size=\"20\"> </p>
  <p>DAS produkt4&nbsp; pris: <input type=\"text\" name=\"T4\" size=\"20\"> </p>
  <p>DAS produkt5&nbsp; pris: <input type=\"text\" name=\"T10\" size=\"20\"> </p>
  <p>DAS produkt6&nbsp; pris: <input type=\"text\" name=\"T11\" size=\"20\"><input type=\"hidden\" name=\"id\" size=\"20\" value=\"id\" > </p>
  <p><input type=\"submit\" value=\"Opdater\" name=\"B1\"><input type=\"reset\" value=\"Nulstil\" name=\"B2\"></p>
</form>

</body>

</html>

Kan man så ikke sende sidens indhold til en php fil som køre det hele igennem og opdater felterne i databasen?

Man har selvfølgelig en hidden box med id\'en fra databasen. Jeg fatter også hvordan man henter fra databasenn of connecter. Men jeg ved ikke lige hvordan man laver så den modtager dataen og opdatere.... nogle der har et lille eksempel jeg kan se?
Avatar billede tvj Nybegynder
05. januar 2001 - 20:38 #1
mener

databasenn of connecter = databasen og connecter
Avatar billede stig3 Mester
05. januar 2001 - 20:56 #2
Avatar billede kornfreak Nybegynder
05. januar 2001 - 21:48 #3
Det bliver noget i stil med...

mysql_query(\"UPDATE felt set T7 = \'$T7\', T8 = \'$T8\' where id = \'$id\'\")

Avatar billede kornfreak Nybegynder
05. januar 2001 - 21:49 #4
T7 er navnet på feltet du vil opdatere $T7 er navnet på det felt du submitter i din form action og felt er navnet på den tabel hvor dine data er placeret!
Avatar billede tvj Nybegynder
05. januar 2001 - 21:52 #5
det er jo bare det...

men
mysql_query(\"UPDATE felt set T7 = \'$T7\', T8 = \'$T8\' where id = \'$id\'\")

vil jo blive gigantisk stor når jeg har 210 forskellige ting (produkter) der skal rettes pris på....
Avatar billede tvj Nybegynder
05. januar 2001 - 23:12 #6
tror ikke jeg har forklaret det tydelig nok

mine produkter bliver vist sådan:
echo \"<tr><td width=\\\"385\\\" bgcolor=\\\"$bgcolor\\\"><font size=\\\"2\\\" face=\\\"Verdana\\\">$row[2]</font></td><td width=\\\"60\\\" bgcolor=\\\"$bgcolor\\\" align=\\\"right\\\" ><font size=\\\"2\\\" face=\\\"Verdana\\\"><input type=\\\"hidden\\\" name=\\\"id\\\" value=\\\"$row[0]\\\"><input type=\\\"text\\\" name=\\\"pris\\\" size=\\\"6\\\" value=\\\"$row[3]\\\"></font></td></tr>\";
echo \"\";

Der kan altså blive vist xx antal (kommer an på hvilken kategori jeg vælger)

Filen jeg sender til skal altså køre alle igennem opdatere

UPDATE produkter SET pris = \'$pris\' WHERE id = \'$id\'

hvordan får man den til at køre alle sammen igennem på denne måde..?
Avatar billede emileej Nybegynder
05. januar 2001 - 23:21 #7
Er det rigtigt forstået, hvis jeg siger, at du vil \'gemme\' i databasen?
Avatar billede tvj Nybegynder
05. januar 2001 - 23:24 #8
nope jeg vil opdatere priser der er i databasen... det kan være jeg har misforståer hvordan man opdatere med php og mysql....
Avatar billede bjering Nybegynder
06. januar 2001 - 00:00 #9
du kan nok bruge det her...

<?

    mysql_connect($db_Hostname, $db_UserName, $db_Password);
    mysql_select_db($db_Database);


if($submit)
{
$query = mysql_query(\"UPDATE producter SET T7 = \'$T7\', T8 = \'$T8\', T9 = \'$T9\', T4 = \'$T4\', T10 = \'$T10\', T11 = \'$T11\' WHERE id = \'$id\'\");
$result = MYSQL_QUERY($query);
}
?>

<html>
<head>
<meta http-equiv=\"Content-Language\" content=\"da\">
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 4.0\">
<meta name=\"ProgId\" content=\"FrontPage.Editor.Document\">
<title>Ny side 1</title>
</head>
<body>
<form method=\"POST\" action=\"--WEBBOT-SELF--\">
  <!--webbot bot=\"SaveResults\" U-File=\"fpweb:///_private/form_results.txt\"
  S-Format=\"TEXT/CSV\" S-Label-Fields=\"TRUE\" -->
  <p>DAS produkt1&nbsp; pris: <input type=\"text\" name=\"T7\" size=\"20\"> </p>
  <p>DAS produkt2&nbsp; pris: <input type=\"text\" name=\"T8\" size=\"20\"> </p>
  <p>DAS produkt3&nbsp; pris: <input type=\"text\" name=\"T9\" size=\"20\"> </p>
  <p>DAS produkt4&nbsp; pris: <input type=\"text\" name=\"T4\" size=\"20\"> </p>
  <p>DAS produkt5&nbsp; pris: <input type=\"text\" name=\"T10\" size=\"20\"> </p>
  <p>DAS produkt6&nbsp; pris: <input type=\"text\" name=\"T11\" size=\"20\"><input type=\"hidden\" name=\"id\" size=\"20\" value=\"id\" > </p>
  <p><input type=\"submit\" value=\"Opdater\" name=\"B1\"><input type=\"reset\" value=\"Nulstil\" name=\"B2\"></p>
</form>
</body>
</html>

så skal filen hedde noget med pris.php3 eller hvad du vil kalde den.... og så ved target= skrive filnavnet...

dog utestet....

Men igen... hvad for man for 60 points :))

Jeg er ikke sikker på om du vil tage data´erne ud først ????

Bo
Avatar billede tvj Nybegynder
06. januar 2001 - 00:02 #10
Jeg skal bare have den her til at fatte der kommere flere end en post der skal opdateres:

<?php
$conn = mysql_connect(\"mysqlhos\", \"user\", \"password\");
mysql_select_db(\"database\");


mysql_query(\"UPDATE produkter SET pris = \'$pris\' WHERE id = \'$id\' \");




mysql_close($conn);
?>

Avatar billede tvj Nybegynder
06. januar 2001 - 00:04 #11
Ordet federøv gider jeg ikke at høre.... oppe på 150 points
Avatar billede tvj Nybegynder
06. januar 2001 - 00:06 #12
hvis i ser den her fatter i nok lidt mere:
http://www.vels.dk/data/admin/display-ret-produkt.php?katid=1
Avatar billede bjering Nybegynder
06. januar 2001 - 00:16 #13
okay... sådan her burde det kune gøres

<?

if($submit)

{

$db_Database = \"navn\";
$db_UserName = \"navn\";
$db_Password = \"kode\";
$db_Hostname = \"localhost\";

    mysql_connect($db_Hostname, $db_UserName, $db_Password);
    mysql_select_db($db_Database);

    $id = $id;

$query = mysql_query(\"UPDATE producter SET T7 = \'$T7\', T8 = \'$T8\', T9 = \'$T9\', T4 = \'$T4\', T10 = \'$T10\', T11 = \'$T11\' WHERE id = \'$id\'\");
$result = MYSQL_QUERY($query);

echo(\"Gemt\");

} else {

echo(\"Intet gemt\");

}

?>

Måske det virker.. stadig utestet, men prøv det..

Bo
Avatar billede bjering Nybegynder
06. januar 2001 - 00:20 #14
og jeg mente ikke du var en fedterøv :)
Avatar billede tvj Nybegynder
06. januar 2001 - 00:20 #15
Drop det første eksp jeg kom med i starten!!

Sådan hiver jeg produkterne ud:

<html>

<head>
<title>Tilbud Vare </title>
<base TARGET=\"_self\"></head>
<body bgcolor=\"#FFFFFF\" link=\"#0000FF\" vlink=\"#800080\">
<?php
$conn = mysql_connect(\"MYSQLHOST\", \"USER\", \"PASSWORD\");
mysql_select_db(\"DATABASE\");

echo \"<form NAME=\\\"retform\\\" form method=\\\"POST\\\" action=\\\"update-produkt.php\\\">\";
$kategori = mysql_query(\"select  * from kategori where id = $HTTP_GET_VARS[katid]\");




while ($row1 = mysql_fetch_array($kategori)) {
echo \"<b><center><font face=\\\"Verdana\\\" size=\\\"4\\\">$row1[1]<input type=\\\"hidden\\\" name=\\\"katid\\\" value=\\\"$row[1]\\\"></font></center></b>\";
}

echo \"<center><table BORDER=\\\"0\\\" CELLPADDING=\\\"0\\\" cellspacing=\\\"0\\\" width=\\\"550\\\">\";
    echo \"<tr>\";
      echo \"<th align=\\\"left\\\" width=\\\"385\\\"><font face=\\\"Verdana\\\" size=\\\"2\\\">Vare</font></th>\";
      echo \"<th width=\\\"60\\\"><font face=\\\"Verdana\\\" size=\\\"2\\\">Pris</font></th>\";
     
    echo \"</tr>\";

$bgcolor = \"E6E6E6\";

$result = mysql_query(\"select  * from produkter where katid = $HTTP_GET_VARS[katid] ORDER BY vare\");

while ($row = mysql_fetch_array($result)) {

echo \"<tr><td width=\\\"385\\\" bgcolor=\\\"$bgcolor\\\"><font size=\\\"2\\\" face=\\\"Verdana\\\">$row[2]</font></td><td width=\\\"60\\\" bgcolor=\\\"$bgcolor\\\" align=\\\"right\\\" ><font size=\\\"2\\\" face=\\\"Verdana\\\"><input type=\\\"hidden\\\" name=\\\"id\\\" value=\\\"$row[0]\\\"><input type=\\\"text\\\" name=\\\"pris\\\" size=\\\"6\\\" value=\\\"$row[3]\\\"></font></td></tr>\";
echo \"\";

if($bgcolor == \"E6E6E6\")
  $bgcolor = \"FFFFFF\";
else
  $bgcolor = \"E6E6E6\";

}
echo \"</table></center>\";
echo \"  </center></div>\";
echo \"<center><p><input type=\\\"submit\\\" value=\\\"Opdater\\\" name=\\\"B1\\\"></p</center>\";
echo \"</form>\";
echo \"</body>\";
echo \"</html>\";
mysql_close($conn);
?>

et eks på det:
(http://www.vels.dk/data/admin/display-ret-produkt.php?katid=1 )
Avatar billede bjering Nybegynder
06. januar 2001 - 00:29 #16
Det jeg skrev burde ellers virke... med opdatering... har du prøvet det overhovedet ????

ellers kan jeg altså ikke se hvad det er du vil have lavet
Avatar billede bjering Nybegynder
06. januar 2001 - 00:33 #17
der er vidst en fejl på din side

echo \"<form NAME=\\\"retform\\\" form method=\\\"POST\\\" action=\\\"update-produkt.php\\\">\";

prøv med

echo \"<form NAME=retform form method=POST action=update-produkt.php>\";

det er som om den ikke skriver de values ud til næste side... eller er det bare mig :)
Avatar billede bjering Nybegynder
06. januar 2001 - 00:38 #18
eller sådan her i display-ret-produkt.php

echo\"<input type=submit name=submit value=gem>\";
echo\"<input type=hidden name=gem value=gem>\";

og så i update-produkt.php

<?

$db_Database = \"navn\";
$db_UserName = \"navn\";
$db_Password = \"kode\";
$db_Hostname = \"localhost\";

    mysql_connect($db_Hostname, $db_UserName, $db_Password);
    mysql_select_db($db_Database);

if($gem)

{

    $id = $id;

$query = mysql_query(\"UPDATE producter SET T7 = \'$T7\', T8 = \'$T8\', T9 = \'$T9\', T4 = \'$T4\', T10 = \'$T10\', T11 = \'$T11\' WHERE id = \'$id\'\");
$result = MYSQL_QUERY($query);

echo(\"Gemt\");

} else {

echo(\"Intet gemt\");

}

?>

det burde sq virke.. :)
Avatar billede bjering Nybegynder
06. januar 2001 - 00:40 #19
sorry spammer lige

eller sådan her i display-ret-produkt.php

echo\"<input type=submit name=submit value=gem>\";
echo\"<input type=hidden name=gem value=gem>\";

og så i update-produkt.php

<?
if($gem)
{

$db_Database = \"navn\";
$db_UserName = \"navn\";
$db_Password = \"kode\";
$db_Hostname = \"localhost\";

    mysql_connect($db_Hostname, $db_UserName, $db_Password);
    mysql_select_db($db_Database);

    $id = $id;

$query = mysql_query(\"UPDATE producter SET T7 = \'$T7\', T8 = \'$T8\', T9 = \'$T9\', T4 = \'$T4\', T10 = \'$T10\', T11 = \'$T11\' WHERE id = \'$id\'\");
$result = MYSQL_QUERY($query);

echo(\"Gemt\");

} else {

echo(\"Intet gemt\");

}

?>
Avatar billede tvj Nybegynder
06. januar 2001 - 00:50 #20
virker ik :-((
Avatar billede bjering Nybegynder
06. januar 2001 - 00:56 #21
prøv det her

<?
if($gem)
{

$db_Database = \"navn\";
$db_UserName = \"navn\";
$db_Password = \"kode\";
$db_Hostname = \"localhost\";

    mysql_connect($db_Hostname, $db_UserName, $db_Password);
    mysql_select_db($db_Database);

    $id = $id;

$query = mysql_query(\"UPDATE producter SET pris = \'$pris\' WHERE id = \'$id\'\");
$result = MYSQL_QUERY($query);

echo(\"Gemt\");

} else {

echo(\"Intet gemt\");

}

?>

og meld tilbage om det virkede
Avatar billede bjering Nybegynder
06. januar 2001 - 00:57 #22
hvis det ikke virker så prøv at tilføje

  $id = $id;
  $pris = $pris;

Avatar billede bjering Nybegynder
06. januar 2001 - 01:11 #23
display-ret-produkt.php :


<html>
<head>
<title>Tilbud Vare </title>
<base TARGET=\"_self\"></head>
<body bgcolor=\"#FFFFFF\" link=\"#0000FF\" vlink=\"#800080\">
<?php
$conn = mysql_connect(\"MYSQLHOST\", \"USER\", \"PASSWORD\");
mysql_select_db(\"DATABASE\");

echo \"echo \"<form NAME=retform form method=POST action=update-produkt.php?id=$id&pris=$pris>\";
$kategori = mysql_query(\"select  * from kategori where id = $HTTP_GET_VARS[katid]\");




while ($row1 = mysql_fetch_array($kategori)) {
echo \"<b><center><font face=\\\"Verdana\\\" size=\\\"4\\\">$row1[1]<input type=\\\"hidden\\\" name=\\\"katid\\\"

value=\\\"$row[1]\\\"></font></center></b>\";
}

echo \"<center><table BORDER=\\\"0\\\" CELLPADDING=\\\"0\\\" cellspacing=\\\"0\\\" width=\\\"550\\\">\";
    echo \"<tr>\";
      echo \"<th align=\\\"left\\\" width=\\\"385\\\"><font face=\\\"Verdana\\\"

size=\\\"2\\\">Vare</font></th>\";
      echo \"<th width=\\\"60\\\"><font face=\\\"Verdana\\\" size=\\\"2\\\">Pris</font></th>\";
     
    echo \"</tr>\";

$bgcolor = \"E6E6E6\";

$result = mysql_query(\"select  * from produkter where katid = $HTTP_GET_VARS[katid] ORDER BY

vare\");

while ($row = mysql_fetch_array($result)) {

echo \"<tr><td width=\\\"385\\\" bgcolor=\\\"$bgcolor\\\"><font size=\\\"2\\\"

face=\\\"Verdana\\\">$row[2]</font></td><td width=\\\"60\\\" bgcolor=\\\"$bgcolor\\\" align=\\\"right\\\" ><font

size=\\\"2\\\" face=\\\"Verdana\\\"><input type=\\\"hidden\\\" name=\\\"id\\\" value=\\\"$row[0]\\\"><input

type=\\\"text\\\" name=\\\"pris\\\" size=\\\"6\\\" value=\\\"$row[3]\\\"></font></td></tr>\";
echo \"\";

if($bgcolor == \"E6E6E6\")
  $bgcolor = \"FFFFFF\";
else
  $bgcolor = \"E6E6E6\";

}
echo \"</table></center>\";
echo \"  </center></div>\";
echo \"<center><p><input type=submit name=submit value=gem><input type=hidden name=gem

value=gem></p</center>\";
echo \"</form>\";
echo \"</body>\";
echo \"</html>\";
mysql_close($conn);
?>


update-produkt.php :

<?
if($gem)
{

$db_Database = \"navn\";
$db_UserName = \"navn\";
$db_Password = \"kode\";
$db_Hostname = \"localhost\";

    mysql_connect($db_Hostname, $db_UserName, $db_Password);
    mysql_select_db($db_Database);

    $id = $id;
    $pris = $pris;

$query = mysql_query(\"UPDATE producter SET pris = \'$pris\' WHERE id = \'$id\'\");
$result = MYSQL_QUERY($query);

echo(\"Gemt\");

} else {

echo(\"Intet gemt\");

}

?>

her er det hele... prøv det hvis det stadig ikke virker :)
Avatar billede tvj Nybegynder
06. januar 2001 - 09:23 #24
Intet gemt :-((
Avatar billede soraz Nybegynder
06. januar 2001 - 12:33 #25
Hvis jeg forstå problemet korrekt, har du en række
produkter fra een kategori, som brugeren kan rette alle priser i på een gang.

I så fald har du brug for at din \"id\" variabel kan indeholde mere end een værdi. Som dit script er nu vil du formodentlig få f.eks 10 entries på url\'en med id=XX&pris=YY.

For at samle værdierne til et array skal du give din form-variabel et navn der slutter på [], dvs

f.eks

<input type=\"hidden\" name=\"id[]\" value=\"xx\">
<input type=\"text\" name=\"pris[]\" value=\"yy\">

i til action-script laver du så en løkke med:

while(list($key,$val) = each($id))
{
  mysql_query(\"update set pris=\".$pris[$key].\" where id=$val and kategori=blahblah\");
}


Avatar billede soraz Nybegynder
06. januar 2001 - 13:48 #26
Eksemplet er naturligvis \"proof-of-concept\",
fix selv sql\'en så den passer.

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