Avatar billede raan Nybegynder
11. juli 2006 - 22:15 Der er 48 kommentarer og
1 løsning

opdater tabel

hvorfor kan jeg ikke få den til at virke ?
den retter, men den laver bare et blankt felt inde i databasen

<? include("sql.php");
$spil=$_GET[id];
$hej=mysql_query("SELECT * FROM data WHERE navn='$_GET[navn]'");
$vis=mysql_fetch_array($hej);
$tekst = nl2br($tekst);
$show = mysql_fetch_array($get);
$tekst = "$tekst";
$navn = "$navn";

?>

<form action='<?=$php_self;?>' method='post'>
<input type='text' name='$tekst' value='<? echo $vis[tekst] ?>' maxlength='30'>

<input type="submit" name="Ret" value="Ret">
</form>

<?php
$navn = mysql_escape_string($_POST["navn"]);
$tekst = mysql_escape_string($_POST["tekst"]);

mysql_query("update data set tekst = '$tekst' WHERE navn = '$_GET[navn]'") or die(mysql_error());
?>
Avatar billede zynzz Praktikant
11. juli 2006 - 22:16 #1
Hvilket felt laver den blank i ?
Avatar billede nielle Nybegynder
11. juli 2006 - 22:21 #2
Ret i din form:

<input type='text' name='$tekst' value='<? echo $vis[tekst] ?>' maxlength='30'>

- til:

<input type='text' name='tekst' value='<? echo $vis["tekst"] ?>' maxlength='30'>
Avatar billede nielle Nybegynder
11. juli 2006 - 22:26 #3
Hvad er det egentlig du øsnekr at kunne gøre med din kode?
Avatar billede raan Nybegynder
11. juli 2006 - 22:35 #4
det kan godt være mig som er helt galt på den ..

men er der en der vil vise mig hvordan man opdater en tabel i mysql databsen ? (:
Avatar billede nielle Nybegynder
11. juli 2006 - 22:38 #5
Ok, så tager vi den derfra. :^)

Hvordan vil du afgøre hvilken række i tabellen der skal opdaters? Du kan vælge at opdatere samtlige rækker, men hvis det er en specifik række som skal opdateres, så må den udpeges på en eller anden måde. Hvordan havde du forestillet dig i det konkrete tilfælde?
Avatar billede raan Nybegynder
11. juli 2006 - 22:42 #6
først vil jeg hente selve tabelen og derefter vælge et felt, men ved ikke rigtig hvordan man skal gøre når man skal opdater det ? (:
Avatar billede nielle Nybegynder
11. juli 2006 - 22:46 #7
Ok, men så er det vel smartest hvis du får tabellen ud i en lang liste. Så kan hver række have er Rediger-link i enden. Klikker man på dette, kommer man ind og kan redigere posten. Lyder det ok?
Avatar billede raan Nybegynder
11. juli 2006 - 22:49 #8
Jo :)
Avatar billede nielle Nybegynder
11. juli 2006 - 22:56 #9
Den del af koden kunne f.eks. se sådan her ud:

<table>

<?
$sql = "SELECT * FROM data ORDER BY id ASC";
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_assoc($row))
{
    $id = = $row["id"];
    $tekst = $row["tekst"];
   
    echo "
    <tr>
        <td>$tekst</td>
        <td><a href='$_SERVER[PHP_SELF]?edit=$id'>Rediger</a></td>
    </tr>";
}
?>

</table>
Avatar billede raan Nybegynder
11. juli 2006 - 23:02 #10
hm, jeg får bare en blank side ;s
Avatar billede nielle Nybegynder
11. juli 2006 - 23:03 #11
Linjen:

$id = = $row["id"];

- skulle være:

$id = $row["id"];
Avatar billede raan Nybegynder
11. juli 2006 - 23:05 #12
desværre, men stadig det samme.
Avatar billede nielle Nybegynder
11. juli 2006 - 23:07 #13
Du skal selv tilføje koden til at forbinde til din database.
Avatar billede raan Nybegynder
11. juli 2006 - 23:09 #14
include("sql.php");

brude være nok, ikke ? :)
Avatar billede nielle Nybegynder
11. juli 2006 - 23:17 #15
Det afhænger jo 100% af hvad du har i din sql.php fil.

Men ja, normalt plejer man at gøre det på den måde. :^)

Det lader til at din server måske er sat op til ikke at vise fejlbeskeder. Det skal slås til. Umiddelbart er det den rigtige instilling når dit site går i luften, men det er meget besværligt at have med at gøre når man stadig sidder og udvikler.

Jeg beklager, men klokken er blevet lidt mange og jeg bliver nødt til at putte-sove. Men medmindre at der er nogen som hjælper dig igennem med denne her inden da, er jeg selvfølgelig klar på at vi arbejder videre med den i morgen aften.


Prøv dog lige at læse tdafoobar's artikel (han henviste også til den i det første spørgsmpål):

http://www.eksperten.dk/artikler/971
Avatar billede raan Nybegynder
11. juli 2006 - 23:21 #16
okay (:
.. ellers må vi bare se på det i morgen.
Avatar billede nielle Nybegynder
12. juli 2006 - 19:38 #17
Hej igen ... har du fundet ud af hvordan du får fejlbeskederne vist?
Avatar billede nielle Nybegynder
17. juli 2006 - 20:36 #18
Hmm?
Avatar billede raan Nybegynder
19. juli 2006 - 18:58 #19
nej det har jeg ikke :s
Avatar billede nielle Nybegynder
19. juli 2006 - 19:03 #20
Så prøv lige de råd som bliver givet her i dette spørgsmål:

http://www.eksperten.dk/spm/721406
Avatar billede raan Nybegynder
19. juli 2006 - 19:50 #21
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in .../privat/test/test.php on line 7

..

<table>

<?
include("sql.php");
$sql = "SELECT * FROM data ORDER BY id ASC";
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_assoc($row))
{
$id = $row["id"];
$tekst = $row["tekst"];

echo "
<tr>
<td>$tekst</td>
<td><a href='$_SERVER[PHP_SELF]?edit=$id'>Rediger</a></td>
</tr>";
}
?>

</table>
Avatar billede nielle Nybegynder
19. juli 2006 - 19:51 #22
Ok, du skal rette:

while ($row = mysql_fetch_assoc($row))

- til:

while ($row = mysql_fetch_assoc($result))
Avatar billede raan Nybegynder
19. juli 2006 - 20:03 #23
nu kan jeg se dem (:
. men når jeg trykker rediger sker der ingen ting.
Avatar billede nielle Nybegynder
19. juli 2006 - 20:03 #24
Nej, koden er langt fra færdig endnu.
Avatar billede raan Nybegynder
19. juli 2006 - 20:10 #25
hvad skal jeg så ? (:
Avatar billede nielle Nybegynder
19. juli 2006 - 20:17 #26
Du bventer på at jeg har kodet færdig. :^)

Værsgod, næste generation af koden:

<?
$edit = trim($GET["edit"]);

if (isset($edit) && $edit != "")
{
    $sql = "SELECT * FROM data WHERE id = $edit";
    $result = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_assoc($result)
?>
<form>
<input type="hidden" name="save" value="<?=$edit?>">
Navn: <input type="text" name="navn" value="<?=$row["navn"]?>"><br>
Tekst: <input type="text" name="tekst" value="<?=$row["tekst"]?>"><br>
<input type="submit">
</form>
<?
}
else
{
?>
<table>
<?
    $sql = "SELECT * FROM data ORDER BY id ASC";
    $result = mysql_query($sql) or die(mysql_error());
    while ($row = mysql_fetch_assoc($result))
    {
        $id = = $row["id"];
        $tekst = $row["tekst"];
   
        echo "
        <tr>
        <td>$tekst</td>
        <td><a href='$_SERVER[PHP_SELF]?edit=$id'>Rediger</a></td>
        </tr>
        ";
    }
?>
</table>
<?
}
?>
Avatar billede raan Nybegynder
21. juli 2006 - 19:04 #27
sådan (:
.. men kan stadig ikke trykke rediger ;s
Avatar billede nielle Nybegynder
21. juli 2006 - 19:09 #28
Hvad mener du præcist med at du ikke kan trykke på Rediger? Sker der slet ikke noget, eller sker der bare noget andet end det du forventer? Får du en fejl? Eller hvad?
Avatar billede raan Nybegynder
24. juli 2006 - 18:36 #29
når jeg trykker rediger er det bare ligesom den updatere siden ;s
Avatar billede nielle Nybegynder
24. juli 2006 - 18:54 #30
Prøv lige at rette denne her linje:

$id = = $row["id"];

- til:

$id = $row["id"];
Avatar billede raan Nybegynder
25. juli 2006 - 11:58 #31
har jeg gjort, og har også lavet database con. :s
Avatar billede nielle Nybegynder
25. juli 2006 - 18:53 #32
Ændrede det på opførelsen?
Avatar billede raan Nybegynder
25. juli 2006 - 18:56 #33
Ja (:
Avatar billede nielle Nybegynder
25. juli 2006 - 20:07 #34
Du må meget gerne venne dig til at fortælle lidt mere når du svare ... husk på at jeg ikke lige sidder og kan følge med over skulderen på dig.

Jeg gætter dog på at du nu får en formular frem hvor at du kan se værdierne fra databasen, og at du kan redigere dem. Imidlertid sker der ikke rigtigt noget i databasen når du trykker på knappen. Korrekt?
Avatar billede raan Nybegynder
26. juli 2006 - 16:39 #35
http://www.randersen.dk/privat/test/test.php
^ når jeg trykker på linket sker der ikke noget ?

Okay (:
Avatar billede raan Nybegynder
30. juli 2006 - 22:34 #36
hm ?
Avatar billede nielle Nybegynder
01. august 2006 - 18:59 #37
Undskyld at jeg har været lidt fraværende.

Jeg han se at vi lider lidt under mine fejl. :^|

Ret:

$edit = trim($GET["edit"]);

- til:

$edit = trim($_GET["edit"]);
Avatar billede raan Nybegynder
01. august 2006 - 19:10 #38
nu kan jeg godt komme ind og rette, men så når jeg trykker på knappen så den skal ændre det, går den ikke ind i databasen og ændre det ;s
Avatar billede nielle Nybegynder
01. august 2006 - 19:15 #39
Ja, nu skal vi så igang med den sidse generation af koden. :^)

Men fortæl mig lige først om den form hvor at du kan redigere data i ser fornuftig ud? Endnu bedre: Kan du lægge et link op som tidligere?
Avatar billede raan Nybegynder
02. august 2006 - 15:27 #40
Avatar billede nielle Nybegynder
02. august 2006 - 20:12 #41
Prøv denne her:

<?
function DataList()
{
    $sql = "SELECT * FROM data ORDER BY id ASC";
    $result = mysql_query($sql) or die(mysql_error());

    echo "<table>";
    while ($row = mysql_fetch_assoc($result))
    {
        $id = $row["id"];
        $tekst = $row["tekst"];
   
        echo "
        <tr>
        <td>$tekst</td>
        <td><a href='$_SERVER[PHP_SELF]?todo=edit&id=$id'>Rediger</a></td>
        </tr>
        ";
    }
    echo "</table>";
}

$todo = "" . trim($_GET["todo"]);
$id = "" . trim($_GET["id"]);

if ($todo == "edit")
{
    $sql = "SELECT navn, tekst FROM data WHERE id = $edit";
    $result = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_assoc($result);
?>
<form action="<?=$_SERVER["PHP_SELF"]?>?todo=save&id=<?=$id?>">
Navn: <input type="text" name="navn" value="<?=$row["navn"]?>"><br>
Tekst: <input type="text" name="tekst" value="<?=$row["tekst"]?>"><br>
<input type="submit">
</form>
<?
}
else if ($todo == "save")
{
    $navn = $_POST["navn"];
    $tekst = $_POST["tekst"];

    $sql = "UPDATE date SET navn = '$navn', tekst = '$tekst' WHERE id = $id";
    mysql_query($sql) or die(mysql_error());

    DataList();
}
else
{
    DataList();
}
?>
Avatar billede raan Nybegynder
03. august 2006 - 17:17 #42
Avatar billede nielle Nybegynder
03. august 2006 - 18:35 #43
Denne her:

$sql = "SELECT navn, tekst FROM data WHERE id = $edit";

- skal rettes til:

$sql = "SELECT navn, tekst FROM data WHERE id = $id";
Avatar billede raan Nybegynder
03. august 2006 - 19:08 #44
det virker stadig ikke ..
- samme link.
Avatar billede nielle Nybegynder
03. august 2006 - 19:12 #45
Ak, de små fejl...

Ret:

<form action="<?=$_SERVER["PHP_SELF"]?>?todo=save&id=<?=$id?>">

- til:

<form action="<?=$_SERVER["PHP_SELF"]?>?todo=save&id=<?=$id?>" method="post">
Avatar billede raan Nybegynder
03. august 2006 - 19:21 #46
nu virker den (:
- smid et svar.

men må jeg spørge om en ting til ? (:
Avatar billede nielle Nybegynder
03. august 2006 - 19:26 #47
Svar :^)

Ja?
Avatar billede raan Nybegynder
03. august 2006 - 19:30 #48
hvis man nu vil hente en bruger fra et brugersystem, og man så skal kunne rette alle ens data man har indtastet .. hvordan gør man så det?

fx.
Navn: <input type="text" name="navn" value="<?=$row["navn"]?>"><br>
alder: <input type="text" name="alder" value="<?=$row["alder"]?>"><br>
bopæl: <input type="text" name="bosted" value="<?=$row["bosted"]?>"><br>
status: <input type="text" name="status" value="<?=$row["status"]?>"><br>
osv (:
hvordan gør man så man kan rette alt det på én gang ?
Avatar billede nielle Nybegynder
03. august 2006 - 19:36 #49
Hvis du kigger godt efter i koden ovenfor, kan du se hvor f.eks. navn optræder. Så er det bare om at udvide koden de steder med noget for alder, boosted og status.
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