SQL Select Abfrage Ergebnis in andere Tabelle speichern php?
Hallo Zusammen, ich brauche mal wieder Hilfe..
ich lese aus einer SQL mittels select etwas aus, das Ergebnis wird mir auch angezeigt, ich möchte dies nun kombiniert in einen anderen table speichern.
Nun soll er Vorname, Nachname, Erloes, in den Table GS speichern.
Hier mein Code, hoffe ihr könnt mir helfen.
Danke
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$user1 = ($user['vorname']);
$sql = "SELECT punkte, Vorname, Nachname, punkte*satz/100 AS erloes FROM punkte1 WHERE Vorname like '$user1'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo " <span style=\"font-size: 12pt\"> Du hast: <u>" . $row[„erloes“]. "</u> <i>Punkte </i> <b> verdient</b>. " . "<br><br></span>";
}
} else {
echo "Keine Daten hinterlegt";
}
$conn->close();
2 Antworten
Dazu benutzt du statt SELECT einen INSERT:
INSERT INTO GS (Vorname, Nachname, Erloes) VALUES (WERTE EINFÜGEN);
FROM punkte1 WHERE Vorname like '$user1'
hinten musst du wegnehmen, das ist noch von deinem SELECT übrig geblieben.
danke teste es gleich, jetzt wirst Du mich als noob wohl erschlagen, aber - wie rufe ich das in dem code dann auf? auf dem vorhanden Code, hätte ich gern einen Button mit - erstellen, dann die Ausführung... der Button ist jetzt weniger das Problem aber den Aufruf :D bitte hau mich nicht ich danke Dir jetzt schon für die Hilfe
Also du willst zwei verschiedene Buttons auf der Seite? Der eine gibt die Daten aus und der andere überträgt sie in die andere Tabelle?
Ne ne, also die abfrage so wie sie momentan läuft soll alles so bleiben, darunter soll er den Button anzeigen und mit dem sich dann das Zeugs in die db schreiben
Dann musst du das ein wenig anders machen. Du kannst nicht während einer Anfrage nochmals eine "Rückfrage" an den Client senden.
wenn ich eine neue php baue und nur den code nutze, also quasi wenn ausgäbe erfolgt, dann klick auf erstellen und dann neue Seite und abfrage bzw insert?
Select Abfrage Ergebnis in andere Tabelle speichern php?
Dafür benötigst Du kein PHP, das kannst Du mit SELECT INTO machen:
SELECT `punkte`, `Vorname`, `Nachname`, `punkte` * `satz` / 100 AS `erloes` INTO `GS` FROM `punkte1` WHERE `Vorname` like '$user1'
Alex
Hi, danke für Deine Antwort, hast Du zufällig im anderen Antwort Post mit gelesen? hast Du eine Idee? Danke Dir
Das Problem ist, dass der oben genannte code ja schon eine Ansicht ausgibt, also die select abfrage. Nun wenn das angezeigt wird, will ich per Button, die Daten in die DB schreiben. Aber ich hab keinen Plan :(
Nun wenn das angezeigt wird, will ich per Button, die Daten in die DB schreiben
Das funktioniert nach diesem Prinzip:
if(isset($_GET['schreiben'])
{
$sql = "INSERT ... INTO GS ...";
$conn->exec($sql);
}
else
{
$sql = "SELECT punkte, Vorname, Nachname, ...";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
echo ...
}
echo "<form><button name='schreiben'>Daten schreiben</button></form>";
}
cool, danke! das hänge ich dann einfach vor das Close hier? echo "Keine Daten hinterlegt";
}
HIER
$conn->close();
ist da irgendwo ne nasenklammer dann zu viel? :(
ist da irgendwo ne nasenklammer dann zu viel? :(
Nein, zu wenig.
if(isset($_GET['schreiben'])
{
$sql = "INSERT ... INTO GS ...";
$conn->exec($sql);
}
else
{
$sql = "SELECT punkte, Vorname, Nachname, ...";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
echo ...
}
echo "<form><button name='schreiben'>Daten schreiben</button></form>";
}
}
mega vielen Dank, die Seite lädt mal ohne Fehler.. aber beim klick auf schreiben kommt.. Fatal error: Uncaught Error: Call to undefined method mysqli::exec(). Aber vielen vielen Dank für die Hilfe!!!
vielen Dank! aber die DB bleibt leer, vlt. liegt der Fehler im Aufbau der into abfrage? kannst Du mir da sagen was da stehen soll? bei select hast es ja geschrieben bei IN TO? DANKE
if(isset($_GET['schreiben']))
{
$sql = "INSERT INTO GS (vorname, nachname, erloes) Values (vorname, Nachname, punkte*satz/100 AS erloes) From punkte1 Where vorname like '$user1";
$conn->query($sql);
}
else
{
$sql = "SELECT Vorname, Nachname, punkte*satz/100 AS erloes FROM punkte1 WHERE vorname like '$user1'";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
echo "safed";
}
echo "<form><button name='schreiben'>schreiben</button></form>";
}
}
$conn->close();
INSERT INTO GS (vorname, nachname, erloes) Values (vorname, Nachname, punkte*satz/100 AS erloes) From punkte1 Where vorname like '$user1'
Das kann nicht funktionieren. Du musst den Wert für Erloes vor dem Insert berechnen. Ein Insert sieht so aus:
INSERT INTO GS (vorname, nachname, erloes) Values ($vorname, $nachname, $erloes) where vorname like '$user1'
Notice: Undefined variable: vorname in
Lies Dir bitte die Verwendung des Insert Befehls durch.
So dann?
$sql = "Insert into GS (Vorname, Nachname, Erloes) Values (Vorname, Nachname, punkte*satz/100 AS erloes) FROM punkte1 WHERE Vorname like '$user1'";
?