Linuchs: mySQL Datenfeld-Inhalt kommt falsch

Moin,

ich weiss gerade überhaupt nicht weiter. In der Tabelle "bfp_events" (evt1) sind die Werte messeplan_x und messeplan_y enthalten, mit phpmyadmin geprüft:

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Slotplan, gebuchte kontakte, gebuchte events lesen
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SELECT
 slt1.*

,adr1.id          aussteller_id
,adr1.bezeichnung austeller_bezeichnung
,adr1.stand_ort   austeller_stand_ort
,adr1.stand_nr    austeller_stand_nr
,adr1.messeplan_x
,adr1.messeplan_y

,evt1.id          event_id
,evt1.ort         event_ort
,evt1.art         event_art
,evt1.name        event_name
#,evt1.messeplan_x event_x
#,evt1.messeplan_y event_y
,evt1.messeplan_x evt1_x
,evt1.messeplan_y evt1_y
,'test'
FROM      bfp_slots slt1

# gebuchte Kontakte
LEFT JOIN bfp_kontakte kon1
ON        kon1.owner_id     = slt1.owner_id
AND       kon1.slot_nr      = slt1.nr
AND       kon1.besucher_id  = '21916'
# Aussteller zum Kontakt
LEFT JOIN bfp_adressen adr1
ON        adr1.id           = kon1.aussteller_id

# gebuchte Events
LEFT JOIN bfp_eventbuchungen evb1
ON        evb1.adress_id    = '21916'
AND      (    evb1.von_slot_nr  = slt1.nr
          OR  evb1.bis_slot_nr  = slt1.nr )
# Event zur Buchung
LEFT JOIN bfp_events evt1
ON        evt1.id           = evb1.gebuchte_event_id

WHERE     slt1.owner_id = '17'
AND       slt1.loe_kz   = 0
AND      (slt1.tag_nr   = '1' OR slt1.tag_nr   = '2' )
ORDER BY  slt1.nr

Doch ich erhalte den Wert 0 für evt1_x und evt1_y. DAchte, dass event_x vielleicht ein mySQL-internes Wort sei …

Meine Kontrolle:

echo "<pre>";
var_dump( $row );
echo "</pre>";

Ergebnis (ab event_id interessant):

array(24) {
  ["id"]=>
  string(3) "603"
  ["owner_id"]=>
  string(2) "17"
  ["nr"]=>
  string(1) "5"
  ["datum"]=>
  string(10) "2018-06-13"
  ["tag_nr"]=>
  string(1) "1"
  ["uhr_von"]=>
  string(5) "10:45"
  ["uhr_bis"]=>
  string(5) "11:10"
  ["autom_setzen"]=>
  string(1) "1"
  ["loe_kz"]=>
  string(1) "0"
  ["last_modified"]=>
  string(19) "2018-02-21 18:45:00"
  ["aussteller_id"]=>
  NULL
  ["austeller_bezeichnung"]=>
  NULL
  ["austeller_stand_ort"]=>
  NULL
  ["austeller_stand_nr"]=>
  NULL
  ["messeplan_x"]=>
  NULL
  ["messeplan_y"]=>
  NULL
  ["event_id"]=>
  string(3) "730"
  ["event_ort"]=>
  string(15) "Raum 5 Halle B3"
  ["event_art"]=>
  string(7) "Vortrag"
  ["event_name"]=>
  string(149) "Diesel-Problematik, steigende Fuhrparkkosten und Unsicherheit bei E-Mobilität - wie Unternehmen mit Carsharing-Lösungen risikolos reagieren können"
  ["evt1_x"]=>
  string(1) "0"
  ["evt1_y"]=>
  string(1) "0"
  ["test"]=>
  string(4) "test"
  ["wotag"]=>
  string(1) "3"
}

Woher kommt der Wert 0 für evt1_x? Ich erwarte 3057 (phpmyadmin). Für die Aussteller-Positionen (hier nicht ausgewertet) ist alles okay.

Linuchs

  1. Hallo Linuchs,

    tja, so wie ich das sehe, kommen die aus der DB, und zwar Tabelle bfp_events, id="730". Aus der Tabelle bfp_adressen jedenfalls nicht, da hat der JOIN keinen Match gefunden (die Werte sind NULL).

    Rolf

    --
    sumpsi - posui - clusi
  2. uff, es ist heiß …

    Ich arbeite auf zwei verschiedenen Servern und habe den Fehler zwei Stunden auf dem falschen Server gesucht.

    An den Server, der die Daten liefert, waren die x/y Werte noch gar nicht übermittelt.

    Habe jetzt erstmal kalt geduscht …

    1. @Linuchs

      Ich habe hier Speicher für Notebooks rum liegen (Nicht viele). Warst Du nicht der, der irgendwie Rechner für eine Schule oder so betreut?

      • 2x 4GB DDR3 PC12000S (aus Lenovo T530)
      • 1x 2GB DDR3 PC12000S (wohl aus billigem ASUS-Dingens)
      • 1x 1GB DDR2 "677" (aus Lenovo T71)
      • 1x 1GB DDR2 "PC2-6400S-666-12-A3" (wohl aus Lenovo X61)

      (Kann sein, eine Nachsuche liefert weitere. Irgendwann will ich zudem auch noch ein T71 und, je nach Geschäftsgang auch den "Am-Abend-vor-dem-Seminar-Notkauf" von einem ASUS-Dingens loswerden.)

      Da Du ja weißt, wie die Regina mit Spitzname heißt wirst Du wohl einfach ein Email mit der Adresse senden können.