Query in neue Tabelle schreiben

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

  • Query in neue Tabelle schreiben

    Hallo,

    ich verstehs gerade mal wieder nicht. Das Skript soll mir das Ergebnis des ersten Query in eine andere Tabelle schreiben
    Die entpsrechenden Werte stehen auch in dem Array.
    Er läuft auch durch das array, denn ich kriege soviele Fehlermeldungnen, undefined index, wie Elemente im Array sind.
    Es wird auch die korrekte Anzahl der Datensätze in der neuen Tabelle angelegt, nur sind die Sätze alle leer.

    Wo ist denn mein Fehler ??? Ich sehe ihn nicht !!!

    PHP-Code:
     $query "SELECT id, bereich, bildpfad, bild FROM bilder WHERE (bereich = '" $bereich "')";  
     
    $result mysql_query($query);
     if (!
    $result
     {
      die(
    'Ungültige Abfrage: ' mysql_error());
     }
     while (
    $row mysql_fetch_assoc($result))
     {
      
    $array [] = $row;
     }
     
     
    $count sizeof($array);
     for (
    $i 0$i $count$i++)
     {
      
    $query "INSERT INTO zbilder SET 
      id='" 
    $array['$i'] ."',
      bereich='" 
    $array['$i'] ."',
      bildpfad='" 
    $array['$i'] ."',
      bild ='" 
    $array['$i'] ."'";
      
    $result mysql_query($query);
      if (!
    $result)
         {
          die (
    'Ungültige Abfrage: ' mysql_error());
         }
     } 
    Gruß

    Michael

  • #2
    Er läuft auch durch das array, denn ich kriege soviele Fehlermeldungnen, undefined index, wie Elemente im Array sind.
    Dann poste die Fehlermeldung! Herr Gott!

    PHP-Code:
    id='" . $array['$i'] ."',
      
    bereich='" . $array['$i'] ."'
    Nur mal so von der Logik. ID und Bereich sind der gleiche Wert??? Sicher nicht, oder? Stellt sich die Frage, warum du dann die gleichen (falschen!) Variablen benutzt. Lass dir $array mal ausgeben, vielleicht wirds dann klar.

    Kommentar


    • #3
      Code:
      Notice: Undefined index: id in \bildanzeige.php on line 27
      
      Notice: Undefined index: bereich in \bildanzeige.php on line 28
      
      Notice: Undefined index: bildpfad i\bildanzeige.php on line 29
      
      Notice: Undefined index: bild in \bildanzeige.php on line 30
      Das sind die Fehlermeldungen, die sich für jede Zeile wiederholt, solange bis alle Datensätze durch sind. Und zwar immer dann, wenn sie im Query geschrieben werden sollen.


      Hier das Array mit print_r ($array); ausgegeben:

      Code:
      Array ( [0] => Array ( [id] => 1 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0560_IMG.JPG ) [1] => 
      Array ( [id] => 2 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0561_IMG.JPG ) [2] => 
      Array ( [id] => 3 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0562_IMG.JPG ) [3] => 
      Array ( [id] => 4 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0563_IMG.JPG ) [4] => 
      Array ( [id] => 5 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0564_IMG.JPG ) [5] => 
      Array ( [id] => 6 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0565_IMG.JPG ) [6] =>
       Array ( [id] => 7 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0566_IMG.JPG ) [7] => 
      Array ( [id] => 8 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0567_IMG.JPG ) [8] => 
      Array ( [id] => 9 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0568_IMG.JPG ) [9] => 
      Array ( [id] => 10 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0569_IMG.JPG ) [10] => 
      Array ( [id] => 11 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 105-0570_IMG.JPG ) [11] => 
      Array ( [id] => 12 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 107-0701_IMG.JPG ) [12] => 
      Array ( [id] => 13 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 107-0702_IMG.JPG ) [13] =>
       Array ( [id] => 14 [bereich] => Badminton [bildpfad] => /images/fotoalbum/alpen/ [bild] => 107-0703_IMG.JPG ) )
      Sodele, im Prinzip steht alles was ich für die neue Tab brauche im Array. Ich gebe auch vor was in welche Spalte Zeile soll, nur warum das undefinded index sein soll erschliesst sich mir gerade nicht.
      Da bräuchte ist jetzt mal eure Hilfe.
      Zuletzt geändert von fritzje610; 03.02.2008, 13:31.
      Gruß

      Michael

      Kommentar


      • #4
        Muss man dir immer alles vorkauen, oder wirst du irgendwann auch mal lernen die Hinweise die man dir gibt anzunehmen und selbstständig(!) umzusezen???

        Notice: Undefined index: id in \bildanzeige.php on line 27
        Notice: Undefined index: bereich in \bildanzeige.php on line 28
        Notice: Undefined index: bildpfad i\bildanzeige.php on line 29
        Notice: Undefined index: bild in \bildanzeige.php on line 30
        Das sind ganz offensichtlich NICHT die vollstängigen Fehlermeldungen! Warum machst du dir die Mühe und entfernst u.U. wichtige Details? Außerdem wäre es klug die Entsprechenden Zeilen im Script zu markieren. Wenn man da schon nicht alleine drauf kommt, so steht das zumindest in den Regeln.

        Sodele, im Prinzip steht alles was ich für die neue Tab brauche im Array.
        Ja, klar. Nur musst du es auch entsprechend ansprechen. Das tust du aber entgegen deiner Behauptung
        Ich gebe auch vor was in welche Spalte Zeile soll,
        NICHT!

        Die entsprechenden Fehlerstellen habe ich dir in meiner ersten Antwort bereits genannt. Wenn du das nicht hinbekommst, bzw. nichtmal erkennst, dass ich dir den Hinweis gegeben habe, dann ziehe doch bitte in Zukunft das Projekthilfe-Forum in Erwägung.

        Danke für deine Mitarbeit.

        Kommentar


        • #5
          Das versuch ich ja und es ist eben nicht jeder so'n Crack wie Du in php. Sei froh das Du es bist, aber sicherlich hast Du auch mal klein angefangen und warst zu der Zeit froh, wenn Dir jemand geholfen hat.

          Es gibt keine u.U. wichtige Details. Viermal den kompletten Pfad zu ein und der selben Datei hier zu psoten macht nicht wirklich Sinn und damit das Post nicht zu lange wird, habe ich da einfach gekürzt. Das tut der Sache keinen Abbruch.

          Und wo die FM auftauchen steht auch eindeutig da, im Query wenn sie in die DB geschrieben werden sollen.

          Und Hergott noch mal, ich Fluche jetzt auch mal, ich weiß verdammt nicht wie ich diese Array ansprechen soll !
          Zuletzt geändert von fritzje610; 03.02.2008, 20:59.
          Gruß

          Michael

          Kommentar


          • #6
            Ich habs gelöst. Hiermit funktioniert das Ganze.


            PHP-Code:

            foreach ($array as $value)
              {
              
            $query "INSERT INTO zbilder SET 
              id='" 
            $value['id'] ."',
              bereich='" 
            $value['bereich'] ."',
              bildpfad='" 
            $value['bildpfad'] ."',
              bild ='" 
            $value['bild'] ."'";
              
            $result mysql_query($query);
              if (!
            $result)
                 {
                  die (
            'Ungültige Abfrage: ' mysql_error());
                 }
             } 
            Gruß

            Michael

            Kommentar


            • #7
              Schön, dass du die Grundlagen jetzt auch drauf hast. Dein Chef freut sich sicher über die Überstunden.

              Grüße

              Kommentar


              • #8
                Schön wär's wenn es dafür Geld geben würde. Das was das werden soll ist für den hiesigen Sportverein. Das geht das auf Ehrenamt.

                Aber ich hab enoch ein anderes Problem. Da fehlt mir der Ansatz wie ich das lösen könnte.
                In o.g. Datei werden bestimmte Bilder geladen und in eine neue Tabelle geschrieben. Das muss eigentlich nur einmal passieren. Danach arbeite ich ja mit dern neuen Tabelle weiter. Wie krieg ich das hin, das der Teil nur einmal ausgeführt wird und dann nur noch der Rest des Skripts. Oder gibt' sowas wie goto o.ä. ???
                Wie gesagt, Anfänger und ich kenne (noch) nicht alle Funktionen.
                Gruß

                Michael

                Kommentar


                • #9
                  In o.g. Datei werden bestimmte Bilder geladen und in eine neue Tabelle geschrieben. Das muss eigentlich nur einmal passieren. Danach arbeite ich ja mit dern neuen Tabelle weiter. Wie krieg ich das hin, das der Teil nur einmal ausgeführt wird und dann nur noch der Rest des Skripts.
                  Führ das Script einmal aus und lösch es danach!

                  Kommentar


                  • #10
                    Ich will ja nicht das ganze Skript löschen, sondern nur einen Teil. Oder meinst Du die Variablen und Arrays.
                    Gruß

                    Michael

                    Kommentar


                    • #11
                      Dann lösch' halt den Teil da raus...

                      Kommentar


                      • #12
                        Original geschrieben von fritzje610
                        Wie krieg ich das hin, das der Teil nur einmal ausgeführt wird und dann nur noch der Rest des Skripts.
                        Oder lade die Daten direkt über PHPMyAdmin in die Tabelle. Hier mal ein ein anderer Ansatz:
                        Code:
                        INSERT INTO zbilder (id, bereich, bildpfad, bild)
                        SELECT id, bereich, bildpfad, bild FROM bilder 
                        WHERE bereich  = '$bereich';
                        Aber auch mit PHP wären das dann zwei Zeilen anstelle deines am Anfang gezeigten Scripts und du brauchst weder Arrays, noch Indizes.
                        Gruss
                        H2O

                        Kommentar


                        • #13
                          Hi,

                          dank Fastnacht habe ich mir mal einen Tag Auszeit gegönnt. Letzter Stand der Dinge ist der, dass ich die neue Tabelle in der aufrufenden Datei erstellen lasse und in der Anzeigedatei dann nur noch die reine Anzeige der Vollbilder mache.

                          Das einzige was ich da noch abfangen muss ist die Blätterfunktion, das ich nur solange weiter und zurück blättern kann, wie noch Datensätze zur Verfügung stehen.

                          Gibt es eine fertige MySQL oder PHP Funktion die mir die ID des ersten und letzten Datensatz ermittelt ?
                          Gruß

                          Michael

                          Kommentar


                          • #14
                            Gibt es eine fertige MySQL oder PHP Funktion die mir die ID des ersten und letzten Datensatz ermittelt ?
                            Nein.

                            Wüsste aber auch nicht wofür du die brauchst. Schau dir einfach mal existierende Blätterfunktionen an, wie die es gelöst haben. Bist ja nicht der erste.

                            Kommentar


                            • #15
                              Da gibt es wirklich viele. Gibts eine die sich zu solchen Lernzwecken besonders eignet?
                              Gruß

                              Michael

                              Kommentar

                              Lädt...
                              X