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

  • [Erledigt] MySQL Abfrage

    Hoi,

    ich habe hier eine MySQL Datenbank mit 11 Tabellen:

    "anschluss"

    "anschlussquer"

    "kabeldurchlass"

    "kabellänge"

    "kontaktoberfläche"

    "krednr"

    "schutzart"

    "Serien"

    "Steckerart"

    "verriegelung"

    in allen Tabellen befindet sich die Spalte steckerid, nun möchte ich in diesen Tabellen nach einer bestimmten steckerid suchen und mir die Ergebnisse ausgeben lassen.

    Für die Abfrage habe ich mir folgenden Code geschrieben:
    PHP-Code:
    $tabellen = array("anschluss""anschlussquer""kabeldurchlass""kabellänge""kontaktoberfläche""krednr""schutzart""Serien""Steckerart""verriegelung");
                   
    print_r($tabellen);
                
                
    $ii 0;
    $i 0;
                foreach(
    $tabellen as $key=>$value){
                        

                        
    $sql[] = "SELECT * FROM ".$value." WHERE ".$argumente[0]." = '".$inhalt["$i"]['steckerid']."'";
                        echo 
    "<br> ii:$ii i:$i $value";
                        
    $ii++;
    if (
    $ii ==or $ii ==18) {
    $i++;
    }
                } 
    in dem Array inhalt befinden sich alle steckerid's die ich aus einer Abfrage davor erhalten habe.
    Leider funktioniert der Code aber nicht.

    Vielleicht hat noch jmd eine Idee wie ich zu meiner Abfrage komme!?


    Greeeetz splifter

  • #2
    Wo kommen denn $argumente und $inhalt her
    Hast Dir mal die Query ausgeben lassen?
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Sieht ja etwas fies aus dein Code! Um mal auf einiges hinzuweisen:

      - Dir fehlt ein mysql_query, damit das jeweilige SQL Statement überhaupt ausgeführt wird
      - warum nennst du Variablen $i oder $ii? Nachher schwer zu debuggen!
      - Wo kommen die Variablen $inhalt und $argumente her?
      - usw...

      Wolf29
      while (!asleep()) sheep++;

      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

      Kommentar


      • #4
        Hm,

        ich poste mal einfach beide Scripte:
        PHP-Code:
                <html>
            <head>
                <title>ArtNumKon v0.1</title>
                <link rel="stylesheet" type="text/css" href="style/main.css">
                <style type="text/css">
                    /* ...................................... */
                    /* ... Platz für spezielle Wünsche :p ... */
                    /* ...................................... */
                </style>
            </head>
            <body>
                <div id="Seite">    
                   <h1>Artikel-Nummern-Konverter<br>BiNDER STECKER</h1>
                    
                    <?php require("form/menue_home.php");?>
                    
             <div id="Inhalt">
        <?php

        require("admin/db/config.php");
        require(
        "func/func_sqlconnect.php");
        require(
        "func/func_stecker.php");

        sqlconnect();
          
        $db_sel mysql_select_dbMYSQL_DATENBANK )
           or die(
        "Auswahl der Datenbank fehlgeschlagen");

          
        error_reporting(E_ALL);


        $serie $_POST['serie'];

        if (!empty(
        $_POST['Steckerart'])) {
            
        $steckerart $_POST['Steckerart'];
            
        $argumente = array("steckerid""Steckerart""steckerart"$steckerart$serie);

            
        steckersuche($argumente);
            
        }

        ?>


        </div>
             <h2 id="fuss"> <?php require("form/fuss.php"); ?></h2>
             </div>
        </body>
        PHP-Code:
        <?php
        function steckersuche($argumente) {

            
        $db_sel mysql_select_dbMYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");

        $serie $argumente[4];

        $suche strip_tags($argumente[3]);
        $search_string mysql_real_escape_string($suche);

                
        //string nach jedem Leerzeichen trennen
                //und in ein Array stecken
                    
        $woerter explode(" "$text);
                    foreach(
        $woerter as &$wort){
                       
        $wort chunk_split($wort3"%");
                    }
                    
        $frage implode("%"$woerter);
                        
        #echo $frage;
                        #echo $serie;
                        
                
        if ($serie == 0) {
                    
        $sql "SELECT ".$argumente[0]." FROM ".$argumente[1]." WHERE ".$argumente[1].".".$argumente[2]." LIKE '%".$frage."%'";
                }
                
        #echo $sql;

                    
        $result mysql_query("$sql") OR die(mysql_error());

                        
        $inhalt[] = mysql_fetch_array($result); 
                                         
                        while(
        $tmp[]=mysql_fetch_array($result)) {         
                            
        $inhalt=array_merge($inhalt,$tmp);  
                        } 
                        
        print_r($inhalt);                        
        }
        ?>

        Kommentar


        • #5
          PHP-Code:
          $argumente = array("steckerid""Steckerart""steckerart"$steckerart$serie); 
          Steckerart hat ein großes S, die anderen ein kleines - ist das korrekt???

          Ich frag' mich auch immer wieder, was das soll:
          PHP-Code:
          mysql_query("$sql"
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #6
            Jo das stimmt, Steckerart ist der Tabellenname und steckerart der Spaltenname...


            Greeeetz splifter

            Kommentar


            • #7
              Und was ergibt nu' das echo $sql?
              Hast das mal in PHPmyAdmin getestet?
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                Zitat von splifter Beitrag anzeigen
                Jo das stimmt, Steckerart ist der Tabellenname und steckerart der Spaltenname...
                ouch
                "My software never has bugs, it just develops random features."
                "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                Kommentar


                • #9
                  Was Du suchst, ist ein JOIN. Das da oben ist doch alles Käse.
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar


                  • #10
                    Hoi ich habe es schon mit
                    Code:
                    SELECT * FROM a.anschluss JOIN g.schutzart WHERE a.anschluss.steckerid= g.schutzart.steckerid
                    Ich bekomme dann aber folgende Fehlermeldung:
                    Code:
                    #1142 - SELECT command denied to user 'tf_5859161'@'********' for table 'anschluss'

                    Greeeetz splifter

                    Kommentar


                    • #11
                      Ja.
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar


                      • #12
                        Ich habe mir jetzt was gebastelt was mir die Abfrage erstellt, aber ich bräuchte noch eine kurze Hilfe damit es funktioniert:
                        PHP-Code:
                                   $ia[] = 'SELECT steckerid 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].'.steckerid = '.$arg.'';

                                   
                        $ii 2;
                                while (
                        $ii <= $anzahl) {
                                    
                        $ia[] ='AND '.$argumente[$ii].'.steckerid = '.$arg.'';
                                    
                        $ii++;
                                }

                            }
                            
                            
                        $ia[]= '';

                            
                        $sql implode(" "$ia);


                            

                                    
                        $result mysql_query($sql) OR die(mysql_error());

                                        
                        $inhalt[] = mysql_fetch_array($result); 
                                                         
                                        while(
                        $tmp[] = mysql_fetch_array($result)) {         
                                            
                        $inhalt array_merge($inhalt,$tmp);  
                                        } 
                                        
                        print_r($inhalt); 
                        Das ergibt bisher
                        Code:
                        SELECT steckerid FROM Steckerart JOIN kabeldurchlass ON Steckerart.steckerid = kabeldurchlass.steckerid JOIN schutzart ON kabeldurchlass.steckerid = schutzart.steckerid WHERE Steckerart.steckerid = fla%nsc%h%6-7%m%IP6%4% AND kabeldurchlass.steckerid = fla%nsc%h%6-7%m%IP6%4% AND schutzart.steckerid = fla%nsc%h%6-7%m%IP6%4%
                        Damit es funktioniert brauch ich die ":
                        Code:
                        SELECT steckerid FROM Steckerart JOIN kabeldurchlass ON Steckerart.steckerid = kabeldurchlass.steckerid JOIN schutzart ON kabeldurchlass.steckerid = schutzart.steckerid WHERE Steckerart.steckerid = "fla%nsc%h%6-7%m%IP6%4%" AND kabeldurchlass.steckerid = "fla%nsc%h%6-7%m%IP6%4%" AND schutzart.steckerid = "fla%nsc%h%6-7%m%IP6%4%"
                        Wie bekomme ich die noch da mit rein?

                        edit:
                        mitlerweile erhalte ich die Ausgabe:
                        Code:
                        Column 'steckerid' in field list is ambiguous
                        Was soll das mir sagen?
                        Was muss ich machen, damit die Abfrage funzt?

                        Greeeetz splifter

                        Kommentar


                        • #13
                          Also wirklich... Das sollte man mit RTFM eigentlich wissen!
                          PHP-Code:
                          echo 'Hallo "Welt"'
                          Wie Du das jetzt in Dein Konstrukt einbaust, sollte klar sein...


                          EDIT
                          ambiguous = zweideutig
                          (english for runaways)
                          Competence-Center -> Enjoy the Informatrix
                          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                          Kommentar


                          • #14
                            Zitat von Arne Drews Beitrag anzeigen
                            Also wirklich... Das sollte man mit RTFM eigentlich wissen!
                            PHP-Code:
                            echo 'Hallo "Welt"'
                            Wie Du das jetzt in Dein Konstrukt einbaust, sollte klar sein...
                            wenn das so einfach wäre hätte ich es hinbekommen

                            wenn ich den code von:
                            PHP-Code:
                            $ia[] = 'WHERE '.$argumente[1].'.steckerid = '.$arg
                            nach:
                            PHP-Code:
                            $ia[] = 'WHERE '.$argumente[1].'.steckerid = "'.$arg.'"'
                            ändere erhalte ich folgende ausgabe:
                            Code:
                            WHERE Steckerart.steckerid =
                            dort fehlt jetzt das wonach er suchen soll.
                            Zitat von Arne Drews Beitrag anzeigen
                            EDIT
                            ambiguous = zweideutig
                            (english for runaways)
                            Übersetzen konnte ich es mir auch noch, hab jetzt nochmal ein bischen gesucht und denke so funktioniert es:
                            PHP-Code:
                            $ia[] = 'SELECT '.$argumente[1].'.steckerid'
                            Jetzt fehlen aber immernoch die "...


                            Thx & Greeeetz splifter

                            Kommentar


                            • #15
                              wenn ich den code von:
                              PHP-Code:
                              $ia[] = 'WHERE '.$argumente[1].'.steckerid = '.$arg
                              nach:
                              PHP-Code:
                              $ia[] = 'WHERE '.$argumente[1].'.steckerid = "'.$arg.'"'
                              ändere erhalte ich folgende ausgabe:
                              Code:
                              WHERE Steckerart.steckerid =
                              Glaube ich Dir nicht:
                              PHP-Code:
                              $arg 'wert';
                              $sql 'SELECT spalte FROM tabelle WHERE spalte="' $arg '"';
                              echo 
                              $sql
                              ergibt folgende Ausgabe bei mir!
                              Code:
                              SELECT spalte FROM tabelle WHERE spalte="wert"
                              Competence-Center -> Enjoy the Informatrix
                              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                              Kommentar

                              Lädt...
                              X