SQL IF Abfrage bei WHERE Klausel?

Ist halt single quote vs double quote.
Mit ' ' werden keine Variablen etc. ausgewertet, mit " " aber schon.
Ist in allen Sprachen die mir einfallen so.
 
So, ich bau jetzt gerade alles um auf diese PDO-Datenbankabfrage. Das funktioniert bisweilen auch ganz ordentlich... bis jetzt :)

PHP:
$query_main = "SELECT k.id, k.name, k.plz, k.stadt, k.bland, r.name, f.name, l.kurz, l.id, SUM(a.dekosetrx) AS sumdekosetrx, SUM(a.dekosette) AS sumdekosette, SUM(a.flyer) AS sumflyer, SUM(a.verkostungrx) AS sumverkostungrx, SUM(a.verkostungte) AS sumverkostungte, SUM(a.posterrx) AS sumposterrx, SUM(a.posterte) AS sumposterte, SUM(a.brief) AS sumbrief, MAX(a.kontakt) AS akontakt
		FROM kontakte k
		LEFT JOIN auftrag a ON k.id = a.kontaktid
		LEFT JOIN reform r ON k.grosshandel = r.id
		LEFT JOIN filter f ON k.filter = f.id
		LEFT JOIN land l ON k.land = l.id";
$query_group = " GROUP BY k.id";
	$query_order = " ORDER BY ".$order." ".$sortierung;
	$query_limit = " LIMIT ".$limita.", ".$limitb."";
	$query = $query_main.$query_group.$query_order.$query_limit;

$dbpdo = new PDO('mysql:dbname=dbXXXXX;host=XX.XX.XX.XX;port=3304', 'dbXXXXX', 'XXXXXX');

foreach ($dbpdo->query($query) as $entry) {
$d_id			= $entry['k.id'];
	$d_name	 		= $entry['k.name'];
	$d_plz	 		= $entry['k.plz'];
	$d_stadt		= $entry['k.stadt'];
$f_name			= $entry['f.name'];
$l_id			= $entry['l.id'];
}

Ich bekomm dann einen Fehler:
Notice: Undefined index: k.id in /.../home.php on line 488

Er scheint die definierte Spalte k.id nicht zu finden obwohl ich sie doch im SELECT ausgewählt habe. Die SELECT-Abfrage hab ich nicht geändert und zuvor mit dem alten Script ging sie ja noch. Entferne ich das "k." in $d_id = $entry['id']; findet er die Spalte ID. Aber ich habe ja mehrere Felder mit dem Namen ID und NAME.. da muss ich doch schon konkreter werden.
 
groß klein schreibung vll? gib doch das array in zeile 488 aus.. dann siehst du was du für indizes zur verfügung hast.. btw.. wenn deine home.php eine zeile 488 hat.. machst du vll etwas falsch ;)
 
Du solltest allen Feldern aus Tabellen einen Alias geben (also k.id as id), ob die Felder da groß oder klein zurückkommen ist afair Einstellungssache, man kann der Pdo beim Aufruf von new Pdo noch Optionen mitgeben, da kann man auch irgendwie lowercase verlangen (googlen hilft).

Ansonsten mal ein print_r auf $entry mchen, da siehst du doch wie die Schlüssel ankommen.

Edit:
http://stackoverflow.com/questions/...-names-in-linux-server-to-be-case-insensitive

Das dürfte dein Problem sein.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben