PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mysql Daten ausgeben mit Verlinkung zu einer andern Seite



byron1778
27-02-2006, 11:11
Hallo Forum,

ich habe ein Problem mit meiner PHP Ausgabe.

Ich möchte mir die Datenbank ausgeben lassen.
Neben der Datenausgabe (diese funktioniert schon) soll dann "Ansehen" stehen pro Zeile und Aendern.
Drückt man dann auf Ansehen dann werden die Daten komplett ausgegeben.
Drückt man hingegen auf Ändern, kann man den Datensatz ändern.

So sollte die Ausgabe aussehen:

1|Hallo|Ändern|Ansehen
2|HEute|Ändern|Ansehen

usf.

Leider habe ich keine Idee wie ich das Problem lösen könnte.

Kann mir jemand vielleicht weiterhelfen?

Hier einmal der Code, soweit ich Ihn geschafft habe.

<html>
<body>
<?php
print '<form action="index.php" method="get">';?>
<?php
$Username = $_GET['Username'];

print '<p align="center"><font color="red">Sie sind angemeldet als' . " $Username" . '</p></font>';


print '<hr>';
print '<p>Kundendaten Cases</p>';
print '<hr>';


print '<p><a href="http://localhost/Neuanlegen.php">Neuen Datensatz anlegen</a></p>';

$i = 0;
do {
print '&nbsp;' . "\n";
++$i;
} while ($i<100);


$db = "intern";
$user = "$Username";
$pass = "$Password";
$link = @mysql_connect ("localhost", $user, $pass);
if(! $link)

{

die ("Cannot connect to Database because not enough rights: ".mysql_error());

}

@mysql_select_db($db, $link) or die("Cannot open Database: ".mysql_error());

$sql = 'Select * from intern';

$result = mysql_query($sql);

print '<table border="1">'."\n";

while($row = mysql_fetch_row($result))

{

print '<tr>' . "\n";

foreach($row as $field) {


print '<td>' . stripslashes($field) . '</td></a>';

}

print "</tr>\n";}

print "</table>\n";

mysql_close($link);

?>
</body>
</html>

Vielen Dank schon einmal im vorhinein.

Mfg
Byron

byron1778
27-02-2006, 14:32
Ich antworte mir mal selber.

Konnte mein erstes Problem soweit selber lösen.

Er schreibt die Datensätze hin und neben jeden Datensatz 2 Buttons mit Ansehen und Aendern.

Weiters verweist das Script auf ein anderen Script dann worin man entweder den DS ändern oder komplett ansehen kann.

Aber genau das schaffe ich jetzt nicht.



Hier mal der Code vom fertigen Script (hoffentlich!).

print '<table border="1">'."\n";

while($row = mysql_fetch_row($result))

{

print '<tr>' . "\n";

foreach($row as $field) {

print "<td>$field</td>";

}

print '<td><input type="submit" name="ansehen" value="ansehen" /></td>';
print '<td><input type="submit" name="aendern" value="aendern" /></td>';
print "</tr>\n";}

print "</table>\n";



Wenn ich jetzt auf ansehen klicke, wie kann ich auf der anderen Seite dann genau nur diesen einen DS ganz ansehen?

Weiss hier jemand vielleicht einen Rat für mich?

Mfg
Byron

philneu
03-03-2006, 14:36
while($row = mysql_fetch_row($result))


Wo ist denn Deine SQL Abfrage dazu? Also das eigentliche query, das in $result stecken sollte?
Gehe mal davon aus, das sie alle DS umfasst....




Wenn ich jetzt auf ansehen klicke, wie kann ich auf der anderen Seite dann genau nur diesen einen DS ganz ansehen?


Erstmal würde ich kein Submit dafür benutzen (ich finde es hässlich)...
Ein einfacher Link in folgender Form reicht:

<a href='edit.php?ID_Kunde=$id_kunde'>Ändern</a>

Dann muss Deine Selectabfrage in der Datei edit.php ungefähr so sein:

SELECT * from kunde
WHERE id_kunde='$id_kunde'

Danach musst Du dann eine Maske aufbauen (hasse es) in dem er die entsprechenden input-Felder mit der Eigenschaft "value" aus der DB auffüllt.

Du musst dringend darauf achten, daß Du eine EINDEUTIGE id_kunde hast, womit du Dich EINDEUTIG auf diesen Datensatz beziehen kannst (--> siehe PRIMÄRSCHLÜSSEL).

Außerdem musst du dringend darauf achten,daß der Nutzer auch authorisiert ist (-->SESSION-Verwaltung).
Sonst kann jeder Schnösel die File aufrufen und alle Kunden ändern...

rideyourstyle
10-03-2006, 20:05
Frage: die angegebene lösung funktioniert ja wunderbar bei get übermittlung!
kann man so was auch per post realisieren ohne dabei ein formular zu erzeugen???

weil bei einem formular würde es wieder die "hässlichen" buttons ergeben!



Erstmal würde ich kein Submit dafür benutzen (ich finde es hässlich)...
Ein einfacher Link in folgender Form reicht:

<a href='edit.php?ID_Kunde=$id_kunde'>Ändern</a>

Gaert
10-03-2006, 21:29
Hallo rideyourstyle,


kann man so was auch per post realisieren ohne dabei ein formular zu erzeugen Nein...

weil bei einem formular würde es wieder die "hässlichen" buttons ergeben! Nicht zwangsläufig - dafür gibts Javascript.

Beispiel:
-> http://de.selfhtml.org/javascript/objekte/forms.htm#submit

Auf diesem Beispiel aufbauend könntest du einen solchen Link bauen um das Formular ohne Submit Button abzuschicken:

<a href="#" onClick="abGehts();">Ändern</a>

philneu
10-03-2006, 23:54
Frage: die angegebene lösung funktioniert ja wunderbar bei get übermittlung!
kann man so was auch per post realisieren ohne dabei ein formular zu erzeugen???
Hmmh, fällt mir nix ein, außer JS, wofür ich außer für ganz spezielle Funktionen abraten würde.
Wozu brauchst Du POST?


weil bei einem formular würde es wieder die "hässlichen" buttons ergeben!
Du kannst die Knöpfe einfach per CSS verschönern, Falls Du ein POST brauchst...
Ich empfehle Selfhtml von http://www.selfhtml.org zum Download.

Empfohlene CSS-Attribute (style=):
width, height, background, color, font-size und einige mehr...



Generell kannst Du aber das meiste ohne POST realisieren...
Außer eben Formulareingaben. Wenn es nur ein bis drei Werte sind, würde ich GET vorziehen.