Avatar billede rasm Nybegynder
10. august 2004 - 13:16 Der er 21 kommentarer og
1 løsning

jeg skal have lavet et updatescript om eller et nyt.

Hej Alle!

Jeg skal have lavet et update script i php, og jeg har noget i skal arbejde ud fra se her:
http://www.skibilligt.dk/test/kobsalg/ret.phps
sådan et script skal i lave ellers hvis i kan finde fejlen i det der får i også point!
http://www.skibilligt.dk/test/kobsalg/ret.php der har i fejlmeddelsen.

Det skal laves så det bliver magen til, men det skal virke!

I skal selv teste det først og jeg giver først point når det funker.

Mvh Rasmus
Avatar billede rasm Nybegynder
10. august 2004 - 13:18 #1
Ups i skal lige have et ID til filen:
http://www.skibilligt.dk/test/kobsalg/ret.php?ID=18

Kodeord: rasmus
Avatar billede erikjacobsen Ekspert
10. august 2004 - 13:23 #2
if($ret == ja){
  rettes til
if($ret == 'ja'){

du skal også have en masse
  $pris = $_POST['pris'];
på samme måde som du har $id=$_GET['id']

og måske mere....
Avatar billede rasm Nybegynder
10. august 2004 - 13:27 #3
Jeg søger en der vil lave det om for mig og ikke en der bare siger hvad der skal laves...
Avatar billede detox Nybegynder
10. august 2004 - 13:43 #4
Prøv:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
<meta name="Author" content="Steen Hjelmstrand" />
<link rel="stylesheet" type="text/css" href="../selskaber/style.css">
</head>
<body>
<font size="4">Rodeskuffen - Opdater Annonce</font>
<?
if($ret == 'ja'){
    $id = $_GET['ID'];
    $ting = $_POST['ting'];
    $beskrivelse = $_POST['beskrivelse'];
    $pris = $_POST['pris'];
    $email = $_POST['email'];
    $tlf = $_POST['tlf'];
    $kodeord = $_POST['kodeord'];
    include("sql-connect.php");
    if($kodeord != ''){
        $query = "SELECT ID, kodeord from marked WHERE ID = $id";
        $res = mysql_query($query) or die(mysql_error());
        while($kode = mysql_fetch_array($res)){
            $indtastet = $kode['kodeord'];
            if($kodeord == $indtastet || $kodeord == "skibiligadmin"){
                mysql_query("UPDATE marked SET ting='$ting', beskrivelse='$beskrivelse', pris='$pris', email='$email', tlf='$tlf' WHERE ID = $id");
                echo "Din annonce er nu opdateret!<br><a href=\"index.php\">Tilbage til \"Skimarked\"<a/>";
            } else {
                $forside = "/test/kobsalg/";
                header("Location: http://" . $_SERVER['HTTP_HOST'] . $forside);
            }
        }
    }
} else {
    $id = $_GET['ID'];
    include("sql-connect.php");
    $markedet = mysql_query("SELECT marked.ID, emne, ting, beskrivelse, pris, email, tlf, kodeord, dato, markedsemneID FROM marked INNER JOIN markedsemner ON marked.markedsemneID = markedsemner.ID WHERE marked.ID = '$id' ORDER BY marked.ID DESC LIMIT 5") or die(mysql_error());
    while($marked = mysql_fetch_array($markedet)){
?>
<form action="<? echo $PHP_SELF; ?>" method="post">
<table border="0">
<tr>
    <td>Ting:</td>
    <td><input type="text" value="<? echo $marked['ting']; ?>" name="ting"></td>
</tr>
<tr>
    <td>Beskrivelse:</td>
    <td><textarea wrap="off" name="beskrivelse" cols="20" rows="7"><? echo $marked['beskrivelse']; ?></textarea></td>
</tr>
<tr>
    <td>Pris:</td>
    <td><input type="text" value="<? echo $marked['pris']; ?>" name="pris"></td>
</tr>
<tr>
    <td>Email:</td>
    <td><input type="text" value="<? echo $marked['email']; ?>" name="email"></td>
</tr>
<tr>
    <td>Telefon:</td>
    <td><input type="text" value="<? echo $marked['tlf']; ?>" name="tlf"></td>
</tr>
<tr>
<td>Det indtastede kodeord:</td><td><input type="password" name="kodeord"></td></tr>
<tr>
    <td colspan="2"><input type="submit" value="Opdater"></td>
</tr>
</table>
<input type="hidden" name="ret" value="ja">
</form>
<?
    }
}
?>
</body>
</html>
Avatar billede rasm Nybegynder
10. august 2004 - 13:45 #5
100% samme resultat
Avatar billede detox Nybegynder
10. august 2004 - 13:56 #6
Det er da en helt anden fejlmeddelelse end før:

Warning: mysql_connect() [function.mysql-connect]: Too many connections in /STORE/skibilligt_dk/public_html/test/kobsalg/sql-connect.php on line 3
Unable to connect to server
Avatar billede detox Nybegynder
10. august 2004 - 13:57 #7
Ok, nu får jeg:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /STORE/skibilligt_dk/public_html/test/kobsalg/ret.php on line 77

Men scriptet har kun 75 linier?
Avatar billede rasm Nybegynder
10. august 2004 - 14:00 #8
det er ikke den rigtige fil du bruger, det med dit hedder:
www.skibilligt.dk/test/kobsalg/rettest.php
Avatar billede detox Nybegynder
10. august 2004 - 14:04 #9
Rettet noget mere til:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
<meta name="Author" content="Steen Hjelmstrand" />
<link rel="stylesheet" type="text/css" href="../selskaber/style.css">
</head>
<body>
<font size="4">Rodeskuffen - Opdater Annonce</font>
<?
include("sql-connect.php");
if(isset($_POST['ret']) && $_POST['ret'] == 'ja'){
    $id = $_GET['ID'];
    $ting = $_POST['ting'];
    $beskrivelse = $_POST['beskrivelse'];
    $pris = $_POST['pris'];
    $email = $_POST['email'];
    $tlf = $_POST['tlf'];
    $kodeord = $_POST['kodeord'];
    if($kodeord != ''){
        $query = "SELECT ID, kodeord from marked WHERE ID = $id";
        $res = mysql_query($query) or die(mysql_error());
        while($kode = mysql_fetch_array($res)){
            $indtastet = $kode['kodeord'];
            if($kodeord == $indtastet || $kodeord == "skibiligadmin"){
                mysql_query("UPDATE marked SET ting='$ting', beskrivelse='$beskrivelse', pris='$pris', email='$email', tlf='$tlf' WHERE ID = '$id'") or die(mysql_error());
                echo "Din annonce er nu opdateret!<br><a href=\"index.php\">Tilbage til \"Skimarked\"<a/>";
            } else {
                $forside = "/test/kobsalg/";
                header("Location: http://" . $_SERVER['HTTP_HOST'] . $forside);
            }
        }
    }
} else {
    $id = $_GET['ID'];
    $markedet = mysql_query("SELECT marked.ID, emne, ting, beskrivelse, pris, email, tlf, kodeord, dato, markedsemneID FROM marked INNER JOIN markedsemner ON marked.markedsemneID = markedsemner.ID WHERE marked.ID = '$id' ORDER BY marked.ID DESC LIMIT 5") or die(mysql_error());
    while($marked = mysql_fetch_assoc($markedet)){
?>
<form action="<? echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr>
    <td>Ting:</td>
    <td><input type="text" value="<? echo $marked['ting']?>" name="ting"></td>
</tr>
<tr>
    <td>Beskrivelse:</td>
    <td><textarea wrap="off" name="beskrivelse" cols="20" rows="7"><? echo $marked['beskrivelse']?></textarea></td>
</tr>
<tr>
    <td>Pris:</td>
    <td><input type="text" value="<? echo $marked['pris']?>" name="pris"></td>
</tr>
<tr>
    <td>Email:</td>
    <td><input type="text" value="<? echo $marked['email']?>" name="email"></td>
</tr>
<tr>
    <td>Telefon:</td>
    <td><input type="text" value="<? echo $marked['tlf']?>" name="tlf"></td>
</tr>
<tr>
<td>Det indtastede kodeord:</td><td><input type="password" name="kodeord"></td></tr>
<tr>
    <td colspan="2"><input type="submit" value="Opdater"></td>
</tr>
</table>
<input type="hidden" name="ret" value="ja">
</form>
<?
    }
}
?>
</body>
</html>
Avatar billede detox Nybegynder
10. august 2004 - 14:12 #10
Aha. Prøv lige at rette:

<form action="<? echo $_SERVER['PHP_SELF']?>" method="post">

til:

<form action="<? echo $_SERVER['PHP_SELF']."?ID=$id"?>" method="post">
Avatar billede rasm Nybegynder
10. august 2004 - 15:07 #11
Hold kæft hvor er det nice gjort detox smid et svar:D
Avatar billede detox Nybegynder
10. august 2004 - 15:13 #12
Værsgo'
Avatar billede rasm Nybegynder
10. august 2004 - 21:46 #13
ehmm detox, nu har jeg lavet et script baseret på de ting du har sat ind, men den melder samme fejl?

www.skibilligt.dk/test/destinationer/retdestinationer.php

hvad er det nu lige der gør det?
Avatar billede rasm Nybegynder
10. august 2004 - 21:54 #14
eller nu fik den til at virke men den opdaterer ikke?
Avatar billede detox Nybegynder
10. august 2004 - 23:47 #15
Sikkert på grund af denne konstruktion:

            if($kodeord == $indtastet || $kodeord == "skibiligadmin"){
                mysql_query("UPDATE marked SET ting='$ting', beskrivelse='$beskrivelse', pris='$pris', email='$email', tlf='$tlf' WHERE ID = '$id'") or die(mysql_error());
                echo "Din annonce er nu opdateret!<br><a href=\"index.php\">Tilbage til \"Skimarked\"<a/>";
            } else {
                $forside = "/test/kobsalg/";
                header("Location: http://" . $_SERVER['HTTP_HOST'] . $forside);
            }

Første gang den fejler bliver man jo sendt videre til: $forside.
Er det kun en annonce der skal opdateres?
Avatar billede detox Nybegynder
10. august 2004 - 23:54 #16
Måske du kan strukturere det sådan:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="Generator" content="Stone's WebWriter 4">
<meta name="Author" content="Steen Hjelmstrand" />
<link rel="stylesheet" type="text/css" href="../selskaber/style.css">
</head>
<body>
<font size="4">Rodeskuffen - Opdater Annonce</font>
<?
include("sql-connect.php");
if(isset($_POST['ret']) && $_POST['ret'] == 'ja'){
    $id = $_GET['ID'];
    $ting = $_POST['ting'];
    $beskrivelse = $_POST['beskrivelse'];
    $pris = $_POST['pris'];
    $email = $_POST['email'];
    $tlf = $_POST['tlf'];
    $kodeord = $_POST['kodeord'];
    if($kodeord != ''){
        mysql_query("UPDATE marked SET ting='$ting', beskrivelse='$beskrivelse', pris='$pris', email='$email', tlf='$tlf' WHERE ID = '$id' AND (kodeord='$kodeord' OR $kodeord ='skibiligadmin')") or die(mysql_error());
        echo "Din annonce er nu opdateret!<br><a href=\"index.php\">Tilbage til \"Skimarked\"<a/>";
    } else {
        $forside = "/test/kobsalg/";
        header("Location: http://" . $_SERVER['HTTP_HOST'] . $forside);
    }
} else {
    $id = $_GET['ID'];
    $markedet = mysql_query("SELECT marked.ID, emne, ting, beskrivelse, pris, email, tlf, kodeord, dato, markedsemneID FROM marked INNER JOIN markedsemner ON marked.markedsemneID = markedsemner.ID WHERE marked.ID = '$id' ORDER BY marked.ID DESC LIMIT 5") or die(mysql_error());
    while($marked = mysql_fetch_assoc($markedet)){
?>
<form action="<? echo $_SERVER['PHP_SELF']."?ID=$id"?>" method="post">
<table border="0">
<tr>
    <td>Ting:</td>
    <td><input type="text" value="<? echo $marked['ting']?>" name="ting"></td>
</tr>
<tr>
    <td>Beskrivelse:</td>
    <td><textarea wrap="off" name="beskrivelse" cols="20" rows="7"><? echo $marked['beskrivelse']?></textarea></td>
</tr>
<tr>
    <td>Pris:</td>
    <td><input type="text" value="<? echo $marked['pris']?>" name="pris"></td>
</tr>
<tr>
    <td>Email:</td>
    <td><input type="text" value="<? echo $marked['email']?>" name="email"></td>
</tr>
<tr>
    <td>Telefon:</td>
    <td><input type="text" value="<? echo $marked['tlf']?>" name="tlf"></td>
</tr>
<tr>
<td>Det indtastede kodeord:</td><td><input type="password" name="kodeord"></td></tr>
<tr>
    <td colspan="2"><input type="submit" value="Opdater"></td>
</tr>
</table>
<input type="hidden" name="ret" value="ja">
</form>
<?
    }
}
?>
</body>
</html>
Avatar billede rasm Nybegynder
11. august 2004 - 13:08 #17
det har jeg slettet vil du have at jeg omdøber den til phps?
Avatar billede rasm Nybegynder
11. august 2004 - 13:11 #18
Avatar billede detox Nybegynder
11. august 2004 - 13:37 #19
Øhh...??
Avatar billede rasm Nybegynder
11. august 2004 - 13:39 #20
Jeg har siger jeg har baseret en ny på de rettelser du har lavet men det virker ikke:S kan du sige mig hvorfor?
Avatar billede detox Nybegynder
11. august 2004 - 14:07 #21
Jamen variablerne i din forespørgsel:

    mysql_query("UPDATE marked SET ting='$ting', beskrivelse='$beskrivelse', pris='$pris', email='$email', tlf='$tlf' WHERE ID = '$id'")

er jo forskellige fra dem du henter fra formen:

    $id = $_GET['ID'];
    $navn = $_POST['navn'];
    $beskrivelse = $_POST['beskrivelse'];
    $webcam = $_POST['webcam'];
    $vejr = $_POST['vejr'];
    $hjemmeside = $_POST['hjemmeside'];
Avatar billede rasm Nybegynder
11. august 2004 - 14:08 #22
UPS!:D
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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