MySQL INSERT INTO Array Problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • MySQL INSERT INTO Array Problem

    Hallo alle zusammen,
    ich brauche mal Eure Hilfe bei einem Problem das ich mit meinem Script habe.
    Folgendes habe ich vor, ich lese Datensätze aus einer MySQL Datenbanktabelle aus, packe diese in ein "array" und möchte diese wieder in eine Tabelle speicher.
    Hier mal mein Script zum besseren Verständnis.
    PHP Code:
        $sql "SELECT * FROM tabellenname1 WHERE reg_id = $reg_id";
        
    $result mysql_query($sql);                            
        while (
    $row mysql_fetch_array($result)) {
        
    $array = array($uid[] = $row['uid']);
          
    $string implode('", "'$uid);
                     
           
    $schreiben "INSERT INTO  tabellenname2 (uid) VALUES 
                                                       ('
    $string')";
                                                 
    $eintragen mysql_query($schreiben)
                                                 or die(
    mysql_error());

    Die "$reg_id" wird in einer $_POST Variable übergeben. In der Tabelle "tabellenname1" stehen 5 User aber bei nur 2 User sollen die "$uid" in das Array geschrieben werden. Das fuktioniert auch soweit auch. Jedoch beim Insert in die neue Tabelle sieht das so aus:
    id | uid
    1 | 5
    2 | 51
    Da sollte aber nur:
    id | uid
    1 | 5
    2 | 1
    stehen. Für Hilfe und Vorschläge bedanke ich mich schon mal im Voraus.
    MfG spongebox

  • #2
    Originally posted by spongebox View Post
    PHP Code:
        while ($row mysql_fetch_array($result)) {
        
    $array = array($uid[] = $row['uid']);
          
    $string implode('", "'$uid); 
    Bist du dir im Klaren darüber, was dieser Code bewirkt …?

    $uid wird bei jedem Durchlauf ein neuer Wert hinzu gefügt – also enthält es im ersten Durchlauf einen, im zweiten zwei Werte, etc.
    Und jedes Mal werden diese Werte, noch innerhalb der Schleife, als neuer Datensatz in die Tabelle eingefügt.

    Das scheint nicht das zu sein, was du erreichen willst – also warum programmierst du es so …?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Comment


    • #3
      Weil ich keine andere Lösung gefunden habe und ich noch nicht so viel Kenntnisse habe das Problem allein zu lösen. Für einen kleinen Schubs in die richtige Richtung wäre ich dankbar!!

      Comment


      • #4
        Na wofür denn überhaupt das Array, wenn du einfach jeden Datensatz in der Schleife „wieder Speichern“ willst?

        (Wobei in normales INSERT kein „wieder Speichern“ darstellt, sondern einen neuen Datensatz generiert.)

        Wenn dir das noch nicht reicht – dann beschreibe bitte erst mal genau, was du erreichen willst.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Comment


        • #5
          Ich wollte erst mal klein anfangen und verstehen wie es funktioniert. Mein Ziel ist es, aus der Tabelle1 passend zu den $uid = $summe1 und $summe2 auszulesen. Dann rechnen: $summe1/$summe2*$_POST["summe3"]
          Dann speichern in Tabelle2
          .
          PHP Code:
          $reg_id $_POST["reg_id"];
          $summe $_POST["summe3"];

              
          $sql "SELECT * FROM tabellenname1 WHERE reg_id = $reg_id";
              
          $result mysql_query($sql);                            
              while (
          $row mysql_fetch_array($result)) {
              
          $array = array($uid[] = $row['uid']);
                
          $string implode('", "'$uid);
                           
                 
          $schreiben "INSERT INTO  tabellenname2 (uid) VALUES 
                                                             ('
          $string')";
                                                       
          $eintragen mysql_query($schreiben)
                                                       or die(
          mysql_error());

          Darum suche ich nach einer Möglichkeit, mein "array" in die passenden Teile zu zerlegen und dann mit Ihnen weiter zu arbeiten. Oder gibt es eine andere Variante??
          Last edited by spongebox; 27-09-2012, 15:16.

          Comment


          • #6
            Originally posted by spongebox View Post
            Darum suche ich nach einer Möglichkeit, mein "array" in die passenden Teile zu zerlegen und dann mit Ihnen weiter zu arbeiten.
            Was willst du denn an dieser Stelle überhaupt mit dem Array $array?

            Oder gibt es eine andere Variante??
            Ja – SQL kann auch direkt innerhalb von Queries rechnen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Comment


            • #7
              Wie gesagt, ich habe nach der besten Möglichkeit gesucht und das gefunden und gedacht das ich das damit geregelt bekomme, bin dann aber schnell an meine Grenzen gekommen. Darum ja auch hier meine Anfrage. Wie das mit dem rechnen in der datenbank funktioniert kenn ich auch noch nicht.

              Comment


              • #8
                Grundlagen !!
                UPDATE = Einen bestehenden Datensatz ändern
                INSERT = Einen neuen Datensatz hinzufügen

                Diese Info sollte dir helfen

                Comment

                Working...
                X