Link in PHP + MySql

Hallo ich bin der neue :wink:

Ich betreue als Mitglied der Freiwilligen Feuerwehr die Webseite. Wir haben eine Seite, in dem unsere Einsätze aufgelistet sind (Datum, Alarm-Stichwort, Straße, Ort, Alarm, Ende) dies hatten wir bzw. haben wir noch in einem einfach HTML mit Tabelle. Nun habe ich das ganze mit PHP + MySql aufgebaut und dies funktioniert.
Warum ich hier schreibe? Nach vielen suchen in Suchmaschinen bin ich noch auf keine Lösung gestoßen was noch gesehen soll:
Bei manchen (also nich bei allen) gibt es zu den Einsätzen ein kleinen Bericht teilweise mit Bilder. der End-User bzw. Besucher soll durch klicken weitergeleitet werden auf eine HTML-Seite, wo der Bericht ist bzw. den Bericht angezeigt bekommen. Wie gesagt ist nicht zu jeden Einsatz ein Bericht verfügbar. Wie kann ich das realisieren? Hab schon einiges ausprobiert und weiß nun wirklich nicht mehr weiter…

Ich Danke schon mal für eure Hilfe!

Habe mal die Logbuch Seite sowie die Anzeige Seite angehängt

[CODE]

Datum:
Alarm-Stichwort:
Strasse:
Ort:
Alarm:
Ende

Anzeigen

<?Php //aufbau der datenbankverbindung
$host = 'XXX'; $user = 'XXX'; $password = 'XXX'; $db = 'einsaetze'; //verbindung zur db herstellen mysql\_connect($host, $user, $password); mysql\_select\_db($db); //übergabe der variablen $datum= $\_POST["datum"]; $stichwort= $\_POST["Stichwort"]; $strasse= $\_POST["Strasse"]; $ort= $\_POST["Ort"]; $alarm= $\_POST["Alarm"]; $ende= $\_POST["Ende"]; //sql-befehl zum eintragen der daten in die tabelle $eintrag = "INSERT INTO einsaetze (datum, Stichwort, Strasse, Ort, Alarm, Ende) VALUES ('$datum', '$stichwort', '$strasse', '$ort', '$alarm', '$ende')"; ///nun erfolgt der eintrag in die tabelle $eintragen = mysql\_query($eintrag); //folgende anweisungen rufen die formularseite wieder auf, um //weitere daten eingeben zukönnen. //datenbank wieder schliessen mysql\_close(); ?\>[/CODE] [CODE]<?php $server = "XXX";
$user = "XXX"; $password = "XXX"; $database = "einsaetze"; $db = mysql\_connect($server, $user, $password) or die ("datenbankverbindung fehlgeschlagen: ".mysql\_error()); $db\_select = mysql\_select\_db($database) or die ("auswahl der datenbank fehlgeschlagen"); $sql = "SELECT \* FROM einsaetze"; $result = mysql\_query($sql) OR die("Error: $abfrage ".mysql\_error()); ?\> Datum Beschreibung Alarm Ende <?php while($row = mysql_fetch_object($result))
{ ?\> <?php echo $row->Datum; ?\> <?php echo $row->Stichwort; echo ","; ?\> <?php echo $row->Strasse; echo ","; ?\> <?php echo $row->Ort; ?\> <?php echo $row->Alarm; ?\> <?php echo $row->Ende; ?\> <?php }
?\><?PHP mysql_close($db);
?\>[/CODE]

Hallo!
Gibt es den Bericht mit Bildern schon? oder muss der mit in die MySQL Tabelle?

Falls es ihn schon gibt, kannst du einfach eine ID-Spalte in der Tabelle ergänzen, welche per angehängter variable zur berichte Seite verlinkt. Wenn es keinen Bericht gibt, setzt du ID=0.

<?php if($row->ID!=0) { echo '['+$row-\>Stichwort+',](berichte.php?id='+%2524row-%3E%2520ID+')'; ?\> } else { echo $row-\>Stichwort+','; } Auf der Berichte Seite müsstest du dann die ID aus der URL abfragen ($\_GET['id']) und je nach ID einen anderen Bericht anzeigen. Wenn du beim "hochladen" auch direkt den Bericht mit eingeben willst, muss du 1)dafür ein eigenes Feld im Formular machen (eine Abfrage, wenn das Feld leer ist, muss ID=0 gesetzt werden), 2)dafür eine eigene Spalte in der MySQL-Tabelle anlegen und 3)und diese in der berichte.php ebenfalls über row[$\_GET['id']] oder so ähnlich auswählen und anzeigen. Für hochgeladene Bilder würde ich einfach die URL in der Tabelle speichern. Um das richtig schön hinzubekommen, wirst du noch eine Weile brauchen, aber es wird bestimmt gut. VG Markus

Hallo Markus,

erstmal Danke für deine Idee und Zeit.

Es ist ja nicht nur eine Seite sonndern mehrere also für fast jeden Einsatz einen eigen Link.
Z.B. Einsatz 1 hat URL xyz.html ; Einsatz 2 hat URL abc.html ; Einsatz 3 hat URL 123.html ; usw.

Aber nicht jeder Einsatz hat einen Bericht.

Oder habe ich dich falsch verstanden?!?!

Danke und Gruß

Timo alias Informationtechnik

Also dsnn musst du eine Spalte in der MySQL Tabelle anlegen, in der die URL des Berichts drinsteht.
Und setze im PHPMyAdmin für diese Spalte den Parameter, dass das Feld auch leer sein darf (null).

Dann gibst du beim schreiben der Meldung den Link in das Feld ein und der wird wie folgt verwendet.

<?php if($row->URL==null) { echo $row-\>Stichwort; } else { echo '[+$row-\>Stichwort+']('+%2524row-%3EURL+')'; } ?\>

Auch hier danke ich dir…wieder ein Schritt weiter…

folgendes: ich bekomme jetzt die URL im „anzeige.php“ angezeigt. Kann allerdings nicht dadrauf klicken um dirket weitergeleitet zu werden. Wie mache ich das? Habe schon mit HTML-Tag probiert - ohne erfolg.

Desweiteren soll der Besucher in der Tabelle nur ein „Info“ angezeigt bekommen, wo er drauf klickt und dan auf eine entsprechende „Bericht-Seite“ zum jeweiligen Einsatz weitergeleitet wird.

Kannst du auch da mir helfen? Wäre dankbar!

Hab dir noch mal den Code geschickt, damit du nach vollziehen kannst, wo es hängt…

<?php while($row = mysql_fetch_object($result))
{ ?\> <?php echo $row->Datum; ?\> <?php echo $row->Stichwort; echo ","; ?\> <?php echo $row->Strasse; echo ","; ?\> <?php echo $row->Ort; ?\> <?php if($row->URL==null) { echo $row-\>Ort; } else { echo '[Info](%2524url)'; } ?\> <?php echo $row->Alarm; ?\> <?php echo $row->Ende; ?\> <?php }
?\><?PHP mysql_close($db);
?\>
<?php if($row->URL==null) { echo 'Info'; } else { echo '[Info]('+%2524row-%3Eurl+')'; } ?\> Das muss in eine eigene Spalte deiner Ausgabetabelle. Dort steht dann "Info" drin. Je nachdem, ob die aktuelle URL existiert, wird es als Link angezeigt. Hoffe, ich konnte helfen! Ansonsten schreib nochmal, was du genau mit "Info" meinst.

Hi,

also ich denke es so:

wenn ein link vorhanden ist zur einer anderen Seite z.B. „seite_xyz.html“ soll der Besucher in der Tabelle eine INfo angezeigt bekommen, worauf er klicken kann und dem entsprechend weitergeleitet wird.

Ist kein Link vorhanden zu einer anderen Seite, so wird in der Tabelle auch kein Info angezeigt.

hier der aktuelle ausschnitt:

<?php if($row->URL==null) { echo $row-\>Ort; } else { echo $row-\>URL; } ?\>

Hey!

Also nochmal der betreffende Ausschnitt mit Kommentaren, damit du auch verstehst, was da steht:

<?php if($row->URL==null) {//Wenn das Feld "URL" in der MySQL Tabelle leer ist, ... echo $row-\>Ort;//...wird NUR der Ort in die grafische Tabelle geschreiben ... } else {//wenn dem aber nicht so ist (in dem Feld URL etwas steht, ... echo $row-\>URL;//... wird nur der Link als Text auf dem Bildschirm ausgegeben. } ?\> Deine Lösung ist: <?php if($row->URL==null) { echo $row-\>Ort; } else { echo $row-\>Ort; echo ' '; echo '[Info]('+%2524row-%3EURL+')'; } ?\>

Sorry!
Wer weiß was wandelt das a href immer schon in HTML code um und macht einen Link draus.

Also hier:

<?php if($row->URL==null) { echo $row-\>Ort; } else { echo $row-\>Ort; echo ' '; echo '[Info]('+%2524row-%3EURL+')'; } ?\> So funktioniert es definitv. Das solltest du verstehen, schwer ist das nicht! VG