Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySQL Abfrage

Einklappen

Neue Werbung 2019

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

  • #16
    Ich erzähl es ja nicht aus quatsch

    Wenn es funktionieren würde, würd ich dich nicht mehr nerven

    ich bekomme nur diese Ausgabe damit:
    Code:
    SELECT Steckerart.steckerid ,schutzart.steckerid FROM Steckerart JOIN schutzart ON Steckerart.steckerid = schutzart.steckerid WHERE Steckerart.steckerid =
    Glauben musst du mir es...

    EDiT:

    selbst wenn ich
    PHP-Code:
    $ia[] ='AND '.$argumente[$ii].'.steckerid ="'
    als code nehme erhalt ich keine "
    Code:
    SELECT Steckerart.steckerid ,schutzart.steckerid FROM Steckerart JOIN schutzart ON Steckerart.steckerid = schutzart.steckerid WHERE Steckerart.steckerid =
    Greeeetz splifter

    Kommentar


    • #17
      Selbst wenn ich Deine kuriosen Werte aus $arg übernehme:
      Code:
      SELECT spalte FROM tabelle WHERE spalte="fla%nsc%h%6-7%m%IP6%4%"
      Gleicher Code, wie oben nur $arg verändert!
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #18
        Irgendwas muss bei mir ja falsch sein, sonst würde es funktionieren.
        Aber ich weiß einfach nicht was...
        Am Browser wird es ja nicht liegen, da Serverseitig...

        Greeeetz splifter

        Kommentar


        • #19
          Wo kommt denn $arg her?
          Sehe ich auf Anhieb in Deinem Code nicht!
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #20
            $arg kommt aus einem Formular
            PHP-Code:
            $arg = array();
            $argumente = array($serie);


            if (!empty(
            $_POST['Steckerart'])) {
                
            $arg[] = $_POST['Steckerart'];
                
            $argumente[] = "Steckerart";
            }
            if (!empty(
            $_POST['Anschlussart'])) {
                
            $arg[] = $_POST['Anschlussart'];
                
            $argumente[] = "anschluss";    
            }
            if (!empty(
            $_POST['Anschlussquer'])) {
                
            $arg[] = $_POST['Anschlussquer'];
                
            $argumente[] = "anschlussquer";
            }
            if (!empty(
            $_POST['Kabeldurch'])) {
                
            $arg[] = $_POST['Kabeldurch'];    
                
            $argumente[] = "kabeldurchlass";
            }
            if (!empty(
            $_POST['Kabellänge'])) {
                
            $arg[] = $_POST['Kabellänge'];
                
            $argumente[] = "kabellänge";
            }
            if (!empty(
            $_POST['Kontaktoberfläche'])) {
                
            $arg[] = $_POST['Kontaktoberfläche'];
                
            $argumente[] = "kontaktoberfläche";
            }
            if (!empty(
            $_POST['Schutzart'])) {
                
            $arg[] = $_POST['Schutzart'];    
                
            $argumente[] = "schutzart";
            }
            if (!empty(
            $_POST['Verriegelung'])) {
                
            $arg[] = $_POST['Verriegelung'];
                
            $argumente[] = "verriegelung";
            }


            steckersuche($argumente$arg); 
            Das sind Suchbegriffe im eigentlichen Script wird es nochmal bearbeitet:
            PHP-Code:
            foreach ($arg as &$suche) {
                
            $suche strip_tags($suche);
                
            $suche mysql_real_escape_string($suche);
                
            $suche str_replace(" """$suche);
                
            $suche chunk_split($suche3"%");
            }
                    
            //hier wird die Anzahl der Argumente im Array gezählt
                   
            $anzahl count($arg);
                
            //Aus dem Array mit den Suchbegriffen wird ein String
                
            $arg implode("",$arg); 
            Im Anschluss erfolgen die Schleifen zur SQL-Abfrage.

            Greeeetz splifter

            Kommentar


            • #21
              Dann solltest Du mal die Herkunft und das Zusammenstellen der Variable $arg prüfen. Denn wenn ich für $arg einen Wert vergebe, funktioniert sogar Dein Script bei mir!
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #22
                Zitat von Arne Drews Beitrag anzeigen
                Dann solltest Du mal die Herkunft und das Zusammenstellen der Variable $arg prüfen.
                Öhm, auf was soll ich die den Prüfen?
                Ich mach das ganze hier mehr zum Spaß, als das ich wirklich was vom Programmieren/ Scripten verstehe...

                Zitat von Arne Drews Beitrag anzeigen
                Denn wenn ich für $arg einen Wert vergebe, funktioniert sogar Dein Script bei mir!
                Ist das so schlimm geschrieben?

                Greeeetz splifter

                Kommentar


                • #23
                  Öhm... Schön is' anders.
                  Aber das hat nichts mit der Sache zu tun.
                  $arg ist im Moment der Verwendung scheinbar leer!
                  Denn wenn nicht, funktioniert es...
                  Competence-Center -> Enjoy the Informatrix
                  PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                  Kommentar


                  • #24
                    Hm, das ist sehr merkwürdig, egal ob ich mir $arg vor oder nach der Schleife ausgebenlasse
                    PHP-Code:
                                      $ia[] = 'WHERE '.$argumente[1].'.steckerid ="' $arg'"';
                        
                               
                    $iii 2;
                            while (
                    $iii <= $anzahl) {
                                
                    $ia[] ='AND '.$argumente[$iii].'.steckerid ="' $arg'"';
                                
                    $iii++;
                            } 
                    $arg ist immer gefüllt, nur in dem Moment in dem $arg in den Array $ia[] geschrieben werden soll ist $arg leer.
                    Ich versteh das nicht.

                    EDiT:

                    Wenn ich hier
                    PHP-Code:
                    $ia[] = 'WHERE '.$argumente[1].'.steckerid = "'.$arg.'"'
                    die " wieder rausnehme ist $arg wieder gefüllt...aber die Abfrage funktioniert nicht...


                    Greeeetz splifter

                    Kommentar


                    • #25
                      Zitat von splifter Beitrag anzeigen
                      Wenn ich hier
                      PHP-Code:
                      $ia[] = 'WHERE '.$argumente[1].'.steckerid = "'.$arg.'"'
                      die " wieder rausnehme ist $arg wieder gefüllt...
                      Das ist Quatsch.

                      Ob die Variable $arg zu dem Zeitpunkt einen Inhalt hat, ist vollkommen unabhängig davon, ob in dem String Anführungszeichen drin stehen, oder nicht.

                      Ich mach das ganze hier mehr zum Spaß, als das ich wirklich was vom Programmieren/ Scripten verstehe...
                      Du hast dich offenbar übernommen.
                      Bitte beschäftige dich zunächst mehr mit den Grundlagen, insb. auch was den Umgang mit Strings in PHP angeht.
                      [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                      Kommentar


                      • #26
                        EDIT:
                        Habe nocheinmal die MySQL-Ausgabe verändert, da das Array nicht schön war.
                        Hier ist nun das "neue" Script:
                        PHP-Code:
                        <?php
                        function steckersuche($argumente$arg) {
                            
                        //Datenbank auswählen, dazu werden die Daten aus der /admin/db/config.php verwendet
                            
                        $db_sel mysql_select_dbMYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");

                        //die Serie aus dem Array auslesen
                        $serie $argumente[0];

                        //Werte aus dem Formular werden "SQL-INJECTION-SICHER" gemacht
                        foreach ($arg as &$suche) {
                            
                        $suche strip_tags($suche);
                            
                        $suche mysql_real_escape_string($suche);
                            
                        $suche str_replace(" """$suche);
                            
                        $suche chunk_split($suche2"%");
                        }
                                
                        //hier wird die Anzahl der Argumente im Array gezählt
                               
                        $anzahl count($arg);
                                
                        //<-- Ab hier wird die MySQL-Abfrage erzeugt
                                   
                        $ia[] = "SELECT ".$argumente[1].".steckerid";
                                
                        $ii 2;
                                while (
                        $ii <= $anzahl) {
                                    
                        $ia[] =",".$argumente[$ii].".steckerid";
                                    
                        $ii++;
                                }
                                   
                        $ia[] = "FROM ".$argumente[1];

                                   
                        $ia[] = "JOIN ".$argumente[2]." ON ".$argumente[1].".steckerid = ".$argumente[2].".steckerid";

                            if (
                        $anzahl 2) {
                                   
                        $ii 3;
                                       
                        $i 2;
                                while (
                        $ii <= $anzahl) {
                                     
                        $ia[] = "JOIN ".$argumente[$ii]." ON ".$argumente[$i].".steckerid = ".$argumente[$ii].".steckerid";
                                    
                        $ii++; 
                                    
                        $i++;
                                }
                            }
                                          
                        $ia[] = "WHERE ".$argumente[1].".eigenschaft LIKE '".$arg[0]."'";
                                   
                        $i 1;
                                   
                        $ii 2;
                                while (
                        $ii <= $anzahl) {
                                    
                        $ia[] = "AND ".$argumente[$ii].".eigenschaft LIKE '".$arg[$i]."'";
                                    
                        $ii++;
                                    
                        $i++;
                                }
                                
                        $ia[]= '';
                        //--> Ende der MySQL-Abfrage

                            //Aus dem Array $ia wird ein String, der die MySQL-Agfrage enthält
                            
                        $sql implode(" "$ia);

                                    
                        // Abfrage wird an die DB gesendet
                                    
                        $result mysql_query($sql) OR die(mysql_error());
                                        
                        //Empfangen der Daten aus der DB
                                        
                        $steckerid = array();
                                        while(
                        $inhalt mysql_fetch_array($result)){
                                                
                        $steckerid[] = $inhalt['steckerid'];
                                        }
                                        
                        //<-- Beginn der 2. MySQL-Abfrage
                                        
                        unset($ia);
                                        unset(
                        $sql);
                                       
                        $ia[] = "SELECT ".$argumente[1].".eigenschaft";
                                
                        $ii 2;
                                while (
                        $ii count($argumente)) {
                                    
                        $ia[] ="," $argumente[$ii] . ".eigenschaft";
                                    
                        $ii++;
                                }
                                   
                        $ia[] = "FROM " $argumente[1];

                                   
                        $ia[] = "JOIN " $argumente[2] . " ON ".$argumente[1] . ".steckerid = ".$argumente[2] . ".steckerid";

                            if (
                        count($argumente) >= 3) {
                                   
                        $ii 3;
                                       
                        $i 2;
                                while (
                        $ii count($argumente)) {
                                     
                        $ia[] = "JOIN " $argumente[$ii] . " ON " $argumente[$i] . ".steckerid = ".$argumente[$ii] . ".steckerid";
                                    
                        $ii++; 
                                    
                        $i++;
                                }
                            }
                                          
                        $ia[] = "WHERE " $argumente[1] . ".steckerid = '" $steckerid[0] . "'";
                                   
                        $i 1;
                                   
                        $ii 2;
                                while (
                        $ii count($argumente)) {
                                    
                        $ia[] = "AND " $argumente[$ii] . ".steckerid = '" $steckerid[0] . "'";
                                    
                        $ii++;
                                    
                        $i++;
                                }
                                
                        $ia[]= '';
                        //--> Ende der 2. MySQL-Abfrage

                                    //Aus dem Array $ia wird ein String, der die MySQL-Agfrage enthält
                                    
                        $sql implode(" "$ia);
                            
                                    
                        // Abfrage wird an die DB gesendet
                                    
                        $result mysql_query($sql) OR die(mysql_error());
                                        
                        //Empfangen der Daten aus der DB
                                        
                        $ergebnis = array();
                                        while (
                        $inhalt mysql_fetch_row($result)) {
                                            
                        $ergebnis $inhalt;
                                        }
                                        
                        //Das Array $tmp wird erzeugt
                                        
                        $tmp = array();
                                            
                        //Die Daten aus dem Array $argumente werden
                                            //in das Array $tmp geschrieben
                                            
                        $tmp $argumente;
                                            
                        //Das erste Element des Arrays $tmp wird gelöscht
                                            
                        $tmp array_splice($tmp1);
                                            
                        //Die Arrays $tmp und $ergebnis werden zusammengeführt,
                                            //wobei $tmp die Schlüssel des neuen Arrays $ende bilden
                                            //und $ergebnis die neuen Werte des Array $ende.
                                            
                        $ende array_combine($tmp$ergebnis);

                                        
                        //Ausgabe der gefundenen Daten
                                        
                        echo "<br><br>Ergebnis:<br>";
                                                    
                        print_r($ende);
                            }                
                        ?>
                        Greeeeetz splifter

                        Kommentar

                        Lädt...
                        X