link der id zuweisen

Jule10

Grünschnabel
Hallo sorry bin ein Neuling bezüglich php,
ich habe in php eine Tabelle erstellt, die bestimmte Daten aus der Datenbank (SQL) entnimmt und in die Tabelle html wieder gibt. Außer die bestimmten Daten soll in jeder Zeile der Tabelle einen Link angebracht werden, die weitere Details über die Personen offenbart.

hier ein Beispiel:

id | Name | Adresse| Ort| links
---------------------------------------
1 | Hans Müller| bla | bla|link
----------------------------------------
2 |Jans b... |blan |bla |link

Leider komme ich nicht darauf, wie ich in php sage, dass id1 angeklickt wurde. Zugriff hat ein Professor nicht der Student, so dass ich (zumindest glaub ich das :)), mit session nicht arbeiten kann.

in der Url steht zumindest schon :/perso.php=1 oder Person.php=2... . Mir fehlt der Punkt, wie ich jetzt weiter machen kann.
Ich habs schon mal so versucht mit einer if-Anweisung

PHP:
(if ($row['id']="1"){
$ergebnis = mysqli_query("SELECT * FROM persodaten where id = '%s'", $id));
$row = mysqli_fetch_assoc($ergebnis);}
 
Hi, wie wäre es denn so? ist auf die schnelle und ungeprüft.

PHP:
<?php
$mysqli = new mysqli("localhost", "username", "password", "dbname");
   if ($mysqli->connect_error) {
         echo "Fehler bei der Verbindung: " . mysqli_connect_error();
     exit();
   }
   if (!$mysqli->set_charset("utf8")) {
       echo "Fehler beim Laden von UTF8 " . $mysqli->error;
   }
?>

<?php
    $id = $_GET["id"];
    if($stmt = $mysqli->prepare("SELECT `id`, `Name`, `Adresse`, `Ort`, `links`
         FROM `persodaten ` WHERE id=?")) {
        $stmt->bind_param("i", $id);
    $stmt->execute();
    $stmt->bind_result($id, $name, $adresse, $ort, $links);
    $stmt->fetch();
    $stmt->close();
    $mysqli->close();
    }

?>
<?php echo $id; ?> <br>
<?php echo htmlspecialchars($name); ?> <br>
<?php echo htmlspecialchars($adresse); ?> <br>
<?php echo htmlspecialchars($ort); ?> <br>
<?php echo htmlspecialchars($links); ?>
 
Danke, bist ja sehr schnell, wow
Sorry, hab mein problem ein wenig falsch beschrieben...

Der link ist in der Datenbank nicht enthalten. Die Daten aus der Datenbank in eine Tabelle hatte ich bereits. Zusätzlich habe ich noch einen link erstellt bei jeder Zeile.
PHP:
erste php seite:
perso.php
    $ergebnis = mysqli_query ($db, "SELECT id, name, strasse, ort FROM persodaten group by id ORDER BY id desc");
$row = mysqli_fetch_assoc($ergebnis);
    
echo "<table border=\"1\">\n";   
echo '<table><thead><tr><th>id</th><th>ort</th><th>strasse</th>th>link</th></tr></thead><tbody>';
   

    while  ($row =mysqli_fetch_assoc ($ergebnis))
    {
  echo "<tr>";     
  echo "</td>";  
   
            echo "<td>".$row['id'] . "</td>";   
            echo "<td>".$row['name'] . "</td>";       
            echo "<td>".$row['strasse'] . "</td>";   
            echo "<td>".$row['ort'] . "</td>";
               
    echo "<td>";

echo "<a href=detail.php=".$row['id']."><img src=".$row['name']."></a>";}  }      //hab damit link erstellt, soll somit auf zweite seite weitergeleitet werden

da ich nicht jeden link eine neue Seite zuordnen möchte (datenmenge zu groß), wollte ich das in einem Array machen. Dachte dabei an einer if-Anfage, sowas wie If(id ['1']=="klick")

Die Sachen aus der db zu holen ist hier kein Problem. Hierbei ist für mich die Schwierigkeit mit der Zuweisung also wenn auf id1 = angeklickt wurde, soll auf seite 2 (detail.php) die daten dieser von id1 sichtbar werden.
Ich gehe davon aus, dass die URL in einem array integriert werden soll, wie gesagt nur ne Vermutung, bin ja ein Neuling :)
 
Hi,

ich habe dich schon verstanden :D mein Code sollte genau das machen was du wünscht. Das Script kann via GET[] abgerufen werden. Ja du liegst richtig - es ist ein Array nur hier ein Superglobals Array.

Da es für mich nicht ersichtlich ist wie du die Datenbank Verbindung herstellst mache ich erneut ein Beispiel.

Wir nehmen mein Code von oben

PHP:
<?php
$mysqli = new mysqli("localhost", "username", "password", "dbname");
   if ($mysqli->connect_error) {
         echo "Fehler bei der Verbindung: " . mysqli_connect_error();
     exit();
   }
   if (!$mysqli->set_charset("utf8")) {
       echo "Fehler beim Laden von UTF8 " . $mysqli->error;
   }
?>

<?php
    $id = $_GET["id"];
    if($stmt = $mysqli->prepare("SELECT `id`, `Name`, `Adresse`, `Ort`
         FROM `persodaten ` WHERE id=?")) {
        $stmt->bind_param("i", $id);
    $stmt->execute();
    $stmt->bind_result($id, $name, $adresse, $ort);
    $stmt->fetch();
    $stmt->close();
    $mysqli->close();
    }

?>
<?php echo $id; ?>
<?php echo htmlspecialchars($name); ?> <br>
<?php echo htmlspecialchars($adresse); ?> <br>
<?php echo htmlspecialchars($ort); ?> <br>

Ändere die Default Datenbankdaten im Code ab und speicher sie als muster.php
Rufe sie nun auf als muster.php?id=1 nun sollte es zur einer Ausgabe kommen.

Was passiert? Die Datei ist auf einer art Dynamisch, ich Deklariere in Zeile 13 $id, die ID erhält den Inhalt von dem GET['id'] Parameter in dem Fall 1. Nun wird in der Datenbank der Eintrag mit der ID 1 gesucht und ausgegeben. Die 1 könnte man nun in 2 3 oder immer abändern je nach dem wie viele Datensätze du in deiner Datenbank hast.

PHP:
echo "<a href=detail.php=".$row['id']."><img src=".$row['name']."></a>";}  }      //hab damit link erstellt, soll somit auf zweite seite weitergeleitet werden

ändern nach

PHP:
echo "<a href=muster.php?id=".$row['id']."><img src=".$row['name']."></a>";}  }      //hab damit link erstellt, soll somit auf zweite seite weitergeleitet werden

Freue mich auf Feedback
 
Danke schön, ja es hat geklappt. Super!
du bist echt toll!
Ach ja und sorry, dass ich dich missverstanden habe.
 
Zurück