Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Funktion für Übergabe von mehren Werten in mySql

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Funktion für Übergabe von mehren Werten in mySql

    Liebe PHP-Gemeinde,

    leider stehe ich mir wohl selber im Weg und sehe den Wald vor lauter Wiesen nicht. Ich habe schon gegoogelt und Fachbücher gewältz und wenn ich ehrlich bin - ich habe nichts brauchtbares bzw. für mich nachvollziehbares gefunden.

    Ich habe folgendes Problem:

    Ich würde gerne eine Funktion schreiben, die mehrer Wert in eine DB übergibt. Diese sieht wie folgt aus:

    PHP-Code:
    function datenuebergabe($wert,$tabelle) {
     
     
    //Funktion des Datenbankaufbau
     
    db();
     
       for(
    $i=0;$i<count($wert);$i++) {
     
      
    $query "INSERT INTO $tabelle VALUES('$wert[$i]')"
     
     
     
    $erg mysql_query($query);
     
     }
     
     if(!
    $erg) die("<b>Fehler:</b> ".mysql_error());
     
     
     
    mysql_close();
     

    Ich weiß, dass ich die Spaltennamen angeben muss, wenn ich die Werte übergeben möchte, aber genau da scheint es zu haken. Ich übergebe die Werte ($wert) als Array, zähle diesen und intitalisiere nun so die Schleife. Wenn dann das ganze funktioniert wird aber für jedes $i eine Zeile angelegt. Ich hätte aber gerne alle Werte in einer Abfrage (gesammelt) - macht ja auch Sinn.

    Kann mir jemand einen Schubs in die richtige Richtung geben? Wie schaffe ich es den Array mit den einzelnen Werten so auszulesen, dass er als $wert[0],$wert[1],....,$wert[n-1] in einer Abfrage in die richtigen Spalten in eine Zeile geschrieben wird?

    Vielen Dank für Eure Mühen und Zeit bereits jetzt schon.

    Viele Grüße
    Tobi

  • #2
    Du weißt das das Statement richtig so - vom Aufbau her - aussehen kann?

    Code:
    INSERT
        INTO `tabelle_name` (`id`, `user`, `ref`, `tor1`, `tor2`, `punkte`, `gespeichert_am`)
    VALUES
        (999, 'theUser', 4163, 3, 1, 3, '2010-12-08 17:25:05'),
        (998, 'theUser', 4162, 4, 1, 3, '2010-12-08 17:25:05'),
        (997, 'theUser', 4149, 2, 0, 3, '2010-12-08 17:25:05'),
        (996, 'theUser', 4150, 0, 1, 3, '2010-12-08 17:25:05'),
        (995, 'theUser', 4138, 0, 1, 3, '2010-12-08 17:25:05'),
        etc...
    Und wenn ich dich richtig verstehe dann musst Du den Teil nach VALUES in die Schleife geben, den query zusammenbauen, und dann erst (nach der Schleife) einmal ausführen.

    Klarer? Oder hab ich falsch verstanden?

    LG

    Kommentar


    • #3
      Solch eine Funktion würde keine Zeit sparen und auch nicht für mehr Übersichtlichkeit sorgen.

      In deinem Code müsstest du dann ja zuerst die Übergabeparameter für die Funktion zusammenbauen - mit genausoviel Zeilen hast du das INSERT INTO dann auch schon fertig.

      Kommentar


      • #4
        Danke erstmal für die Hinweise und Kommentare.

        Leider habe ich es zwischenzeitlich (wohl) einsehen müssen, dass eine Universallösung hier wohl nicht zu erreichen ist (für meine Anforderung).

        Kann ich aber einen Array mit den Namen der Spalten füllen? Diese Funktion funktioniert (nach Anpassung der Funktion db() ):

        PHP-Code:
        function tabNames ($datenbank,$tabelle) {
         
         
          
        db($datenbank);
          
        $erg mysql_query("SELECT * FROM $tabelle");
          
        $anzahl_spalten mysql_num_fields($erg);
          echo 
        "<b><u>Anzahl Spalten:</u> </b>".$anzahl_spalten."<br>";
          for(
        $i 0$i<$anzahl_spalten;$i++) {
         
           echo 
        "'".mysql_field_name($erg,$i)."',"."<br>";
         
          }
         

        Kann ich mit dieser Funktion irgendwie einen Array füllen?

        Kommentar


        • #5
          dir fehlen einige Grundlagen, das ist eine mehr als triviale Frage.

          http://www.php.de/php-einsteiger/489...rundlagen.html

          Kommentar


          • #6
            Na dann sag ich mal DANKE!

            Kommentar


            • #7
              Die Namen der Spalten gehören ins Statement, statt alles mit * auszulesen!

              Kommentar

              Lädt...
              X