MySQL INSERT INTO Array Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    Zitat von spongebox Beitrag anzeigen
    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.

    Kommentar


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

      Kommentar


      • #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.

        Kommentar


        • #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??
          Zuletzt geändert von spongebox; 27.09.2012, 16:16.

          Kommentar


          • #6
            Zitat von spongebox Beitrag anzeigen
            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.

            Kommentar


            • #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.

              Kommentar


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

                Diese Info sollte dir helfen

                Kommentar

                Lädt...
                X