Ergebnisse vergleichen

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

  • #16
    Original geschrieben von Sardine
    dann kommt die von "neogrande" zum Einsatz (die läuft bestimmt)!
    wenn du UNION noch nicht mal zur Verfügung hast, dann kannst du Sub-Select auch ganz schnell vergessen

    Kommentar


    • #17
      Mist, du hattest Recht, die Abfrage von "neogrande" wird auch nicht akzeptiert.

      Kann mir evtl. noch jemand die Sache mit temporären Tabellen genauer erklären, damit komm ich gerade nicht so richtig klar!

      Danke schon mal!
      Wer brauch schon ne Signatur?

      Kommentar


      • #18
        Ist doch wirklich nicht schwer.

        Eine temporäre Tabelle wird automatisch entfernt, wenn das Skript, das die Tabelle angelegt hat, beendet ist. Anosnten verhalten sich temporäre Tabellen genauso wie "normale"
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #19
          Ab welcher Sql Version funktioniert denn der Befehl?

          Bei mir kommt immer Syntax error!
          Oder bin ich zu dumm zum ne Tabelle anzulegen?
          PHP-Code:
          CREATE TEMPORARY TABLE dummy(a
          Der Befehl führt schon mein phpmyadmi nicht aus!

          SQL Version: 4.0.15
          Wer brauch schon ne Signatur?

          Kommentar


          • #20
            Die Syntax ist die gleiche wie bei CREATE

            Du verwendest aber weder die Syntax noch hast du eifnach mal mein Beispiel per Copy&Paste übernommen...
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #21
              Ok, so weit so gut, ich kann jetzt ne temporäre Tabelle erstellen, und auch mit ersten Werten füllen und diese wieder auslesen, geht alles einwandfrei.

              Aber: Ich kann deinen gesammte Befehl nicht benutzten, da gibts immer nen sql Fehler aus.
              Egal in welcher Reihenfolge ich das insert einbaue, geht's nicht mehr.

              PHP-Code:
              CREATE TEMPORARY TABLE dummy as select customers_email_address
               
              as email from customers where customers_newsletter like 1 
              das geht!
              PHP-Code:
              CREATE TEMPORARY TABLE dummy as select customers_email_address
               
              as email from customers where customers_newsletter like 1 insert 
              into dummy 
              AS SELECT email from newsletter 
              so nicht mehr!

              Wo ist denn da der Fehler?
              Zuletzt geändert von asp2php; 26.01.2005, 14:00.
              Wer brauch schon ne Signatur?

              Kommentar


              • #22
                Hör mal,

                [ ] du weißt, wie man Abfrage von PHP absetzt
                [ ] du weißt, wieviele 'Abfragen' sich in das Bsp. von mrhappiness steckt
                [ ] du weißt, wie man mehrere 'Abfragen' per PHP an das DBMS absetzt
                [ ] du weißt, wie man mehrere 'Abfragen' in PMA absetzt
                [ ] du weißt nichts von alldem

                Bitte ankreuzen, (mehrfach möglich)

                Kommentar


                • #23
                  Original geschrieben von asp2php
                  Hör mal,

                  [x] du weißt, wie man Abfrage von PHP absetzt
                  [x] du weißt, wieviele 'Abfragen' sich in das Bsp. von mrhappiness steckt
                  [x] du weißt, wie man mehrere 'Abfragen' per PHP an das DBMS absetzt
                  [ ] du weißt, wie man mehrere 'Abfragen' in PMA absetzt
                  [ ] du weißt nichts von alldem

                  Bitte ankreuzen, (mehrfach möglich)
                  Ich hab jetzt nen anderen Ansatz also ist das ganze jetzt eh nicht mehr aktuell.

                  Ich übernehme jetzt einfach die Einträge der ersten Tabelle in die zweite rein, wenn diese dort noch nicht drin sind!
                  Wer brauch schon ne Signatur?

                  Kommentar


                  • #24
                    Ich bin der Meinung, es wäre doch einfacher, das mit PHP statt mit mySQL zu lösen.
                    Also bei in der Schleife nach der 1. Abrage ein
                    PHP-Code:
                    $array[$i] = $row->$email 
                    Dann hast du alle Email-Adressen, die du schon ausgegeben hast, in einem Array.

                    Und bei der Ausgabe der 2. Abfrage dann:
                    PHP-Code:
                    if (!in_array($row2->customers_email_address$array)) echo "blubb..." 

                    Kommentar


                    • #25
                      Ja, an diesem Ansatz bin ich gerade dran, aber irgendwas stimmt nicht, ich bekomme immer die Werte wieder in die Tabelle geschrieben obwohl die schon drinstehen!

                      PHP-Code:
                      $result mysql_query("SELECT  email_zwei as email FROM `tabelle2` WHERE `check`");
                      $result2mysql_query("select email from tabelle1");
                      $test=mysql_fetch_array($result2);

                      while  (
                      $ausgabe mysql_fetch_array($result))
                      {
                      if(!
                      in_array($ausgabe["email"],$test))
                      echo 
                      "nicht drin<br>";
                      mysql_query("insert into tabelle1 (email) values ('$ausgabe[email]')");

                      Wo ist denn jetzt der Fehler?

                      P.S. Das ist ein Beispielaufbau, damit ich nicht immer in der Org-Datei rumbasteln muss! Das Prinzip ist aber das selbe!
                      Wer brauch schon ne Signatur?

                      Kommentar


                      • #26
                        es liegt an deinem Prüf-Algorithmus

                        btw: SELECT email_zwei as email FROM `tabelle2` WHERE `check`? ist check ein Booleanwert oder Werte die 1 und 0 annehmen kann?

                        Kommentar


                        • #27
                          Eigentlich mit Wert 0 und 1 aber in der ersten Abfrage funktionierte es nur ohne Angabe des Wertes (hab ich mir auch ausgeben lassen und hat funktioniert). Habs jetzt aber geändert und check like 1 gesetzt, geht auch so. Ok, es werden aber auf alle Fälle nur die richtigen Daten aus der Tabelle ausgelesen.

                          Das Problem ist aber, es werden immer Daten in die Tabelle geschrieben. Und zwar immer alle Werte aus der Tabelle2, egla ob schon in Tabelle1 drin oder nicht!

                          Das muss doch am in_array() liegen oder täusche ich mich da?

                          Ich hab keinen Plan mehr, was ich noch machen könnte!


                          So, nochmal der Code mit check like 1!
                          PHP-Code:
                          $result mysql_query("SELECT  email_zwei as email FROM `tabelle2` WHERE `check` like 1");
                          $result2mysql_query("select email from tabelle1");
                          $test=mysql_fetch_array($result2);

                          while  (
                          $ausgabe mysql_fetch_array($result))
                          {
                          if(!
                          in_array($ausgabe['email'],$test))
                          echo 
                          "nicht drin<br>";
                          mysql_query("insert into tabelle1 (email) values ('$ausgabe[email]')");

                          Ich checks echt nicht mehr, an was liegt das?
                          Wer brauch schon ne Signatur?

                          Kommentar


                          • #28
                            Ok, ich hab was entdeckt:
                            Wenn ich das Array, in welchem nach den Einträgen gesuch wird, von Hand angebe, dann läuft alles wunderbar, und es werden keine Einträge zugefügt, die schon drin sind, alle anderen schon!

                            PHP-Code:
                            $test=array('abc','def','vw','xyz');
                            //-->so funktionierts



                            $test=mysql_fetch_array($result2);
                            //-->so nicht 
                            Was stimmt denn mit dem Ergebnissarray nicht?
                            Wer brauch schon ne Signatur?

                            Kommentar


                            • #29
                              dann schau mal hier:
                              PHP-Code:
                              $a = array('bla'=> 3);
                              $b = array(1,2,3);
                              for (
                              $i=0;$i<3;$i++) {
                                  if (!
                              in_array($b[$i],$a)) 
                                      echo 
                              'nicht gefunden<br />';
                                  else 
                                      echo 
                              '<br />gefunden<br />';

                              Ist jetzt klar, wo dein Fehler ist?

                              Kommentar


                              • #30
                                Hm, das hab ich so verstenden gehabt:
                                und entsprechend so umgebaut:
                                PHP-Code:
                                while  ($ausgabe mysql_fetch_array($result))
                                {
                                $email=$ausgabe['email'];
                                echo 
                                "$email";
                                if(!
                                in_array($email,$test))
                                {
                                echo 
                                "nicht drin<br>";
                                mysql_query("insert into tabelle1 (email) values ('$ausgabe[email]')");
                                }

                                Aber das geht auch nicht, oder hab ich deine Anregung nicht gecheckt?
                                Wer brauch schon ne Signatur?

                                Kommentar

                                Lädt...
                                X