Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql Abfrage über mehrere Tabellen & Leerzeichen Übernahme in $_POST?!

Einklappen

Neue Werbung 2019

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

  • mysql Abfrage über mehrere Tabellen & Leerzeichen Übernahme in $_POST?!

    Moin,

    ich hoffe mir kann jemand helfen - ich schaue schon nach meinen zwei Problemen überall im Netz und hier habe ich das Problem auch noch nicht gefunden..
    also..:
    ich würde gerne über (mehrere) hier zwei Tabellen eine Abfrage erstellen und auch Daten aus diesen zwei Tabellen in einer Abfrage ausgeben lassen.
    Gibt es hier eine Besonderheit in der Syntax die ich bisher noch nicht bemerkt habe? z.B in meinem code: tabelle1.daten, tabelle2.daten (in Access ja lieferbar/klassifizierbar durch [tabelle1]![daten] etc.. hier habe ich jetzt alles ausprobiert, klappt nicht - kann ich evtl bei php nur den namen umbenennen durch 'AS' ?!

    Das zweite Problem ist:
    Wenn ich durch eine Abfrage zwei Wörter mit Leerzeichen ausgegeben habe.. Heute Abend (z.B) - zeigt er mir natürlich im - $_POST[$var] - nur "Heute" an ohne Abend..
    Welchen Trick übersehe ich?


  • #2
    Zitat von Mastaars Beitrag anzeigen
    ich würde gerne über (mehrere) hier zwei Tabellen eine Abfrage erstellen und auch Daten aus diesen zwei Tabellen in einer Abfrage ausgeben lassen.
    Gibt es hier eine Besonderheit in der Syntax die ich bisher noch nicht bemerkt habe? z.B in meinem code: tabelle1.daten, tabelle2.daten (in Access ja lieferbar/klassifizierbar durch [tabelle1]![daten] etc.. hier habe ich jetzt alles ausprobiert, klappt nicht - kann ich evtl bei php nur den namen umbenennen durch 'AS' ?!
    Das mit dem per »as« vergebenen Alias hat mit PHP nichts zu tun, das ist ein Feature von SQL (ja, »as« ist optional) - probier es doch einfach mal aus. Und wenn es nicht funktioniert solltest du den verwendeten Code posten, woher sollen wir sonst wissen was du versucht hast?

    Wenn ich durch eine Abfrage zwei Wörter mit Leerzeichen ausgegeben habe.. Heute Abend (z.B) - zeigt er mir natürlich im - $_POST[$var] - nur "Heute" an ohne Abend..
    Die Glaskugel lässt dunkel erahnen dass du den Wert in das value-Attribut eines input-Feldes schreibst, aber die Anführungszeichen um den Wert vergessen hast womit sowas bei rauskommt: <input […] value=Heute Abend /> - für den Browser ist der Wert am Leerzeichen zu Ende und mehr wird also auch nicht übertragen. das »Abend« ist dann ein (ungültiges/unbekanntes) Attribut - das hätte dir der Validator auch verraten. Falls es das nicht ist: Code posten!

    Kommentar


    • #3
      Danke für die zwei Antworten erstmal!
      mit dem Keyword 'AS' funktioniert auf jeden Fall der erste Fall.. jedoch läuft der zweite Fall immer noch in Fehler.


      PHP-Code:

      $eins = "SELECT tabelle1.name as tabelle1Name, tabelle2.vorname, tabelle2.name as tabelle2Name
              FROM tabelle1
              LEFT JOIN tabelle2 ON tabelle1.id= tabelle2.id";

      if ($stmt = $pdo -> prepare($eins)) 
          {      

              $stmt -> execute();
          }
      ?>
      <form action="" method="POST">
      <select name="opt">
      <?php 
              
      while ($query $stmt -> fetch()) 
              { 
                  
      $ausgabe "<option value=" . ($query['vorname']) . "";
                  if(isset(
      $_POST['opt']))
                  { 
                      if ( (
      $_POST['opt']) == $query['vorname'])
                      { 
                          
      $ausgabe .= " selected";
                      }
                  }

                  
      $ausgabe .=  " > " $query['vorname'] . " </option>";
                  echo 
      $ausgabe;
              }
      ?>
      </select>
      </br>
      <input type="submit" value="anzeigen">
      </form>

      var_dump($_POST['opt']);
      So, nun wird bei Doppelnamen "Franz Josef" z.B mit Leerzeichen nur der erste Teil ("Franz") vor dem Leerzeichen angezeigt.. und natürlich auch nicht selected..

      Kommentar


      • #4
        Zitat von Mastaars Beitrag anzeigen
        So, nun wird bei Doppelnamen "Franz Josef" z.B mit Leerzeichen nur der erste Teil ("Franz") vor dem Leerzeichen angezeigt.. und natürlich auch nicht selected..
        Meine Glaskugel hatte fast recht: du produzierst invaliden Code da die Anführungszeichen um den Wert des value-Attributes fehlen (nur des option- statt input-Elements) - schau dir mal den erzeugten Quelltext an.
        Wozu eigentlich die Klammern in der Zeile die mit »$ausgabe = "<option« beginnt? Und für was der Leerstring am Ende? Und wo ist die Behandlung des Kontextwechsels? btw: </br> gibt es nicht und <input type="submit"> wäre gerne ein richtiger <button>.

        Kommentar


        • #5
          Hi,

          ja, du hattest Recht!
          Danke Dir für deine schnelle Hilfe!
          Hatte wohl einen Tunnelblick

          Jetzt läuft alles wieder ohne Probleme!

          Kommentar

          Lädt...
          X