Input mit Value & Select

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

  • Input mit Value & Select

    Habe wieder ein SQL prob.
    Habe ein Form wo Kunden ihre Daten eintragen.
    Im INSERT möchte ich jedoch auch Landkreis und Bundesland automatisch mitspeichern lassen.
    Also auf die weise wie hier unten:
    PHP-Code:
    INSERT INTO `kunden`
    SELECT `landkreis`, `bundesland`
    FROM `plzdbwhere plzdb.plz=51429 
    So soll es aussehen. Klappt aber nicht.
    PHP-Code:
    INSERT INTO `kunden` (
    `
    plz` ,
    `
    ort` ,
    `
    landkreis` ,
    `
    bundesland` ,
    )
    VALUES (`51429`,`Bergisch Gladbach`, 
    SELECT landkreis from plzdb where plzdb.plz=51429
    SELECT bundesland from plzdb where plzdb.plz=51429  ); 
    Kann mir jemand weiter helfen ?

    Cu Sven
    Zuletzt geändert von SonicCGN; 29.12.2007, 23:19.
    MySQL 5.0.45 mit PHP 5.2.4 auf Suse 10.0.
    GD 2.0.28

  • #2
    mysql_error() hilft dir gern weiter

    Kommentar


    • #3
      Naja das mit der Fehlermeldung hätte ich auch alleine hin bekommen. Zumal PMA mir sie freiwillig gibt ;-)
      Es ging mir hier einzig um die richtige Syntax.

      Aber habe es jetzt doch noch irgendwo eine Antwort gefunden.

      Kannte bisher nur die VALUE (...) Version.

      Habe soeben heraus gefunden das es auch anders geht.

      PHP-Code:
      INSERT into `tabelleSET `spalte1` = "blabla", `spalte2` = (Select ... from...) 
      MySQL 5.0.45 mit PHP 5.2.4 auf Suse 10.0.
      GD 2.0.28

      Kommentar


      • #4
        So oder so werden Subselects in Klammern gesetzt.

        Was anderes: Dein Datenbankdesign ist Murks. Du hälst offensichtlich eine Tabelle mit allen PLZ, den dazugehörigen Städten und Landkreisen vor (übrigens gibt es auch Kreisfreie Städte ). Warum referenzierst du nicht auf diesen Datensatz? So hast du min. zwei Datensätze, in denen die selben Daten stehen. Das ist unschön.
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Ich habe ca. 30.000 Datensätze. Kommt ein neuer hinzu so erhält dieser Automatisch anhand der PLZ eine Stadt (per Select), einen Landkreis und ein Bundesland zugewiesen.

          Landk. und Bundesl. werden nicht angezeigt -> diese dienen mir nur zur Suche nach Landk. bzw Bundesl. bzw. auch nach Kreisfreien Städten ;-)

          Wenn ich bei einer LiveSuche erst alle PLZ's mit der PLZ DB vergleichen muss iss das doch sicherlich nicht sehr performant ?!

          Oder verstehe ich Dich etwas falsch.
          Ich handle nur nach bestem wissen, lasse mich aber gerne belehren--> so lange ich es auch umsetzten kann
          MySQL 5.0.45 mit PHP 5.2.4 auf Suse 10.0.
          GD 2.0.28

          Kommentar


          • #6
            Dann Joinst du einfach die Tabelle auf deine Kundendatensätze.
            [FONT="Helvetica"]twitter.com/unset[/FONT]

            Shitstorm Podcast – Wöchentliches Auskotzen

            Kommentar


            • #7
              Habe mich jetzt mal ans Thema Join heran gewagt.
              PHP-Code:
              SELECT TIMESTAMPDIFFYEAR persodata.gebdat CURDATE( ) ) as jahre,
               
              kundenlogin.knrdocs.filenamedocs.widthdocs.height 
              from persodata
              , `kundenlogin`
              left JOIN `docsON kundenlogin.knr docs.knr where kundenlogin.kategorie 3 group by knr 
              Da meine mySQL Kenntnisse doch etwas begrenzt sind habe ich es bisher immer mit do..while Schleifen gemacht.
              (Also in die Schleife jeweils eine weitere SQL abfrage) Ich weis daß das Eure Herzen höher schlagen lässt
              Aber ich bekomme es einfach nicht so recht auff'e Reihe.

              So jetzt muss ich es mal anpacken. und habe auch in PMA ein recht schönes Result bekommen.

              Nur jetzt habe ich das Prob. daß die Spalte (gebdat) bei jeder row den gleichen Inhalt hat.
              Da muss irgendwie auch ein `left JOIN`rein glaube ich. Sowie das `group by knr`iss hier wohl auch falsch.

              Nur egal wo ich es zwischen setzte bekomme ich immer einen Fehler.
              Cu Sven
              Zuletzt geändert von SonicCGN; 06.01.2008, 09:49.
              MySQL 5.0.45 mit PHP 5.2.4 auf Suse 10.0.
              GD 2.0.28

              Kommentar

              Lädt...
              X