Select anfrage und Daten sichern

dg87

Erfahrenes Mitglied
hallo,

kann ich eigentlich mit hilfe von einen select query gewisse datensätze auswählen und dann sofort speichern.
Oder geht das auch irgendwie ohne einem Insert into?
Um den Grund zu erläutern bedarf es mehr text, insofern wäre es nett wenn nur antworten kommen ob es geht und vielleicht wie.

Dankeschön
 
Moin moin,

also ich würde die Daten per SELECT selektieren und per INSERT INTO hinterher wieder neu eintragen.

also
PHP:
$sql = "SELECT * FROM table1";
$zeiger = mysql_query($sql);
$result = mysql_fetch_array($zeiger);

$sql = "INSERT INTO table2(field1,field2) VALUES ('$result['field1']','$result['field2']')";
mysql_query($sql);

So oder so ähnlich dürfte es gehen.
 
Also, sow wie ich dich verstanden habe willst du
- eine SELECT Abfrage machen von einer Tabelle, nachfolgend als T1 bezeichnet
- teilweise Datensätze aus T1 ändern und wieder speichern in T1

Oder willst du die Daten in einer anderen Tabelle speichern?
Man kann nämlich auch folgendes machen:
SQL:
INSERT INTO tabelle (spalte1, spalte2, spalte3) SELECT spalte1, spalte2, spalte3 FROM T1 WHERE spalte1 < 10;

Ansonsten ist auch REPLACE INTO interessant. Da werden bei MySQL bei einem Query zuerst ein DELETE und danach ein INSERT abgesetzt, was schneller geht, als diese selber nacheinander abzuschicken.

Ich hoffe das bringt dich weiter, ansonsten musst du wohl doch etwas genauer werden ;)



Gruß Radhad
 
Zuletzt bearbeitet von einem Moderator:
naja weil da wo ich das jetzt machen muss, hat die firma selbst gemachte funktionen und kann nur gewisse dinge übergeben, sprich den query.
Aber in den query darf anscheinend nur ein Select stehen, das andere alles nimmt er nicht an.
Deswegen will ich quasi per Select die Tabelle und die spalten auswählen und dann mit Werten füllen aber ohne Insert into.
bzw wenn ich per Select die Daten hole stehen die am Schluss in der Varialbe $array, ich kanns ja mal kurz zeigen:

PHP:
$query = "Select * from cdschoolreport";

         $this->db->NewSelect();
         $this->db->select($query); // führt den select query aus.
         $this->db->fetchAssoc($array); //macht diesen fetch assoc befehl und der inhalt ist  in $array
         $this->db->freeResult();

ich muss ja jetzt irgendwie die Daten da reinschicken können
 
Bietet dir die Klasse denn keine INSERT oder UPDATE Methode? Du hast da ja eine Datenbankklasse, schau da doch mal rein, ob es eine Methode gibt, die Daten in speichern / ändern kann. Da du die Klasse sicherlich nicht veröffentlichen darfst, musst du halt nen bissl suchen, oder hoffen, dass dein Editor Code-Completion kann und dir die entsprechenden Methoden darstellt (Eclipse oder Zend Studio können das z.B.).
 
hatte noch ne funktion hinzufügen müssen :-D
danke

aber:

PHP:
 $query = "INSERT INTO wwbestellung (SETID, USERID, EXTRA, ESSENID, DATUM) "
                      ."    VALUES ( "
                      ."    ".$setid.", "
                      ."    ".$userid.", "
                      ."    '".$extra."', "
                      ."    ".$essenid.", "
                      ."    ".$datum.") ";

Der meckert hier ständig was an :-(


SELECT konnte nicht durchgeführt werden!
ERROR 0: Zeile 1: Falsche Syntax in der Nähe von ','.

SELECT:
INSERT INTO cdschoolreport (reportnr, abookid, businesstext, briefingtext, schooltext, department, datf, datt) VALUES ( , 2, , , , , , )

also die werte stehen auch schon mal nicht drinnen. aber ein kollege hat auch so gemacht. also ohne mysql_real_escape_string oder wie das heißt
 
Denk dran: Strings müssen in ' geschrieben werden. Vielleicht quoted die Klasse ja selbst, würde ich aber bei der schreibweise nicht von ausgehen. Besser ist, du nutzt mysql_escape()!
 
Zurück