Ankündigung

Einklappen
Keine Ankündigung bisher.

Var mit MySql und PHP

Einklappen

Neue Werbung 2019

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

  • Var mit MySql und PHP

    Moin, ich versuche ein wenig mit php und MySql machen.
    Datenbankconnect ok
    Formular an Variable übergeben ok
    Dann versuch ich eine SQL abfrage zu machen und bekomme
    Unknown column 'p7712345' in 'where clause'
    Natürlich habe ich schon gesucht aber alles was ich ausprobiert habe hat nichts produktives gebracht.

    Hiermal mein code
    PHP-Code:
    WHERE
    INSOLE
    .insole_1 LIKE '."$Patientennummer".'
    AND
    INSOLE.insole_1 IS NOT NULL 
    wenn ich $Patientennummer durch zB p7712345 ersetze funktioniert es wunderbar.

    vielleicht kann jemand erklären was ich falsch mache

    MfG

    Sibre

  • #2
    Zeig doch mal, wie Du den Query genau aufbaust mit PHP?
    Imho sind die DoubleQuotes überflüssig...
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      hier ist der complete code

      PHP-Code:
      mysql_select_db("usrdb_keininbi_wiegmann")
      or die (
      "Die Datenbank existiert nicht.");
      $abfrage ='SELECT DISTINCT
      PATIENT.p_number,
      INSOLE.insole_1,
      PATIENT.p_name,
      PATIENT.p_vorname,
      PATIENT.p_street,
      PATIENT.p_postcode,
      PATIENT.p_city,
      PATIENT.p_country,
      PATIENT.p_picture
      FROM
      PATIENT
      CROSS JOIN INSOLE
      WHERE
      INSOLE.insole_1 LIKE '
      ."$Patientennummer".'
      AND
      INSOLE.insole_1 IS NOT NULL
      ORDER BY
      PATIENT.p_number,
      PATIENT.p_vorname,
      PATIENT.p_name,
      PATIENT.p_street,
      PATIENT.p_postcode,
      PATIENT.p_city,
      PATIENT.p_country,
      INSOLE.insole_1'
      ;

      $ergebnis mysql_query($abfrage) or die(mysql_error()); 
      while(
      $row mysql_fetch_object($ergebnis))
         {
         echo 
      "Patientennummer: $row->p_number <br>Name:  $row->p_name<br>Vorname: $row->p_vorname<br>Einlage: $row->insole_1 <br>";
         } 

      Kommentar


      • #4
        Laß die DoubleQuotes weg, dann sollte es gehen.
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Dein Statement ist falsch. Du hast zwar nur die Hälfte gepostet, aber die Syntax passt nicht.

          edit: Das Bezog sich auf Post #1. Als ich geschrieben habe, war #3 noch nicht da

          Dein Code:
          Code:
          WHERE
          INSOLE.insole_1 LIKE '."$Patientennummer".'
          AND
          INSOLE.insole_1 IS NOT NULL
          Dies wird zu folgendem SQL Befehl7712345
          Code:
          WHERE
          INSOLE.insole_1 LIKE p7712345
          AND
          INSOLE.insole_1 IS NOT NULL
          MySQL versucht dann das Feld INSOLE.insole_1 mit dem (nicht vorhandenen) Feld p7712345 zu vergleichen. Du musst also zusehen, dass du es so hinbekommst, dass LIKE 'p7712345' dabei heraus kommt.

          PHP-Code:
          $query "[...] LIKE '$Patientennummer' [...]" 
          [...] ist hier mal ein Platzhalter für den Rest.


          Zitat von Arne Drews Beitrag anzeigen
          Laß die DoubleQuotes weg, dann sollte es gehen.
          Falsch. Die Quotes sind zwar unnötig, machen aber nichts kaputt. Vielmehr ist die Konkatenation einfach falsch.
          [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
          [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

          Kommentar


          • #6
            Oha... dennis81 hat natürlich Recht!
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Danke,
              habe jetzt:
              PHP-Code:
              INSOLE.insole_1 LIKE '.$Patientennummer.' 
              und bekomme immer noch:
              Unknown column 'p7712345' in 'where clause'

              Kommentar


              • #8
                Ja, siehe Hinweis von dennis81:
                Zitat von dennis81
                Du musst also zusehen, dass du es so hinbekommst, dass LIKE 'p7712345' dabei heraus kommt.
                Daran habe ich gar nicht gedacht. Aber das wirst wohl hinbekommen, oder?!
                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                Kommentar


                • #9
                  Danke Dennis und Arne,
                  Du musst also zusehen, dass du es so hinbekommst, dass LIKE 'p7712345' dabei heraus kommt.

                  Das ist was ich eigentlich vorhabe, vielleicht habe ich schon soviel probiert das ich es wirklich nicht mehr sehe. Wie genau bekomme ich das dann hin?

                  MfG

                  Sibre

                  Kommentar


                  • #10
                    Zitat von sibre Beitrag anzeigen
                    Das ist was ich eigentlich vorhabe, vielleicht habe ich schon soviel probiert das ich es wirklich nicht mehr sehe. Wie genau bekomme ich das dann hin?
                    Tu uns den Gefallen und lies unsere Postings sorgfältig durch:

                    Zitat von dennis81
                    PHP-Code:
                    $query "[...] LIKE '$Patientennummer' [...]" 
                    [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
                    [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

                    Kommentar


                    • #11
                      Zitat von dennis81
                      PHP-Code:
                      $query "[...] LIKE '$Patientennummer' [...]"
                      oder
                      PHP-Code:
                      $query "[...] LIKE '" $Patientennummer "' [...]"
                      Das ist Geschmacksache. Ich finde das zweite übersichtlicher bei so langen Abfragen wie Deiner.

                      EDIT: Zeitgleich und doch nur zweiter...
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar


                      • #12
                        PHP-Code:
                        INSOLE.insole_1 LIKE '$Patientennummer' 
                        bekomme ich aber
                        Parse error: syntax error, unexpected T_VARIABLE in /home/keininbi/www.XXXXXXX/test2.php on line 23

                        Kommentar


                        • #13
                          Da wirst Du wohl den führenden und schliessenden SingleQuote nicht gegen Double ausgetauscht haben.
                          Was man allerdings in dem kleinen Ausschnitt wieder nur vermuten kann.
                          Bitte konzentriere Dich auf das was in den Beispielen gepostet wird.
                          Competence-Center -> Enjoy the Informatrix
                          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                          Kommentar


                          • #14
                            Hallo Arne,

                            Das habe ich natürlich auch versucht.

                            PHP-Code:
                            $abfrage ="SELECT DISTINCT
                            PATIENT.p_number,
                            INSOLE.insole_1,
                            PATIENT.p_name,
                            PATIENT.p_vorname,
                            PATIENT.p_street,
                            PATIENT.p_postcode,
                            PATIENT.p_city,
                            PATIENT.p_country,
                            PATIENT.p_picture
                            FROM
                            PATIENT
                            CROSS JOIN INSOLE
                            WHERE
                            INSOLE.insole_1 LIKE '
                            $Patientennummer'
                            AND
                            INSOLE.insole_1 IS NOT NULL
                            ORDER BY
                            PATIENT.p_number,
                            PATIENT.p_vorname,
                            PATIENT.p_name,
                            PATIENT.p_street,
                            PATIENT.p_postcode,
                            PATIENT.p_city,
                            PATIENT.p_country,
                            INSOLE.insole_1"
                            ;

                            $ergebnis mysql_query($abfrage) or die(mysql_error()); 
                            while(
                            $row mysql_fetch_object($ergebnis))
                               {
                               echo 
                            "Patientennummer: $row->p_number <br>Name:  $row->p_name<br>Vorname: $row->p_vorname<br>Einlage: $row->insole_1 <br>";
                               } 
                            Dann wird aber nichts mehr ausgegeben bzw eine leere seite.

                            MfG

                            Sibre

                            Kommentar


                            • #15
                              Dein Code 1:1 kopiert funktioniert aber bei mir:
                              PHP-Code:
                              $Patientennummer 'p0815';
                              $abfrage ="SELECT DISTINCT
                              PATIENT.p_number,
                              INSOLE.insole_1,
                              PATIENT.p_name,
                              PATIENT.p_vorname,
                              PATIENT.p_street,
                              PATIENT.p_postcode,
                              PATIENT.p_city,
                              PATIENT.p_country,
                              PATIENT.p_picture
                              FROM
                              PATIENT
                              CROSS JOIN INSOLE
                              WHERE
                              INSOLE.insole_1 LIKE '
                              $Patientennummer'
                              AND
                              INSOLE.insole_1 IS NOT NULL
                              ORDER BY
                              PATIENT.p_number,
                              PATIENT.p_vorname,
                              PATIENT.p_name,
                              PATIENT.p_street,
                              PATIENT.p_postcode,
                              PATIENT.p_city,
                              PATIENT.p_country,
                              INSOLE.insole_1"
                              ;

                              echo 
                              $abfrage
                              Ausgabe:
                              Code:
                              SELECT DISTINCT PATIENT.p_number, INSOLE.insole_1, PATIENT.p_name, PATIENT.p_vorname, PATIENT.p_street, PATIENT.p_postcode, PATIENT.p_city, PATIENT.p_country, PATIENT.p_picture FROM PATIENT CROSS JOIN INSOLE WHERE INSOLE.insole_1 LIKE 'p0815' AND INSOLE.insole_1 IS NOT NULL ORDER BY PATIENT.p_number, PATIENT.p_vorname, PATIENT.p_name, PATIENT.p_street, PATIENT.p_postcode, PATIENT.p_city, PATIENT.p_country, INSOLE.insole_1
                              Ohne Fehlermeldung!
                              Competence-Center -> Enjoy the Informatrix
                              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                              Kommentar

                              Lädt...
                              X