Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausgabe in Array speichern und erneut per Select aus tabelle abfragen

Einklappen

Neue Werbung 2019

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

  • Ausgabe in Array speichern und erneut per Select aus tabelle abfragen

    Hallo.
    Tut mir wirklich leid, ich bin noch ein blutiger Anfänger und bitte um etwas Verständnis

    Ich habe per Select Abfrage ein Ergebnis und möchte dieses Filtern und neu aus einer anderen Tabelle abfragen.
    Hier mal der Code, der mir das Ergebnis ausgibt:
    -------------------------------------------------------------
    $sql = mysqli_query($con,$query);
    while( $erg = mysqli_fetch_row($sql) ) {

    echo '
    <pre>', print_r($erg), '</pre>
    ';
    }

    -------------------------------------------------------------
    Ergebnis sieht so aus:
    Array ( [0] => 34225 [1] => 1.6392236825059114 ) 1
    Array ( [0] => 34277 [1] => 4.129303898091184 ) 1
    Array ( [0] => 34270 [1] => 5.586948282227126 ) 1
    -------------------------------------
    Nun möchte ich gerne aber nur die Postleitzahlen filtern, also so: <pre>', print_r($erg[0]), '</pre> Ergebnis:
    342251
    342771
    342701
    ------------------------------------
    Mein Gedanke war dieser: $get ="Select * FROM tabelle WHERE plz IN (".implode(',', $erg[0]).") "; dies geht aber nicht. Fehlermeldung: implode(): Invalid arguments Ich weiß nicht wie ich das lösen kann... Kann mir jemand bitte einen Tipp geben?

  • #2
    Am besten lässt du das direkt die Datenbank machen, dafür gibts JOIN's.
    Für Code gibs hier im Forum Codetags, das ist farblich hervorgehoben und sauber lesbar:
    PHP-Code:
    echo "Code-Tag"

    Kommentar


    • #3
      Erstmal Danke für die schnelle Antwort. Mot dem Code-Tag, werde ich das nächste mal machen, wusste ich nicht. Könntest du mir einen Hinweis geben, wie und welches Join ich verwenden kann/soll?

      Kommentar


      • #4
        http://www.sqlfiddle.com/#!9/9a6e55/1

        Wirklich gut lässt sich das bei deinen bisherigen Informationen nicht sagen, da deine Datenbankstruktur (die beiden Tabellen) nicht beschrieben wurden. Übrigens ein Grund warum man SELECT * vermeiden sollte, man macht es allen Codelesern schwerer zu verstehen welche Daten am Ende rauskommen

        Kommentar


        • #5
          Oh entschuldige... Wie gesagt, bin Anfänger Ich fülle natürlich eine sql fiddle aus und poste sie hier!

          Kommentar


          • #6
            Hier meine Fiddle datei mit ein paar dummie Einträgen: http://www.sqlfiddle.com/#!9/45da53/9
            Nun möchte ich die ausgebenen Postleitzahlen abgleichen, ob Events mit diesen plz aus der Tabelle "eintragen" vorhanden sind und dann ausgeben.
            Bevor ihr es ansprecht: Ich habe mir auch schon ->st_distance_sphere<- angeschaut, aber ich finde keinerlei Auskunft, wo ich den Radius da einbauen soll.
            Auch ein SubQuery bekomme ich leider nicht hin:
            PHP-Code:
            Select from eintragen WHERE plz IN (SELECT    
                plz
            ,
                    (
                    
            6371 acos(
                        
            cos(
                            
            radians51.525553 )
                        ) * 
            cos(
                            
            radianslat )
                        ) * 
            cos(
                            
            radianslon ) - radians9.895205 )
                        ) + 
            sin(
                            
            radians51.525553 )
                        ) * 
            sin(
                            
            radianslat )
                        )
                    )
                ) AS 
            distance

            FROM
                plz_de

            HAVING
                distance 
            <= 10)
            ORDER by datum ASC 
            Kann mir jemand helfen, bin echt am verzweifeln

            Kommentar


            • #7
              Ich verstehe nicht was deine Fragestellung hier in dem Thread mit der Entfernungsberechnung zu tun haben soll.
              Deine Filterung bekommst du wie von mir beschrieben mit einem JOIN hin. Mein Minimalbeispiel oben zeigt alles was du brauchst. Die Tabellennamen musst du natürlich entsprechend ändern, dann kannste den JOIN ... ON ... Teil so übernehmen. Deine gewählten Beispieldaten scheinen mir aber ungeeignet, denn es gibt keinerlei Übereinstimmung. Zu den 3 Postleitzahlen die von deiner Abfrage geliefert werden exisitert kein Eintrag in deiner "eintragen" Tabelle.

              Kommentar

              Lädt...
              X