PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Übergabe der Variable funktioniert nicht


sfelder
19.12.2006, 22:54:00
Jetzt gehen die Probleme weiter. Ich gebe mit folgendem Script die Namen ($artistname) und Bildname ($bildname) aus der Datenbank aus, das funktioniert jetzt einwandfrei:

//Ausgabe aus Datenbak
<?php
$anzeigen=10;
$host="localhost";
$user="root";
$pass="";
$db="benni";
$PHP_SELF=$_SERVER['PHP_SELF'];

$start=1;
if (isset($_GET['start'])) $start=$_GET['start'];


//Auslesen der Einträge
$link = mysql_connect ($host,$user,$pass);
mysql_select_db($db, $link);


//Ermitteln der Anzahl der Einträge
$sql1 = "SELECT count(*) FROM bilder";
$result1 = mysql_query($sql1, $link);
$max = mysql_result($result1,0,0);

?>

<html>
<head>
<title>Bilderverwaltung</title>
</head>
<body>

<?php
//Ausgeben der Einträge
$sql = "SELECT BildID, artistname, bildname FROM bilder WHERE BildID >=1 ORDER BY artistname LIMIT $start , $anzeigen";
$result = mysql_query($sql, $link);
while($ergebnis = mysql_fetch_array($result))
{
echo '
<table border="0" width="500"><tr><td>' . $ergebnis['artistname'] . '</td>
<td align="left">' . $ergebnis['bildname'] . ' </td>
<td align="left"> bearbeiten </td> </tr>
</table>';
}

//Ausgeben der Weiter und zurück Buttons
echo "<table border=0 width=500><tr><td align=left>";
if($start>=$anzeigen){echo "<a href='".$PHP_SELF."?start=".($start-$anzeigen)."'>zurück</a>";}
echo "</td><td align=right>";
if($start+$anzeigen<$max){echo "<a href='".$PHP_SELF."?start=".($start+$anzeigen)."'>weiter</a>";}
echo "</tr></table>";
?>
</body>
</html>

//Scriptende

Jetzt möchte ich die Ergebnisse weiter bearbeiten, um sie an das Formular zu schicken, mit dem sie eingegeben wurden. Dort will ich sie dann Updaten. Die Ergebnisse werden in zehn Reihen dargestellt. Leider weiß ich nicht, wie ich über einen Button (ich habe an der notwendigen Stelle schon mal "bearbeiten" eingefügt) nun das jeweils angezeigte Ergebnis an das Formular update.php übergeben kann. Weiß jemand Rat?

Opendix
19.12.2006, 23:27:47
öhm...


$PHP_SELF=$_SERVER['PHP_SELF'];


warum benutzt du nicht einfach $_SERVER['PHP_SELF'] ???

so und nun weis ich nicht genau wo dein Problem liegt?
also du gibst auf einer Seite sagen wir mal 10 einträge aus und nun möchtest du zu jedem ein update-Button der in das Formular führt in dem das ding bearbeitet werden kann?

Ich würde da eifnachein Link machen der irgendwie so heisst:

<a href="update.php?id=1>Bearbeiten</a>


also immer die ID des eintrags der bearbeitet werden soll im Link
in der Update.php kannst du dann einfach die Daten dieser ID abfragen und editieren...


btw. benutze bitte die PHP-Tags dieses Forums um Code darzustellen!

BenniG.
19.12.2006, 23:33:25
warum benutzt du nicht einfach $_SERVER['PHP_SELF'] ???

Weil ich ihm sein register_globals untaugliches Script umgeschrieben hatte und keine Lust hatte das mehrfach zu ändern ;)
http://www.selfphp.info/forum/showthread.php?t=15577
Komisch dass die Datenbank immernoch Benni heißt ;)

sfelder
19.12.2006, 23:39:02
Ok, danke. Ich werde das mal probieren. Ich hab irgendwie ein Verständnisproblem. Wenns klappt, danke, ansonsten versuch ich morgen das Problem deutlicher darzulegen....

Danke vorerst...

Damir
20.12.2006, 08:16:13
Danke vorerst...

Aber bitte benutze das nächste mal bitte die PHP-Tags des Furums für deinen Programmcode!!!!!!

Damir

sfelder
20.12.2006, 11:25:18
Habs jetzt versucht und klappt nicht. Ich glaube, ich kann jetzt auch beschreiben warum. Ich will über den bearbeiten Link auf alle Daten zugreifen, die zur Variablen $bildname gehören. Zur Erläuterung: Ich habe eine table inder DB die 'bilder' heißt, darin stehen einige Infos über die Bilder wie z.B. der Künstler, die Technik, etc.
Nun lese ich mit dem überarbeiteten Script von BenniG zwei Werte aus der DB aus und liste alle Bilder auf. Die Ausgabe ist wie folgt:

Chagall Peintre devant chevalet bearbeiten
Chagall Fleurs rouges et bleues bearbeiten
Chagall Nimrod bearbeiten
Chagall La nuit enchantée bearbeiten
Chagall Paysage à L´Isba bearbeiten
Chagall Coq au-dessus du toit rouge bearbeiten
Chagall La Famille bearbeiten
Chagall Profil au bouquet rose bearbeiten
Chagall Autour des deux ânes bearbeiten
Chagall Le jardin d´Eden bearbeiten
weiter

Und nun möchte ich alle Werte z.B. der Reihe Chagall Nimrod in einem Formular bearbeiten. Es gibt also keine feste id, die ich im ahref eingeben kann.
Wie kann ich jetzt mein Problem lösen?
Ich hoffe, Ihr versteht mich :-)

BenniG.
20.12.2006, 11:33:31
Habs jetzt versucht und klappt nicht.
Was hast du denn versucht?

while($ergebnis = mysql_fetch_array($result))
{
echo '
<table border="0" width="500"><tr><td>' . $ergebnis['artistname'] . '</td>
<td align="left">' . $ergebnis['bildname'] . ' </td>
<td align="left"> bearbeiten </td>
<td><a href="bearbeiten.php?id=' . $ergebnis['BildID'] . '">bearbeiten</a></td>
</tr>
</table>';
}

Damit hast du den Link erzeugt. In der bearbeiten.php holst du die ID mit $id=$_GET['id'] in dein Script und machst eine Abfrage:

$id=0;
if (isset($_GET['id']) && is_numeric($_GET['id']) ) {
$id=$_GET['id'];
} else {
die ("Es wurde keine korrekte BildID übergeben!");
}
$sql = "SELECT [alle_spalte] FROM bilder WHERE BildID=" . $id;
$result = mysql_query($sql) or die(mysql_error());

Das result brauchst du dann nurnoch auslesen und darstellen..

sfelder
20.12.2006, 12:43:24
Folgender Fehler tritt auf:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Bedeutet?

sfelder
20.12.2006, 12:57:52
Fehler gefunden, jetzt klappt es.
BenniG ist der Held des Tages. Danke.
Für einen kürzlich in die PHP Programmierung eingestiegenen wie mich eine große Hilfe.

DANKE