|
| 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=" Ret " /></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=" Ret " /></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
| |
|
|