Avatar billede Fiber Bjørn Juniormester
09. februar 2006 - 17:06 Der er 19 kommentarer og
1 løsning

Update af navn som er hentet fra db

Update virker ik. Jeg kommer godt nok tilbage til den side jeg skal, men db bliver ikke updateret ???

Hvad kan være galt

<?php
require("config.php");
connect();
       
        $ret_holdmedlem = $_GET["ret_holdmedlem"];

if($_GET[action] == "ret"){


$strSQL = "UPDATE riberep_holdet SET navn = $getter[navn] WHERE id = .$ret_holdmedlem.";
mysql_query($strSQL);
} else {

        $query = mysql_query("select * from riberep_holdet where id = '".$ret_holdmedlem."'");
        $getter = mysql_fetch_array($query);
       
?>



<form method="post" action="holdet.php?action=ret">
            <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#CCCCCC" width="62%" id="AutoNumber1" height="21">
              <tr>
                <td width="33%" height="19" bordercolor="#999999"><span class='subheader'>Navn:</span></td>
                <td width="33%" height="19" class="m">
                  <? print '<input type="text" name="navn" size="73" value="'.$getter[navn].'">'; ?>                </td>
              </tr>
            </table>

            <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#CCCCCC" width="100%" id="AutoNumber2">
             
            </table>
           
            <div align="center"><br>
              <input name="sender" type="submit" id="sender" value="Ret">
             
              </div>
            </form>
Avatar billede morhan Novice
09. februar 2006 - 17:28 #1
Jeg formoder navn er en text-kolonne, så skal du have apostroffer rundt om værdien

SET navn = '$getter[navn]' WHERE
Avatar billede Fiber Bjørn Juniormester
09. februar 2006 - 18:17 #2
Ja det er en text kolonne, men det hjælper ik. Der står bare det samme igen, som inden jeg rettede i teksten. Det er da lige meget hvilken side jeg handviser til ik ???
Avatar billede erikjacobsen Ekspert
09. februar 2006 - 18:21 #3
Du skal i hvert fald

$strSQL = "UPDATE riberep_holdet SET navn = '$getter[navn]' WHERE id = $ret_holdmedlem";
mysql_query($strSQL) or die(mysql_error());
Avatar billede Fiber Bjørn Juniormester
09. februar 2006 - 18:31 #4
Det virkede heller ikke :o(

<? print '<input type="text" name="navn" size="73" value="'.$getter[navn].'">'; ?>

Det er den der viser hvad der er i db navn lige nu. Men er det den rigtige måde at gøre det på ??? Jeg har lidt på fornemmeren at der er der fejlen ligger. Men jeg ved det ikke, det jeg har lavet er mig bedste bud.
Avatar billede erikjacobsen Ekspert
09. februar 2006 - 22:05 #5
Nej, der er nok mere galt. Du skal have navnet fra $_POST

$strSQL = "UPDATE riberep_holdet SET navn = '$_POST[navn]' WHERE id = $ret_holdmedlem";
mysql_query($strSQL) or die(mysql_error());

Men hvor kommer $ret_holdmedlem fra, altså dit "id"? Det skal være et eller andet sted i din <form> for PHP husker ikke noget mellem siderne.
Avatar billede horsmark Nybegynder
10. februar 2006 - 09:39 #6
for at checke hvad der er med i $_POST ergo sendt af variabler prøv evt at lave en

var_dump($_POST);
Avatar billede Fiber Bjørn Juniormester
10. februar 2006 - 12:12 #7
på den side med alle navnene på, har jeg lavet en ret LINK som ser sådan ud

<? echo '<a href="ret_holdmedlem.php?ret_holdmedlem='.$getter[id].'">RET</a>'; ?>

derved overføre jeg "id" tli næste side
Avatar billede Fiber Bjørn Juniormester
10. februar 2006 - 12:18 #8
Hvis det kan hjælpe er siden her "Prøve"
http://www.ribe-rep.dk/prove/holdet.php

også har jeg rettet det til det her

<?php
require("config.php");
connect();
       
        $ret_holdmedlem = $_GET["ret_holdmedlem"];

if($_GET[action] == "ret"){

$strSQL = "UPDATE riberep_holdet SET navn = '$_POST[navn]' WHERE id = $ret_holdmedlem";
mysql_query($strSQL) or die(mysql_error());

var_dump($_POST[navn]);
} else {

        $query = mysql_query("select * from riberep_holdet where id = '".$ret_holdmedlem."'");
        $getter = mysql_fetch_array($query);
       
var_dump($_POST[navn]);       
?>
Avatar billede horsmark Nybegynder
10. februar 2006 - 12:20 #9
så lav lige denne for at se om din variabel ryger med over:
var_dump($_GET);
Avatar billede horsmark Nybegynder
10. februar 2006 - 12:22 #10
if($_GET[action] == "ret"){

skal være

if($_POST[action] == "ret"){
Avatar billede horsmark Nybegynder
10. februar 2006 - 12:23 #11
og så er det pæn kodeskik at lave dette $_POST['action'] istedet for $_POST[action] ~ dette gælder alle steder hvor du henviser til et array ()

$_POST["action"] er ligeså godt
Avatar billede horsmark Nybegynder
10. februar 2006 - 12:25 #12
mht til min kommentar 10/02-2006 12:22:32 så var det noget værre vrøvl
Avatar billede horsmark Nybegynder
10. februar 2006 - 12:27 #13
trordet kokser fordi du i din form der submitter til action=ret ikke har bruger-id´et med.

<form method="post" action="holdet.php?action=ret&ret_holdmedlem=<?=$ret_holdmedlem?>">
Avatar billede Fiber Bjørn Juniormester
10. februar 2006 - 12:38 #14
nu ser det sådan ud: koden er taget ud af den tabel det er i

og virker stadig ik. virker det ikke som om at den ikke sender ???
http://www.ribe-rep.dk/prove/holdet.php

<?php
require("config.php");
connect();
       
        $ret_holdmedlem = $_GET["ret_holdmedlem"];

if($_GET[action] == "ret"){

$strSQL = "UPDATE riberep_holdet SET navn = '$_POST[navn]' WHERE id = $ret_holdmedlem";
mysql_query($strSQL) or die(mysql_error());

var_dump($_POST['navn']);
var_dump($_GET['navn']);
} else {

        $query = mysql_query("select * from riberep_holdet where id = '".$ret_holdmedlem."'");
        $getter = mysql_fetch_array($query);
       
var_dump($_POST['navn']);       
var_dump($_GET['navn']);
?>

<form method="post" action="holdet.php?action=ret&ret_holdmedlem=<?=$ret_holdmedlem?>">
<? print '<input type="text" name="navn" size="73" value="'.$getter['navn'].'">'; ?>
<input name="sender" type="submit" id="sender" value="Ret">
</form>
Avatar billede horsmark Nybegynder
10. februar 2006 - 12:58 #15
du skal lige ændre
var_dump($_POST['navn']);     
var_dump($_GET['navn']);

til
var_dump($_POST);     
var_dump($_GET);
Avatar billede Fiber Bjørn Juniormester
10. februar 2006 - 13:34 #16
nu har jeg ændret og gjort sådan at den hopper tilbage til den samme side
<form method="post" action="ret_holdmedlem.php?action=ret&ret_holdmedlem=<?=$ret_holdmedlem?>">

så skriver den noget som jeg ikke er så god til at finde ud af
Avatar billede horsmark Nybegynder
10. februar 2006 - 13:47 #17
fjern lige de linier med var_dump igen. Jeg kan se at siden nu opdaterer oplysninger korrekt på navnet :-)
Avatar billede horsmark Nybegynder
10. februar 2006 - 13:48 #18
var_dump fortæller egentligt blot hvad der ligger gemt i hukommelsen ergo hvad der er postet til siden i dette tilfælde
Avatar billede Fiber Bjørn Juniormester
10. februar 2006 - 13:54 #19
1000 tak for hjælpen.

Jeg havde ikke lige set at det virkede, men lagde kun mærke til at den skrev det der. Lave et svar, så du kan få dine point :o)

så sagde fejlen altså i
<form method="post" action="ret_holdmedlem.php?action=ret&ret_holdmedlem=<?=$ret_holdmedlem?>">

så jeg ved det til en anden gang :o)
Avatar billede horsmark Nybegynder
10. februar 2006 - 14:16 #20
allrighty super at det spiller :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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