Einen Datensatz ausgeben

Status
Für weitere Antworten geschlossen.

fawin2

Benutzer
Beiträge
8
Hallo zusammen,

ich habe nochmal eine kurze Frage und würde mich über eure Hilfe freuen.

Ich würde gerne den Inhalt einiger Felder eines Datensatzen in Variablen speichen, um anschließend damit weiterzuarbeiten.
DIe Datensatz-id übergebe ich per URL-Parameter

Für die komplette Ausgabe einer Datenbank habe ich bisher eine while-Schleife verwendet, aber das ist ja bei nur einem Dateznsatz nicht notwendig.

PHP:
<?php

require 'inc/db.php'; //Verbindung mit Datenbank herstellen

$id = $_GET['id']; // ID aus URL auslesen

$sql = $db->query("SELECT * FROM tabelle_2 WHERE ID = " . $id . "");

while($row = mysqli_fetch_object($sql))
    { 
      echo "Name: " . $row->F10;
      echo "Ort: " . $row->F11;
    }

?>

Wie müsste ich denn meinen bisherigen Code ändern, damit ich die einnzelnen Felder in Variablen speichern kann?

Ich würde z.B. gerne Ausgeben
PHP:
echo "Mein Freund " . $name . " wohnt in " . $ort;


Über einen Tipp würde ich mich sehr freuen.

Vielen Dank und viele Grüße
 
Zuletzt bearbeitet:
Werbung:
Wofür die einzelnen Variablen speichern?

einfach die while schleife wie gewollt nutzen.

Beispiel:
die SQL-Query:
Code:
$sql = "select 1, 2 union select 2, 1;";

Die Schleife:
Code:
while ($row = fetch_row($sql)) {
echo $row[0]+$row[1];
}

Resultat:
Code:
33

Das ist eher PHP-spezifisch, sprich hier nicht ganz das richtige Forum ;)
 
Vielen Dank für eure Antworten!

@akretschmer: Du hast natürlich Recht. Ich brauche jedoch alle 4 Felder aus dem Datensatz. Für die Erklärung hatte ich der Übersichtlichkeit halber nur zwei angegeben.

Den Inhalt der Felder muss ich in Variablen speichern, da ich diese einem mailto-Link übergeben möchte. Das ganze ist ein exotischer Anwendungsfall. Im Intranet möchte ich per Link die Felder aus dem Datensatz per Mail weiterschicken.
 
Du hast natürlich Recht. Ich brauche jedoch alle 4 Felder aus dem Datensatz. Für die Erklärung hatte ich der Übersichtlichkeit halber nur zwei angegeben.

In einer anderem App fragst Du nicht einen Datensatz ab, sondern z.B. 1000. Später erweiterst Du Deine Tabelle um ein Feld 'Katzenvideos', wo jeder 1GB speichern kann. Deine App weiß aber von diesem Feld nichts und wirft die Katzenvideos weg. Zwischen App und DB-Server liegt ein lahmes Netz. Über dieses ziehst Du nun also 1000 mal je 1 GB, nur um diese Daten zu ignorieren.
 
1. Treffer bei Google:

Gesucht habe ich:
sql datensätze in email einlesen

Code:
<?php
    echo "<a href='mailto:empaenger@example.org?body=Das%20ist%20der%20Bodytext.%0D%0A%0D%0AViel%20Spass%20damit'>eMail</a>";
?>

Beispiel mit SQL:
Code:
<?php
    $conn = pg_connect("host=127.0.0.1 dbname=postgres user=postgres");
  
    $sql = pg_query($conn, "select name, ort from benutzer where id = $_GET[id]");
  
    while($row = pg_fetch_row($sql)) {
        echo "<a href='mailto:empaenger@example.org?body=Hallo%20".$row[0]."%20aus%20$row[1]'>eMail</a>";
    }
?>

EDIT: danke für die Frage, kannte bisher keine mailto parameter, oder so...
 
@Kampfgummibaerlie: Vielen Dank für deine Antwort!

Ich habe es Zwischenzeitlich selbst wie folgt gelöst bekommen:

PHP:
<?php

require 'inc/db.php'; //Verbindung mit Datenbank herstellen

$kfzid = $_GET['id']; // ID aus URL auslesen

$sql = $db->query("SELECT F10, F11, F12, F14, F15, F16 FROM tabelle_2 WHERE ID = " . $kfzid . ""); // Entsprechenden Datensatz aus Tabelle auslesen

$datensatz = $sql->fetch_all(MYSQLI_ASSOC);

foreach($datensatz as $eintrag) { // Felder in Variable speichern

    $name = $eintrag['F10'];
    $fahrzeug = $eintrag['F11'];
    $datumuhrzeit = $eintrag['F12']. ", " . $eintrag['F14']. " - " . $eintrag['F15'];
    $ziel = $eintrag['F16'];
    }



// Mailadresse an die die Mail geschickt werden soll. Mehrere Empfänger mit Semikolon ohne Leerzeichen trennen
 
$mailadresse = "example@example.org";




// Mail URL-kodiert zusammenbauen

header("Location: mailto://"."$mailadresse"."?subject=Eintrag%20" . $kfzid . " löschen&body=Bitte%20diese%20Mail%20nicht%20%C3%A4ndern.%20Stattdessen%20einfach%20oben%20auf%20\"Senden\"%20klicken.%0A%0ADer%20Eintrag%20wird%20dann%20schnellstm%C3%B6glich%20gel%C3%B6scht.%0A%0AEintragsdetails%3A%0AName%3A%20" . $name. "%0AFahrzeug%3A%20" . $fahrzeug . "%0ADatum%2FUhrzeit%3A%20" . $datumuhrzeit. "%0AAnlass%2FZiel%3A%20" . $ziel. "%0A%0A");




// Da dieses Fenster im aktuellen Tab geöffnet wird, nach dem Mailversand zurück zum ursprünglichen Fenster zurückkehren

echo "<a href=$HTTP_REFERER></a>";


?>

Ist wahrscheinlich nicht streng nach Lehrbuch, aber tut was es soll...

Vielleicht hilft es ja noch jemandem.


Vielen Dank nochmal und viele Grüße
 
Ja, das ist nicht nach Lehrbuch:

Code:
$name = $eintrag['F10'];
$fahrzeug = $eintrag['F11'];
$datumuhrzeit = $eintrag['F12']. ", " . $eintrag['F14']. " - " . $eintrag['F15'];

Nummerierte Spalten, zertrümmerter Timestamp.
 
Werbung:
An dem Motto "Ist wahrscheinlich nicht streng nach Lehrbuch" kranken 50% der PHP-Applikationen, führt zu mieser Performance, Fehlern, Security-Problemen und und und.... Ich empfehle dringend ein gutes PHP-Buch/Video oder einen Kurs.

Für alle weiteren PHP-Fragen bitte ein PHP-Forum verwenden.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben