Aufgelistete Daten als Hyperlink
am 12.10.2004 00:40:42 von fabio.marti
Hallo letzte-hilfe-team!
ich habe eine buch db. ich erfasse diese per formular (mit allen
details). ich möchte eine "hauptseite" haben, auf der alle buchnamen
aufgelistet sind. das funktioniert auch. aber ich möchte, dass die
buchnamen als hyperlink erscheinen, damit ich drauf klicken kann um
die details zu sehen (auf einer anderen seite).
als html ist es ja kein problem, aber wenn die daten aus einer db
kommen schaff ich's nicht diese zu verlinken. vor allem weis ich nicht
wie es funktionieren sollte, wenn ein neues buch dazu kommt (code und
so...). der hyperlink ergänzt sich wohl nicht automatisch, oder?
(habe die katze gefragt... gibt aber <1 antwort)
danke für die tips und codes! alle faq's und tips von allem möglichen
seiten aus büchern und net haben nix geholfen (darum von mir auch kein
code vorhanden).
"der mit der maus wirft"
Fabio
Re: Aufgelistete Daten als Hyperlink
am 12.10.2004 09:00:15 von Stefan Ey
Fabio schrieb:
> Hallo letzte-hilfe-team!
>
> ich habe eine buch db. ich erfasse diese per formular (mit allen
> details). ich möchte eine "hauptseite" haben, auf der alle buchnamen
> aufgelistet sind. das funktioniert auch. aber ich möchte, dass die
> buchnamen als hyperlink erscheinen, damit ich drauf klicken kann um
> die details zu sehen (auf einer anderen seite).
> als html ist es ja kein problem, aber wenn die daten aus einer db
> kommen schaff ich's nicht diese zu verlinken. vor allem weis ich nicht
> wie es funktionieren sollte, wenn ein neues buch dazu kommt (code und
> so...). der hyperlink ergänzt sich wohl nicht automatisch, oder?
> (habe die katze gefragt... gibt aber <1 antwort)
>
> danke für die tips und codes! alle faq's und tips von allem möglichen
> seiten aus büchern und net haben nix geholfen (darum von mir auch kein
> code vorhanden).
>
> "der mit der maus wirft"
> Fabio
ich habe das mit zwei verschiedenen scripts gelöst (geht vielleicht auch
anders).
//Bücher auf der Hauptseite
$tmp_query = "SELECT * FROM buecher;
$tmp_result = mysql_query($tmp_query) or die("Anfrage fehlgeschlagen
".$tmp_query."
".mysql_error());
while ($tmp_row = mysql_fetch_array($tmp_result)) {
$tmp_id = $tmp_row['id'];
$tmp_title = $tmp_row['titel'];
//hier der Link auf das Buch
echo "
";
}
mysql_free_result($tmp_result);
//Buch auf der Detailseite
$id = $_GET['id'];
$tmp_query = "SELECT * FROM buecher WHERE id=$id;
$tmp_result = mysql_query($tmp_query) or die("Anfrage fehlgeschlagen
".$tmp_query."
".mysql_error());
$tmp_row = mysql_fetch_assoc($tmp_result);
mysql_free_result($tmp_result);
//ab hier kannst Du mit den Daten des Buches, die in $tmp_row stehen
machen was Du willst
$tmp_id = $tmp_row['id'];
....
$tmp_title = $tmp_row['titel'];
Gruß Stefan
Re: Aufgelistete Daten als Hyperlink
am 12.10.2004 12:04:02 von Michael Rittweger
Hallo, Fabio!
> buchnamen als hyperlink erscheinen, damit ich drauf klicken kann um
> die details zu sehen (auf einer anderen seite).
1. Schritt: Per SQL werden die benötigten Daten für die "Übersicht" geholt
und in einer tabellarischen Form ausgegeben. Dazu brauchst Du z.B. etwas in
der Art von
"select id, nachname [, weitere] from t_personen;"
Dein html/php bastelt daraus die Übersicht ungefaehr so:
[liste.php]
....
solange es noch Datensätze gibt: einlesen in $row ?>
|
... --> ggf. weitere Spalten anzeigen
....
Dabei ersetzt Du:
[ref] -->
[nachmame] -->
Damit werden auch neu aufgenommene Datensätze immer mit angezeigt und Du
mußt nicht "händisch" an der Übersicht herumschrauben.
2. Schritt: Jetzt brauchst Du die Detail-Anzeige. Dafür kann das Script über
den id-Parameter gezielt den gewünschten Datensatz aus der Tabelle
herausfischen. Also sowas in der Art von
"select id, nachname [, weitere] from t_personen where id='" . $_GET['id'] .
"';"
[details.php]
....
Nachname: |
[nachname] |
... --> ggf. weitere Details anzeigen
|
....
Dabei ersetzt Du wieder:
[nachmame] -->
Noch ein paar Anmerkungen:
Sicherheitsabfragen, ob Verbindung zu Server, Datenbank und Tabelle besteht,
setze ich mal voraus. Auch 'leere Tabelle' sollte sauber abgefangen werden.
Als Grundgerüst benutze ich ganz gerne:
$db_server = "";
$db_name = "";
$db_user = "";
$db_passwort = "";
$db = @mysql_connect($db_server,$db_user,$db_passwort);
if ($db) {
$db_select = @mysql_select_db($db_name);
if ($db_select) {
$sql = "SELECT ...";
$result = mysql_query($sql);
if ($result) {
$menge = mysql_num_rows($result);
if ($menge) {
// ...
} else {
echo "keine Datensätze
";
}
} else {
echo "Abfrage nicht erfolgreich
";
}
} else {
echo "Keine Verbindung zur Datenbank
";
}
} else {
echo "Keine Verbindung zum Server
";
}
Sollten es viele Datensätze in der Übersicht werden, empfiehlt es sich, die
Datensätze auf x / Seite zu begrenzen und eine vorwärts/zurück-Navigation
einzubauen.
Das Detail-Formular sollte bei fehlendem id-Parameter genauso wenig quer
schießen, wie bei ungültiger id (URL von Hand manipuliert z.B.), für die es
keinen Datensatz gibt.
Entsprechendes "order by" oder "where" für die Übersicht wirst Du selbst
wissen, was nötig ist.
Ich setze "id" als "unique"-Feld (primary-key?) voraus, z.B.
"auto-increment". Ev. noch etwas stilvoller ist ein "limit 1" in der
detail-query.
Mehr fällt mir jetzt so auf Anhieb nicht ein. Hab ich was vergessen oder
übersehen?
> Fabio
Gruß, Michael
Re: Aufgelistete Daten als Hyperlink
am 13.10.2004 08:23:45 von fabio.marti
Besten Dank Leute! Es funkzt!!! juhhuuu!!!!
Fabio
"Michael Rittweger" wrote in message news:...
> Hallo, Fabio!
>
> > buchnamen als hyperlink erscheinen, damit ich drauf klicken kann um
> > die details zu sehen (auf einer anderen seite).
>
> 1. Schritt: Per SQL werden die benötigten Daten für die "Übersicht" geholt
> und in einer tabellarischen Form ausgegeben. Dazu brauchst Du z.B. etwas in
> der Art von
>
> "select id, nachname [, weitere] from t_personen;"
>
> Dein html/php bastelt daraus die Übersicht ungefaehr so:
>
> [liste.php]
> ...
>
>
> solange es noch Datensätze gibt: einlesen in $row ?>
>
> |
> ... --> ggf. weitere Spalten anzeigen
>
>
>
>
> ...
>
> Dabei ersetzt Du:
> [ref] -->
> [nachmame] -->
>
> Damit werden auch neu aufgenommene Datensätze immer mit angezeigt und Du
> mußt nicht "händisch" an der Übersicht herumschrauben.
>
> 2. Schritt: Jetzt brauchst Du die Detail-Anzeige. Dafür kann das Script über
> den id-Parameter gezielt den gewünschten Datensatz aus der Tabelle
> herausfischen. Also sowas in der Art von
>
> "select id, nachname [, weitere] from t_personen where id='" . $_GET['id'] .
> "';"
>
> [details.php]
> ...
>
>
>
>
> Nachname: |
> [nachname] |
>
> ... --> ggf. weitere Details anzeigen
> |
>
> ...
>
> Dabei ersetzt Du wieder:
> [nachmame] -->
>
> Noch ein paar Anmerkungen:
>
> Sicherheitsabfragen, ob Verbindung zu Server, Datenbank und Tabelle besteht,
> setze ich mal voraus. Auch 'leere Tabelle' sollte sauber abgefangen werden.
>
> Als Grundgerüst benutze ich ganz gerne:
>
> $db_server = "";
> $db_name = "";
> $db_user = "";
> $db_passwort = "";
> $db = @mysql_connect($db_server,$db_user,$db_passwort);
> if ($db) {
> $db_select = @mysql_select_db($db_name);
> if ($db_select) {
> $sql = "SELECT ...";
> $result = mysql_query($sql);
> if ($result) {
> $menge = mysql_num_rows($result);
> if ($menge) {
> // ...
> } else {
> echo "keine Datensätze
";
> }
> } else {
> echo "Abfrage nicht erfolgreich
";
> }
> } else {
> echo "Keine Verbindung zur Datenbank
";
> }
> } else {
> echo "Keine Verbindung zum Server
";
> }
>
> Sollten es viele Datensätze in der Übersicht werden, empfiehlt es sich, die
> Datensätze auf x / Seite zu begrenzen und eine vorwärts/zurück-Navigation
> einzubauen.
>
> Das Detail-Formular sollte bei fehlendem id-Parameter genauso wenig quer
> schießen, wie bei ungültiger id (URL von Hand manipuliert z.B.), für die es
> keinen Datensatz gibt.
>
> Entsprechendes "order by" oder "where" für die Übersicht wirst Du selbst
> wissen, was nötig ist.
>
> Ich setze "id" als "unique"-Feld (primary-key?) voraus, z.B.
> "auto-increment". Ev. noch etwas stilvoller ist ein "limit 1" in der
> detail-query.
>
> Mehr fällt mir jetzt so auf Anhieb nicht ein. Hab ich was vergessen oder
> übersehen?
>
> > Fabio
>
> Gruß, Michael