/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mysql update ??
Fra : gc


Dato : 12-08-08 09:49

Er der nogen der kan se hvad der er galt i nedenstående kode?
tabellen og data bliver vist fint, men selv om jeg retter i feltet infotekst
og klikker på "ret" bliver feltet ikke rettet når siden opdateres.

på forhånd tak.

<?php
if(isset($_POST['context']) && $_POST['context']=='update')
{
$inforesult = mysql_query("UPDATE info SET infotekst = '$nyinfotekst' WHERE
infoid = '$infoid'");
}
?>
<table style="width: 100%;" class="datatabel">
<caption>Informations felt</caption>
<tr>
<th width='5%'>Rækkefølge</th>
<th width='90%'>Infotekst</th>
<th width='5%' align='right'></th>
</tr>
<?php
$inforesult = mysql_query("select * FROM info ORDER BY infoid");
while ($infoline = mysql_fetch_array($inforesult)) {
extract($infoline);?>
<tr bgcolor='#F0F0F0'>
<form name="inforet" method="post" action="<?php $_SERVER['PHP_SELF']?>">
<td align='left'><input type="text" name="infoid" size="10" value='<?php
echo $infoid; ?>'/></td>
<td align='left'><input type="text" name="infotekst" size="140"
value='<?php echo $infotekst; ?>'/></td>
<td align='center'><input type="submit" name="submit"
value="&nbsp;Ret&nbsp;" /></td>
<input type="hidden" name="context" value="update" />
</form>
</tr>
<?php
} //while
?>
</table>



 
 
Birger Sørensen (12-08-2008)
Kommentar
Fra : Birger Sørensen


Dato : 12-08-08 10:01

gc formulerede spørgsmålet:
> Er der nogen der kan se hvad der er galt i nedenstående kode?
> tabellen og data bliver vist fint, men selv om jeg retter i feltet infotekst
> og klikker på "ret" bliver feltet ikke rettet når siden opdateres.
>
> på forhånd tak.
>
> <?php
> if(isset($_POST['context']) && $_POST['context']=='update')
> {
> $inforesult = mysql_query("UPDATE info SET infotekst = '$nyinfotekst' WHERE
> infoid = '$infoid'");
> }
> ?>
> <table style="width: 100%;" class="datatabel">
> <caption>Informations felt</caption>
> <tr>
> <th width='5%'>Rækkefølge</th>
> <th width='90%'>Infotekst</th>
> <th width='5%' align='right'></th>
> </tr>
> <?php
> $inforesult = mysql_query("select * FROM info ORDER BY infoid");
> while ($infoline = mysql_fetch_array($inforesult)) {
> extract($infoline);?>
> <tr bgcolor='#F0F0F0'>
> <form name="inforet" method="post" action="<?php $_SERVER['PHP_SELF']?>">
> <td align='left'><input type="text" name="infoid" size="10" value='<?php
> echo $infoid; ?>'/></td>
> <td align='left'><input type="text" name="infotekst" size="140"
> value='<?php echo $infotekst; ?>'/></td>
> <td align='center'><input type="submit" name="submit"
> value="&nbsp;Ret&nbsp;" /></td>
> <input type="hidden" name="context" value="update" />
> </form>
> </tr>
> <?php
> } //while
> ?>
> </table>

if(isset($_POST['context']) && $_POST['context']=='update') {
$inforesult = mysql_query("UPDATE info SET infotekst = '$nyinfotekst'
WHERE infoid = '$infoid'");
}

$nyinfotekst og $infoid har ikke nogen værdi. Mangler
$nyinfoteskst = $_POST[ 'infotekst'];
$infoid = $_POST[ 'infoid'];
Du har formentlig ingen rækker med tomt infoid - så der er ikke noget
der skal opdateres...

Birger



gc (12-08-2008)
Kommentar
Fra : gc


Dato : 12-08-08 10:35

> $nyinfotekst og $infoid har ikke nogen værdi. Mangler
> $nyinfoteskst = $_POST[ 'infotekst'];
> $infoid = $_POST[ 'infoid'];
> Du har formentlig ingen rækker med tomt infoid - så der er ikke noget der
> skal opdateres...
>
> Birger
>
Hvad f..... det synes jeg er prøvet mange gange
men nu virker det, mange tak.
PS. kan man også få infoid feltet med?



Birger Sørensen (12-08-2008)
Kommentar
Fra : Birger Sørensen


Dato : 12-08-08 10:39

gc sendte dette med sin computer:
8X
> Hvad f..... det synes jeg er prøvet mange gange
> men nu virker det, mange tak.
> PS. kan man også få infoid feltet med?

Hvad mener du? Du har infoid med i formen...

Birger



gc (12-08-2008)
Kommentar
Fra : gc


Dato : 12-08-08 10:44

>
> Hvad mener du? Du har infoid med i formen...
>
Jeg vil også gerne kunne rette og opdatere infoid feltet på samme måde
men det virker ikke, kræver det et unikt id felt i databasen?



Birger Sørensen (12-08-2008)
Kommentar
Fra : Birger Sørensen


Dato : 12-08-08 10:57

Den 12-08-2008, skrev gc:
>>
>> Hvad mener du? Du har infoid med i formen...
>>
> Jeg vil også gerne kunne rette og opdatere infoid feltet på samme måde
> men det virker ikke, kræver det et unikt id felt i databasen?

Så vidt jeg kan se, må infoid være unikt. Ellers vil du jo rette
infotekst flere steder på een gang.
Men principielt skal det ikke.
Du skal så i din form også have den forrige (eller nuværende, afhængig
af hvor man ser tingene fra) værdi. Feks..

...
<td align='left'>
<input type="hidden" name="infoid" size="10" value='<?php echo $infoid;
?>'/>
<input type="text" name="nyinfoid" size="10" value='<?php echo $infoid;
?>'/></td>
...

og for at opdatere

$inforesult = mysql_query("UPDATE info SET infotekst = '$nyinfotekst',
infoid='$nyinfoid' WHERE infoid = '$infoid'");

hvor $nyinfoid selvfølgelig også skal hentes ud af $_POST[] som de
andre.. ;>)

Birger



gc (12-08-2008)
Kommentar
Fra : gc


Dato : 12-08-08 11:09

> <td align='left'>
> <input type="hidden" name="infoid" size="10" value='<?php echo $infoid;
> ?>'/>
> <input type="text" name="nyinfoid" size="10" value='<?php echo $infoid;
> ?>'/></td>
> ..
>
> og for at opdatere
>
> $inforesult = mysql_query("UPDATE info SET infotekst = '$nyinfotekst',
> infoid='$nyinfoid' WHERE infoid = '$infoid'");
>
> hvor $nyinfoid selvfølgelig også skal hentes ud af $_POST[] som de andre..
> ;>)
>
Jep, det virker.
takker mange gange, du er en knag.



Birger Sørensen (12-08-2008)
Kommentar
Fra : Birger Sørensen


Dato : 12-08-08 11:30

gc tastede følgende:
> Jep, det virker.
> takker mange gange, du er en knag.

Det var så lidt... :')

Birger



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste