Zuweisung ID als verlinkung******

hanspeter

Mitglied
hallo ich brauche dringend eure hilfe
und zwar
PHP:
<table border="1">
<tr>
	<th>Datum</th>
	<th>Titel</th>
	<th>Link</th>
</tr>
<?php
$alleEvents= mysql_query("SELECT * FROM mynews ORDER BY id DESC");
while ($zeile = mysql_fetch_object($alleEvents))
//Zeile holen, bis kein Ergebnis mehr zurückgeliefert wird
{
	echo "<tr>";   //neue Zeile in der Ausgabe beginnen

	
	
	echo "<td>";
	echo ($zeile->$tblDateName);
	echo "</td>";

	echo "<td>";
	echo ($zeile->$tblContent);
	echo "</td>";
	
	echo "<td>";
	echo ($zeile->$tblLink);
	echo "</td>";
	
	echo "<td>";
	
	echo ($zeile->$tblId);
	echo "</td>";



	
	echo "</tr>";  //Ausgabezeile beenden
}
?>
</table>




</hr>
<?php




	function bearbeiten(){

$alleEvents= mysql_query("SELECT * FROM mynews WHERE ID=2");
while ($zeile = mysql_fetch_object($alleEvents))
//Zeile holen, bis kein Ergebnis mehr zurückgeliefert wird
{
$input_id 			= $zeile->ID;
$input_newsdate	 	= $zeile->newsdate;
$input_newstitle 	= $zeile->newstitle;
$input_newslink 	= $zeile->newslink;

	echo ('<br>');	  
	echo ('<hr>');
	
 	echo $out = "<input name=\"name\" type=\"text\" value=\"$input_id\">";
  	echo $out = "<input name=\"name\" type=\"text\" value=\"$input_newsdate\">";
	echo $out = "<input name=\"name\" type=\"text\" value=\"$input_newstitle\">";
	echo $out = "<input name=\"name\" type=\"text\" value=\"$input_newslink\">";
	
}
return;

	}
?>

WHERE ID=2 soll natürlich geändert werden in eine freie variable... oder wie auch immer man das beschreiben soll
ich will eigentlich das Oben in der Tabelle ein bearbeitungsimage ist, man darauf klicken kann und dann über die funktion den Datensatz bearbeiten kann und dann updaten kann oder wie auch immer...
Ich hoffe ihr könnt mir helfen
 
Dazu musst du aus dem "Bearbeitungsimage" einen Link machen. Bei diesem Link gibst du dann den Parameter/die ID an.

PHP:
<a href="seite.php?ID=<?php echo $wert; ?>"><img src="bild.jpg></a>

Wenn dann die Seite mit diesem Parameter aufgerufen wird kannst du ihn mit $_GET["ID"] auswerten.
 
und was ist mit der funktion bearbeiten denn die soll ja eigentlich ausgeführt werden...
müsste ich dann nicht für jede ID eine Neue Seite anlegen, bzw. ein Layout indem ich dann die bearbeiten funktion abrufe****
ich habe das noch nicht so ganz verstanden glaube ich :( Ich hatte ja den selben gedanken aber ich kanns nicht umsetzen...
lg. und danke im vorraus :)
 
Was in der obigen Seite fehlt ist das Formular an sich.

PHP:
<form name="formular" action= "deineseite.php" method="get">
<-- hier der HTML Code von oben -->

<?php
if (isset($_GET["ID"])) {
// hier der Code zum Bearbeiten der Daten.
// diese Zeilen werden nur ausgeführt wenn die Seite mit einer ID aufgerufen wird.
}
?>
</form>

Versuche mal ob du es damit ein Stüch weiter schaffst.
Ansonsten schau dich hier mal um. Da findest du viele Beispiele bei denen es um das Abschicken von Formularen und das Bearbeiten von Daten geht.
 
hallo :)

vielen Dank für deine bisherigen Antworten...
Leider bekomme ich es immernoch nicht hin..
ich muss ja praktisch gesehen das selbe machen wie was es bei phpMyAdmin gibt...
d.h. auf den Datensatz klicken zu einer ******vorgefertigten Seite kommen oder lass ich mir die erstellen?
Ich hoffe ihr könnt mir nochmal helfen ;)
lg.
 
Es wäre erstmal interessant zu wissen wie dein bisheriger Versuch aussieht. Es bringt eigentlich nichts wenn du hier nur fertige Code bekommst.

Will mal nicht so sein und zeige dir hier mal ein einfaches Beispiel. Es sollte dir helfen den Ablauf zu verstehen. Anpassen musst du es dann halt noch selber.


PHP:
<?php
include "cfg.inc.php";

$db = @mysql_connect($host, $user, $pass) or die ("Konnte keine Verbindung zur Datenbank herstellen");
mysql_select_db($daba, $db);

if (isset($_GET["speichern"]) and isset($_GET["ID"])) {
	$sql = "UPDATE tabelle SET feld1 = '" .mysql_real_escape_string($_GET["feld1"]) ."' WHERE ID = '" .mysql_real_escape_string($_GET["ID"]) ."' LIMIT 1";
	$rs = mysql_query($sql);
}

// alle Datensätze auslesen
$sql = "SELECT * FROM tabelle";
$rs = mysql_query($sql);
?>

<form name="formular" action="bearbeiten.php" method="get" enctype="text/html">
<table border="0" cellpadding="0" cellspacing="0">
<?php for ($zaehler = 0; $zaehler < mysql_num_rows($rs); $zaehler++) { ?>
	<tr>
		<td>Feld 1</td><td><?php echo mysql_result($rs, $zaehler, "feld1"); ?></td>
		<td><a href="bearbeiten.php?ID=<?php echo mysql_result($rs, $zaehler, "ID"); ?>">Bearbeiten</a></td>
	</tr>
<?php } ?>
</table>
<p></p>
<?php
// wird nur angezeigt wenn Seite mit ID aufgerufen wurde
if (isset($_GET["ID"])) {
	$sql = "SELECT * FROM tabelle WHERE ID = '" .mysql_real_escape_string($_GET["ID"]) ."' LIMIT 1";
	$rs = mysql_query($sql);

?>

<table border="0" cellpadding="0" cellspacing="0">
	<tr>
		<td>Feld 1</td><td><input type="text" name="feld1" value="<?php echo mysql_result($rs, 0, "feld1"); ?>" size="20" maxlength="50" /></td>
		<td><input type="hidden" name="ID" value="<?php echo mysql_result($rs, 0, "ID"); ?>" /></td>
		<td><input type="Submit" name="speichern" value="Speichern" /></td>
	</tr>
</table>

<?php
}
?>
</form>
 
okay :) danke ;D
davon hab ich leider die hälfte nicht verstanden. Bin ein totaler neuling...


PHP:
<?php

mysql_connect ("localhost","root","") or die ("Keine Verbindung möglich!");
mysql_select_db ("content") or die ("Die Datenbank existiert nicht. Bitte überprüfen sie den angegebenen Datenbanknamen");

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sail Along </title>
</head>

<body>

<?php


$strName = $_POST['strName'];
$strSlogan = $_POST['strSlogan'];
$dblLaenge = $_POST['dblLaenge'];
$dblBreite = $_POST['dblBreite'];
$dblTiefgang = $_POST['dblTiefgang'];
$dblSegelflaeche = $_POST['dblSegelflaeche'];
$intBesatzung = $_POST['intBesatzung'];



echo $strName;
echo $strSlogan;
echo $dblLaenge;
echo $dblBreite ;
echo $dblTiefgang;
echo $dblSegelflaeche ;
echo $intBesatzung ;
?>


<?php 

$eintrag = "INSERT INTO `content`.`schiffe` (`strName`, `strSlogan`, `dblLaenge`, `dblBreite`, `dblTiefgang`, `dblSegelflaeche`, `intBesatzung`) VALUES ('$strName', '$strSlogan', '$dblLaenge', '$dblBreite', '$dblTiefgang', '$dblSegelflaeche', '$intBesatzung'); ";

$eintragen = mysql_query($eintrag);

?>


<form name="formular" action="content_schiffe_eins.php" method="post">


<input type="text" name="strName" id="name" value="" />
<input type="text" name="strSlogan" id="strSlogan" value="" />
<input type="text" name="dblLaenge" id="dblLaenge" value="" />
<input type="text" name="dblBreite" id="dblBreite" value="" />
<input type="text" name="dblTiefgang" id="dblTiefgang" value="" />
<input type="text" name="dblSegelflaeche" id="dblSegelflaeche" value="" />
<input type="text" name="intBesatzung" id="intBesatzung" value="" />

<input type="submit" name="Absenden" /> 


</form>


<table border="1">
  <?php


  $ergebnis = mysql_query("SELECT * FROM schiffe");
  while($row = mysql_fetch_object($ergebnis))
  {
	
	echo ('<tr>');


	echo ('<td>');
    echo $row->ID;
	echo ('</td>');

	
	echo ('<td>');
	echo $row->strName;
	echo ('</td>');

	
	echo ('<td>');
	echo $row->strSlogan;
	echo ('</td>');

	
	echo ('<td>');
	echo $row->dblLaenge;
	echo ('</td>');

	
	echo ('<td>');
	echo $row->dblBreite;
	echo ('</td>');

	
	echo ('<td>');
	echo $row->dblTiefgang;
	echo ('</td>');

	
	echo ('<td>');
	echo $row->dblSegelflaeche;
	echo ('</td>');

	
	echo ('<td>');
	echo $row->intBesatzung;
	echo ('</td>');
	
	echo ('<td>');
	echo('<a href="content_schiffe_eins.php?ID=$row->ID">$wert</a>');
	echo ('</td>');
	
	echo ('</tr>');

  }
  ?>

</table>



<!--Update-->
  <?php
  $update = "UPDATE schiffe Set strName = 'Schatten unter dem Baum', 
  								strSlogan = 
  								dblLaenge = 
  								dblBreite = 
								dblTiefgang = 
								dblSegelflaeche = 
								intBesatzung = 

  WHERE id = '4'";
  ?>
<!--Update-->

<!--------------------------->

<!--Delete auf dem Symbol X mit Javascript alert ja / nein... 3 durch variable ersetzen-->
<?php
  $loesch = mysql_query("DELETE FROM links WHERE id = '3'");
  ?>

<!--Delete-->

</body>
</html>

Das ist mein bisheriger Code.. Natürlich ist er nicht korrekt und einiges fehlt.
echo('<a href="content_schiffe_eins.php?ID=$row->ID">$wert</a>');
Hier müsste er doch über das Bild zugreifen können auf die ID. Dahinter müsste dann also ein Formular stehen was dann alle werte des Datensatzes in Inputfelder schreibt die ich im nachhinein zum Update benutze...
Ich hoffe ihr könnt mir helfen.. und vielen dank für deine bisherige Mühe :) ... Nebenbei... ich brauche das ganze halt schnell ... Mache grade ein wichtiges Schulprojetk... :) Danke schonmal im vorraus für eure Hilfe :):)
 
Wir machen das mal Stück für Stück.
Wenn du mit der Maus über den Link zum Bearbeiten müsstest du merken das die ID nicht übergeben wird. Ändere es mal so:

PHP:
echo '<a href="content_schiffe_eins.php?ID=' .$row->ID .'">$wert</a>';

Bei dir wird immer beim Aufruf der Seite sofort die SQL-Anweisung zum Einfügen eines neuen Datensatz ausgeführt. Schau mal was die IF-Anweisungen in meinem Beispiel machen.
Gleiches gilt auch für die Update-Anweisung, auch sie wird automatisch ausgeführt so bald die Seite geladen wird.

Dann muss auch das schließende FORM-Tag an das Ende der Tabelle, sonst funktioniert das Formular nicht so wie es soll.
 
Zuletzt bearbeitet:
ich hatte ein paar internetprobleme ...
Du meinst if_ isset also soll ich ne if anweisung machen ... wenn alles gesetzt ist dann soll es erst übertragen werden?

und dann beim absenden soll das erst übertragen werden richtig?
..
 
Richtig.
Du kannst z.B. die Update-Anweisung in einen IF-Block setzen wo geprüft wird ob der Button zum Speichern angeklickt wurde.

Mach so mal Schritt für Schritt weiter. Wenn was nicht klappt kopiere deinen Code hier rein und wir schauen drauf woran es liegt.

Gruß Thomas
 
Zurück