Avatar billede simm Nybegynder
19. februar 2003 - 22:08 Der er 5 kommentarer og
1 løsning

PHP og forms

Jeg er ved at lave et lille system, så en person uden html erfaring kan opdatere bil-priser via PHP og HTML-forms.
Mit problem er, at jeg ikke kan finde ud af at få overført variablerne fra et php-script til et andet - har prøvet både med $_POST, $_GET og sessions - uden held. Så jeg vil gerne have en løsningsmodel :)

I en fil - functions.php - har jeg alle centrale functions, deriblandt

--- functions.php ---

function UpdateData($id){
$query = mysql_query("UPDATE salg where id='$id' SET id='$id', bilmarke='$_POST[bilmaerke]', aargang='$_POST[aargang]', antal_km='$_POST[antal_km]', pris='$_POST[pris]'") or die("Kunne ikke opdatere post i databasen. Prøv senere eller kontakt din hjemmesideudbyder, hvis problemet fortsætter.");
-- function.php end --

-- rediger.php --
<?php

include_once ("functions.php");
$minicms = new MiniCMS();
$minicms->dbconnect("localhost", "", "", "skovlund");
$data = mysql_query("select * from salg");

$action = isset($_POST["action"]) ? $_POST["action"] : "";
$get_sql_id = @mysql_query("select * from salg where id='$_REQUEST[id]'");

while ($query = mysql_fetch_row($data)){
    print ("<table><tr>");
    print ("<td><a href=\"rediger.php?id=$query[0]\">$query[0]</a></td><td>$query[1]</td><td>$query[2]</td><td>$query[3]</td><td>$query[4]</td>");
    print ("</tr></table>"); }

if (isset($_POST["submit"])) {
    $id = $_POST['id'];
    $minicms->UpdateData($id); }
   
while ($query = mysql_fetch_row($get_sql_id)){
    ?>
<p>Herunder er de data, der er anført for den bil, du har valgt at ændre oplysninger på</p>
<form method="post" action="rediger.php?id=<? echo $query[0] ?>">
<input type='text' name="id" value="<? echo $query[0] ?>">
<input type='text' name='bilmaerke' value='<?php echo $query[1] ?>'>
<input type='text' name='aargang' value='<?php echo $query[2] ?>'>
<input type='text' name='antal_km' value='<?php echo $query[3] ?>'>
<input type='text' name='pris' value='<?php echo $query[4] ?>'>
<input type='submit' name='submit' value='ret'>
    <?php
}
mysql_close();
?>
--

Problemet er, at uanset hvad jeg gør, så opdaterer den ikke databasen.. Jeg tror det er fordi jeg gør noget forkert, mht. at overføre id-variablen til function UpdateData(), men jeg får ikke nogen form for fejlmeddelelse, så det er ekstremt svært at fejlsøge!

Mit id er sat til auto_increment i min MySQL-database - har det nogen betydning at giver sidens webfætter mulighed for at ændre det id?

På forhånd tak :)

Simon
Avatar billede erikjacobsen Ekspert
19. februar 2003 - 22:25 #1
Jeg ville nu nok skrive:

$query = mysql_query("UPDATE salg SET id='$id', bilmarke='$_POST[bilmaerke]', aargang='$_POST[aargang]', antal_km='$_POST[antal_km]', pris='$_POST[pris]' where id='$id'") or die("Kunne ikke opdatere post i databasen. Prøv senere eller kontakt din hjemmesideudbyder, hvis problemet fortsætter.");

men jeg forstår ikke at du ikke får din fejl
Avatar billede simm Nybegynder
19. februar 2003 - 22:38 #2
Absolut ingen - bortset fra "Kunne ikke opdatere post i databasen. Prøv senere eller kontakt din hjemmesideudbyder, hvis problemet fortsætter", og den er sat til E_ALL og Output til skærm i min php.ini
Avatar billede erikjacobsen Ekspert
19. februar 2003 - 22:45 #3
Nå, jamen så er der jo en fejl.

Prøv at skrive

  ... or die(mysql_error())

i stedet for - men ret den lige til mit forslag først
Avatar billede simm Nybegynder
19. februar 2003 - 22:53 #4
Hej Erik, har fundet fejlen nu .. jeg havde skrevet bilmarke i stedet for bilmaerke som field name

Tak fordi du hjalp mig på sporet - vil til at tvinge mig selv til at debugge med mysql_error() - glemmer det ofte. ;)

Send et svar, så er der point til samlingen. ;)
Avatar billede erikjacobsen Ekspert
19. februar 2003 - 22:54 #5
Nej tak, ingen point til mig.
Avatar billede simm Nybegynder
19. februar 2003 - 23:01 #6
Ok - har heller ikke lige forstået meningen med dem, de kan jo ikke indløses til en Mercedes eller noget i den stil...
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