kim: Eintrag in DB mittels ID wieder auslesen

Hallo, Bin ein newbie in Sachen PHP und mySQL. Möchte folgendes realisieren.

1. Formular mit Eingabefeldern (eingabe.html)

<html>
<head>
<title>Intranet bfi-Wien - KVS-Fragen und Antworten</title>
<SCRIPT LANGUAGE=JavaScript>
function verify_page()
{
{
document.frmRegister.submit();
}
}
</SCRIPT>
</head>
<body>
<br>
<FORM name="frmRegister" action="insert.php" method="post">
<table width="600" border="0" cellspacing="1" cellpadding="3" bgcolor="#336699">
<input type="hidden" name="id" value="$sid">
<tr>
<td bgcolor="#ffffff" width="200"><b>Version:</b></td>
</tr>
<tr>
<td bgcolor="#ffffff" width="200<input typ="text" name="version"></font></td>
</tr>
<tr>
<td bgcolor="#ffffff" align="center" colspan="2"><INPUT type="button" value="Speichern" ONCLICK="verify_page()"></TD>
</TR>
</table>
</form>
</body>
</html>

2. Insert in DB (insert.php)

<?
include("admin/config.php");
mysql_connect($db_host,$db_user,$db_pass) || die("Could not contact mySQL!");
mysql_select_db($db_db) || die("Connected mySQL, but database is unavailable!");
// Werte des Formulars
$sid  = $HTTP_POST_VARS["id"];
$version  = $HTTP_POST_VARS["version"];

// in DATENBANK einfügen
$sqlInsert  = "INSERT INTO kvs (version) VALUES ('$version'')";
$result = mysql_query($sqlInsert);
if (mysql_error())
{
echo mysql_error();
exit;
}
?>
<html>
<head>
<title></title>
</head>
<BODY bgcolor="#ffffff">
<br>
<TABLE width="600" cellspacing="1" cellpadding="3" border="0" bgcolor="#336699">
<tr>
<td bgcolor="#336699" align="center"><font size="3" color="#ffffff"><b>Insert erfolgreich!</b></font></td>
</tr>

<tr>
<td bgcolor="#336699" align="center">

<?
echo "<A HREF="show.php?id=$sid">Daten ansehen</A>";
?>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Mit diesem Link möchte ich auf der nächsten Seite den soeben gespeicherten Datensatz auslesen. Mittels ID. Ich kriegs aber nicht hin!!!!!!

</td>
</tr>
</table>
</BODY>
</html>

3. Auslesen der Daten die soeben gespeichert wurden

<html>
<head>
<title></title>
</head>
<BODY bgcolor="#ffffff">
<?
$db = mysql_connect("localhost","user","pw");
mysql_select_db("intranet",$db);
$result = mysql_query("Select * from news WHERE id=$sid",$db);
while($row=mysql_fetch_array($result))
{
$id=$row["id"];
$version=$row["version"];
echo "<table width="580" border="0">";
echo "<tr>";
echo "<td>";
echo $version;
echo "</td>";
echo "</tr>";
echo "</table>";
}
?>
</body>
</html>

Danke für Eure Hilfe
kim

  1. Hi!

    Danke für Eure Hilfe

    kein Problem, gern geschehen ;-)

    Grüße
    Andreas

    1. Servus Andreas

      Danke für Eure Hilfe
      kein Problem, gern geschehen ;-)

      Du hast nicht sauber geschafft/ gelesen.
      Die Frage war im Text versteckt,->

      <?
      echo "<A HREF="show.php?id=$sid">Daten ansehen</A>";
      ?>
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      Mit diesem Link möchte ich auf der nächsten Seite den soeben gespeicherten Datensatz auslesen. Mittels ID. Ich kriegs aber nicht hin!!!!!!

      bydey

      1. HI!

        Danke für Eure Hilfe
        kein Problem, gern geschehen ;-)

        Du hast nicht sauber geschafft/ gelesen.
        Die Frage war im Text versteckt,->

        Oh, sorry ;-)
        Naja, trotzdem könnte man das Problem sicher ein wenig besser eingrenzen, bzw. Code_ausschnitte_ posten ;-)

        Grüße
        Andreas

        1. Servus

          Off course. Was ein Glück, dass ich kein php beherrsche sonst hätte ich das auch genauer analysiert.

          bydey

  2. $sid  = $HTTP_POST_VARS["id"];
    $version  = $HTTP_POST_VARS["version"];

    // in DATENBANK einfügen
    $sqlInsert  = "INSERT INTO kvs (version) VALUES ('$version'')";

    Benutze immer, immer, immer mysql_escape_string(), wenn Du Daten von "draußen" an MySQL weitergibst.

    $sqlInsert  = "INSERT INTO kvs (version) VALUES ('".mysql_escape_string($version)."')";

    Ähnliche Funktionen: addslashes() und htmlentities().

    $result = mysql_query($sqlInsert);
    if (mysql_error())

    Warum fragst Du nicht gleich mysql_query() ab?

    if (! $result=mysql_query($sqlInsert))
         die(mysql_error());

    (Den Teil "$result=" kannst Du auch ganz weglassen.)

    echo "<A HREF="show.php?id=$sid">Daten ansehen</A>";

    Mit diesem Link möchte ich auf der nächsten Seite den soeben gespeicherten Datensatz auslesen. Mittels ID.

    Dann solltest Du Dir die ID des gespeicherten Datensatzes holen oder sonst irgendetwas, mit dem Du den Datensatz eindeutig identifizieren kannst - irgendeinen Parameter aus dem Hut zaubern, ist jedenfalls wenig sinnvoll.

    Sofern die Datensätze in kvs eine Spalte mit AUTO_INCREMENT haben, kannst Du die Nummer des zuletzt gespeicherten Datensatzes per LAST_INSERT_ID() (SQL) oder mysql_insert_id() (PHP) abfragen.
    Gibt es keine solche Spalte, mußt Du den Datensätzen ein anderes, eindeutiges Merkmal verpassen.

    $result = mysql_query("Select * from news WHERE id=$sid",$db);

    Auch hier hast Du wieder vergessen, Dich mit mysql_escape_string() abzusichern.

    Davon abgesehen frage ich mich allerdings, ob Du weißt, was Du tust. Wenn Du oben etwas in die Tabelle kvs schreibst, warum versuchst Du dann hier, diesen Datensatz aus der Tabelle news zu holen? "Eben noch auf der Baustelle, jetzt auf der Showbühne"?

    Gruß,
      soenk.e

    1. Tschuldigung.
      Das mit der news Table war ein Irrtum.
      Danke
      kim