SQL Select Abfrage Ergebnis in andere Tabelle speichern php?

2 Antworten

Dazu benutzt du statt SELECT einen INSERT:

INSERT INTO GS (Vorname, Nachname, Erloes) VALUES (WERTE EINFÜGEN);
Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung
willi0818318123 
Fragesteller
 26.11.2021, 13:42

So dann?

$sql = "Insert into GS (Vorname, Nachname, Erloes) Values (Vorname, Nachname, punkte*satz/100 AS erloes) FROM punkte1 WHERE Vorname like '$user1'";

?

0
Lezurex  26.11.2021, 13:43
@willi0818318123
FROM punkte1 WHERE Vorname like '$user1'

hinten musst du wegnehmen, das ist noch von deinem SELECT übrig geblieben.

0
willi0818318123 
Fragesteller
 26.11.2021, 13:45
@Lezurex

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

0
Lezurex  26.11.2021, 13:47
@willi0818318123

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?

0
willi0818318123 
Fragesteller
 26.11.2021, 13:48
@Lezurex

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

0
Lezurex  26.11.2021, 13:53
@willi0818318123

Dann musst du das ein wenig anders machen. Du kannst nicht während einer Anfrage nochmals eine "Rückfrage" an den Client senden.

0
willi0818318123 
Fragesteller
 26.11.2021, 13:57
@willi0818318123

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?

0
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

willi0818318123 
Fragesteller
 26.11.2021, 14:09

Hi, danke für Deine Antwort, hast Du zufällig im anderen Antwort Post mit gelesen? hast Du eine Idee? Danke Dir

0
willi0818318123 
Fragesteller
 26.11.2021, 14:19
@EinAlexander

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 :(

0
EinAlexander  26.11.2021, 14:25
@willi0818318123
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>";
}

0
willi0818318123 
Fragesteller
 26.11.2021, 14:26
@EinAlexander

cool, danke! das hänge ich dann einfach vor das Close hier?  echo "Keine Daten hinterlegt";

}

HIER

$conn->close();

0
EinAlexander  26.11.2021, 14:48
@willi0818318123
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>";
  }
}
1
willi0818318123 
Fragesteller
 26.11.2021, 15:26
@EinAlexander

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!!!

0
willi0818318123 
Fragesteller
 26.11.2021, 18:08
@EinAlexander

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

0
willi0818318123 
Fragesteller
 26.11.2021, 19:02
@EinAlexander

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();

0
EinAlexander  26.11.2021, 19:09
@willi0818318123
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'
0