Per PHP mehrer Updates gleichzeitig ausführen

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

  • #16
    Original geschrieben von Laire
    Hm was ist an dem code so falsch?
    PHP-Code:
    mysql_query("UPDATE nick SET  = '".$row[usage]."' WHERE id = '".$row[id].'");

    müsste zB parse error werfen
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #17
      Original geschrieben von Laire
      Hm, was ist denn an dem Aufbau so schlimm?

      Ich will halt eine Anzahl aller verwendeten key + nick kombinationen haben.

      Hm was ist an dem code so falsch?
      Du verlangst nach einem UPDATE, das ist eine Datenmanipulation, also willst du hier nichts ermitteln.

      Ich würde dir raten, die entsprechenden Daten in eine weitere Tabelle zu schreiben, dort kann man dann bei Bedarf angenehm performant lesen und zählen.

      Abgesehen von der Tatsache, dass ich hier keine vorstellen kann, was "key" sein soll.

      @MelloPie: Und wenn der behoben ist wird MySQL motzen.
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #18
        mich wunderts sowieso dass hier ständig codes gepostet werden, die fehler werfen müssen.

        zumindest syntaktisch sollte alles i.O. sein
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #19
          Hm habe den Code zu schnell getippt, ist nicht ganz der Original, meiner gibt jedenfalls keine Fehler aus.


          Um das ganze nochmal genau zu zeigen, hier ist das Original:

          PHP-Code:
           $abfrage mysql_query 
          ("SELECT nick_use, nick_id FROM t1_cod4nick 
          WHERE nick_key = '"
          .$spieler[$i][key]."'
           AND nick_nick = '"
          .$spieler[$i][nick]."'"); 
          $row mysql_fetch_array($abfrage);
          {
          if(
          $row[nick_use] == ''//wenn datenatz nicht vorhanden, neu eintragen
          {
          $nick_sql .= "('".$spieler[$i][nick]."', '".$spieler[$i][key]."', '1'), ";
          }
          else
          {
          mysql_query("UPDATE t1_cod4nick SET nick_use = nick_use+1 WHERE nick_id = '".$row[nick_id].'");
          }

          Der Key ist eine zahlen Buchstabenkombi z.B.: sh33292njn3232mmkj32
          Zuletzt geändert von Laire; 09.01.2008, 15:06.

          Kommentar


          • #20
            auch fehlerbehaftet
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #21
              Hm, geht aber...

              Kommentar


              • #22
                Glaub ich nicht.

                Parse error: syntax error, unexpected $end in index.php
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar


                • #23
                  ahhh bloede tippfehler


                  so:

                  PHP-Code:
                  $abfrage mysql_query 
                  "SELECT nick_use, nick_id FROM t1_cod4nick 
                  WHERE nick_key = '"
                  .$spieler[$i][key]."' 
                  AND nick_nick = '"
                  .$spieler[$i][nick]."'"); 
                  $row mysql_fetch_array($abfrage);
                  {
                  if(
                  $row[nick_use] == '')
                  {
                   
                  $nick_sql .= "('".$spieler[$i][nick]."', '".$spieler[$i][key]."', '1'), ";
                   }
                   else
                  {
                  mysql_query
                  ("UPDATE t1_cod4nick SET nick_use = nick_use+1 WHERE nick_id = '".$row[nick_id]."'");
                   }
                   } 
                  Könnten wir jetzt wieder zum eigentlichen Problem kommen?

                  Also wie ich das ganze umgehen kann das er den Update 1000 mal ausführt?
                  Zuletzt geändert von Laire; 09.01.2008, 15:16.

                  Kommentar


                  • #24
                    Original geschrieben von Laire
                    Also wie ich das ganze umgehen kann das er den Update 1000 mal ausführt?
                    Das kommt auf die Anwendung an. Wenn das Ganze abhängig ist, von Benutzereingaben wahrscheinlich gar nicht. Im andern Fall kannst du die Anzahl ja in einer Tabelle zwischenspeichern (das Array Spieler existiert ja z.B. schon), und dann erst am Schluss die DB updaten. Aber wie schon gesagt wurde, 1000 Updates sind normalerweise für die DB nichts.

                    PS
                    Wenn du auf deine in der Signatur genannten Seite schon das W3C-Signet drin hast, sollte die Validierung auch funktionieren
                    Gruss
                    H2O

                    Kommentar


                    • #25
                      Das Problem ist nur das ich so mit script über seine Laufzeitbegrenzung komme :-(

                      Das hatte ich vor dem Update Problem schonmal, nähmlich beim erstmaligen eintragen. Dann habe ich den weg gewählt das er wie oben die Daten erstmal in eine Varibel schreibt und sie am Schluss des Scripts alle eintragungen auf einmal macht...



                      Wegen der homepage in meiner Signatur: Danke für den Hinweis. Liegt an den Ttiel der bilder, da teilweise noch Sonderzeichen drin sind. Werde ich ändern...

                      Kommentar


                      • #26
                        Original geschrieben von Laire
                        Das Problem ist nur das ich so mit script über seine Laufzeitbegrenzung komme :-(
                        hab mir den ganzen fred nicht angesehen, aber hilft dir nicht:
                        set_time_limit();
                        **********
                        arkos
                        **********

                        Kommentar


                        • #27
                          Habe keine Rechts die time_limit zu verändern :-(

                          Korregiere mich, safe_mode ist off


                          Achja ich habe mal durchgeguckt, es geht nicht um 1000 Datensätze sondern um 455638
                          Zuletzt geändert von Laire; 09.01.2008, 18:46.

                          Kommentar


                          • #28
                            Das ist auch nicht ganz richtig. Du hast zwar die Verbindung die Laufzeit über offen (sofern man sie nicht nach jedem Query wieder zu macht ), Daten schicken bedeutet aber Overhead auf Layerebene. Zweimal Daten schicken bedeutet zweimal Overhead. Und so weiter und so fort.
                            Da hast du natürlich Recht, das sind ein par Byte MySQL Protokoll pro Query + die Layer soweit vorhanden drunter verursachen einen gewissen Overhead der sich letzendlich bei 455638 Performancetechnisch nur mit ~5% bemerkbar machen denk ich.

                            Bei mysql kann man nicht mehrere Querys senden, bei mysqli gibts es aber eine Funktion die mit mehreren Querys klarkommt und so das Problem umgeht.
                            Achja ich habe mal durchgeguckt, es geht nicht um 1000 Datensätze sondern um 455638
                            Bei sovielen Datensätzen wirst du sowieso nicht umhin kommen das ganze zu unterteilen. Evtl. wäre es sinnvoller eine .sql Datei zu generieren und über die Konsole direkt mit mysql auszuführen.
                            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                            Kommentar


                            • #29
                              Original geschrieben von Laire
                              Habe keine Rechts die time_limit zu verändern :-(
                              wenn dir die daten und das projekt sehr wichtig sind, solltest du dich neben dem was tontechniker gesagt hat ggf auch nach einem neuen anbieter umschauen, bei dem es im zweifelsfalle nicht an rechten etc. scheitert. da spart man - denke ich - am falschen ende...
                              **********
                              arkos
                              **********

                              Kommentar


                              • #30
                                Ich habe auch ein Problem beim ändern mehrerer Daten
                                Hi ersma ^^
                                PHP-Code:
                                $aendern "UPDATE cyber Set Minuteff='$insgesamt', Stundef='$insgesamt' WHERE id = '2'"
                                kann jemand helfen.
                                Es wird immer nur ein wert geändert.
                                Warum
                                THX

                                Kommentar

                                Lädt...
                                X