id

Tags:    php

Jeg har en lille problem.. jeg vil ændre news og jeg henter newsene sådan her:

<?php
$conn = mysql_connect("localhost", "stat_bots_dk", "tpd");
mysql_select_db("stat-bots-dk");
$result = mysql_query("select * from demon_news order by id desc");

echo "<table width=\\"360\\" border=\\"0\\" cellspacing=\\"0\\" cellpadding=\\"0\\">";
while ($row = mysql_fetch_array($result)) {
echo "<tr>
<td width=\\"65%\\"><a href=\\"visnyhed.php?id=$row[id]\\"><font face=\\"Tahoma\\" size=\\"2\\">$row

</font></a></td>
<td><font face=\\"Tahoma\\" size=\\"2\\"><a href=\\"editnews2.php?id=$row[id]\\">Edit</a></font></td>
</tr>";
}
echo "</table></td>";
?>


hvor jeg sender id videre til editnews2.php og det ser sådan her ud:


<?php
$conn = mysql_connect("localhost", "tpd", "tpd");
mysql_select_db("stat-bots-dk");
$result = mysql_query("select * from demon_news where id = '$id'");
$row = mysql_fetch_array($result);
echo "<div align=\\"center\\">
<form method=\\"post\\" action=\\"editnews3.php\\">
<table width=\\"300\\" border=\\"0\\" cellspacing=\\"0\\" cellpadding=\\"0\\">
<tr>
<td width=\\"20%\\"><font size=\\"2\\" face=\\"Tahoma\\"> </font></td>
<td><strong><font size=\\"2\\" face=\\"Tahoma\\">Edit news:</font></strong></td>
</tr>
<tr>
<td><font size=\\"2\\" face=\\"Tahoma\\"> </font></td>
<td> </td>
</tr>
<tr>
<td><div align=\\"right\\"><font size=\\"2\\" face=\\"Tahoma\\">Overskrift:</font></div></td>
<td><input type=\\"text\\" name=\\"overskrift\\" size=\\"30\\" class=\\"trix\\" value=\\"".$row["overskrift"]."\\"></td>
</tr>
<tr>
<td><div align=\\"right\\"><font face=\\"Tahoma\\"><font face=\\"Tahoma\\"><font size=\\"2\\"></font></font></font></div></td>
<td> </td>
</tr>
<tr>
<td><div align=\\"right\\"><font size=\\"2\\" face=\\"Tahoma\\">Nyhed:</font></div></td>
<td><textarea name=\\"nyhed\\" cols=\\"32\\" rows=\\"6\\" class=\\"trix\\">".$row["nyhed"]."</textarea></td>
</tr>
<tr>
<td><div align=\\"right\\"></div></td>
<td><input type=\\"submit\\" class=\\"trix\\" value=\\"Ændre\\">
 </td>
</tr>
<tr>
<td><div align=\\"right\\"></div></td>
<td> </td>
</tr>
</table>
</form>
</div>";
?>

så er spørgsmålet hvorfor bliver ID1 altid taget lige gyldig om jeg tager en af de andre news?





4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Jeg tror at du har misforstået noget....

Du mindst et par sted hvor du læser værdierne i en row således, $row[id] ...hvis du vil være helt sikker på at PHP ikke misforstår skal du skrive $row['id']

Det var den første ting...

Den anden ting...

I starten editnews2.php skal du indlæse variablen id fra $_GET med mindre REGISTER_GLOBALS er aktiveret, så sker det automatisk.

Det gør man således... $id = $_GET["id"]; ...derefter kan du bare bruge $id normalt

...og det tredje FJERN '-quotes omkring $id i din query... der er vel tale om et tal, ik!?



Prøv at omskrive $row[xx] til $row["xx"]

...og hent $id via. $_GET["id"], altså $id = $_GET["id"];




Prøv at omskrive $row[xx] til $row["xx"]

...og hent $id via. $_GET["id"], altså $id = $_GET["id"];

hmmm

nu har jeg prøvet med
$result = mysql_query("select * from demon_news where id = '$_GET["id"]'");

$result = mysql_query("select * from demon_news where id = "$_GET["id"]"");

$result = mysql_query("select * from demon_news where $id = $_GET["id"]");

og der kommer kun fejl ved dem :/



Prøv at omskrive $row[xx] til $row["xx"]

...og hent $id via. $_GET["id"], altså $id = $_GET["id"];

hmmm

nu har jeg prøvet med
$result = mysql_query("select * from demon_news where id = '$_GET["id"]'");

$result = mysql_query("select * from demon_news where id = "$_GET["id"]"");

$result = mysql_query("select * from demon_news where $id = $_GET["id"]");

og der kommer kun fejl ved dem :/


Jeg er ikke sikker, men svarer aligevel:
prøv med
$result = mysql_query("select * from demon_news where id=".$_GET['id']);

Det jeg tror der er galt er at du har single quotes omkring værdien af id, som sikkert er af typen Int i din database

Mvh,

Thomas Nielsen



t