PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Probleme mit PHP und mySQL, Select xy as yz funktioniert nicht (http://www.selfphp.de/forum/showthread.php?t=12767)

KickMuck 03.03.2006 02:22:35

Probleme mit PHP und mySQL, Select xy as yz funktioniert nicht
 
Hallo,

ich habe ein seltsames Problem bei der verwendung eines UNION SELECTS unter PHP auf eine MySQL-DB.
Ich verwende PHP 5.1.1 und MySQL 5.0.18.

Ich möchte gerne Werte von zwei Tabellen selektieren, In der einen Tabelle stehen Nummern ohne Bezug zu einem Namen, in Tabelle 2 gibt es ebenfalls eine Spalte die Nummern enthält und eine weitere Spalte mit dazugehörigen Namen.
Eigentlich wollte ich jetzt alle Nummern ausgeben, und falls ein Name in Tabelle 2 dazu existiert (Nummer in Tabelle 1 = Nummer in Tabelle 2), den in der zweiten Spalte angeben, sonst drei Fragezeichen.
Mein Select-Statement, das ich in phpMyAdmin absetze sieht so aus:

SELECT DISTINCT nummer,name
FROM tabelle_1 JOIN tabelle_2
WHERE nummer=nr OR nummer=nrfest
UNION
SELECT DISTINCT nummer, "???" AS name
FROM tabelle_1 JOIN tabelle_2
WHERE nummer NOT IN
(SELECT DISTINCT nr FROM tabelle_1);


Als Ergebnis erhalte ich (in phpMyAdmin) z.B. folgendes:

nummer | name
---------------------
1234 | Eins
1235 | Zwei
1236 | ???

usw.

Wende ich dieses Select allerdings per PHP an, so kommt kein gültiges ResultSet zurück und PHP kann es nicht mit fetch_assoc verarbeiten.
Das Problem scheint in dem 'SELECT ... AS ...' zu liegen. Ich habe auch schon andere Werte als die drei Fragezeichen verwendet, macht aber keinen Unterschied.

Wo liegt hier der Haken? Ist das ein bekanntes Problem von PHP?

Gruß, Robert

xabbuh 04.03.2006 13:24:31

AW: Probleme mit PHP und mySQL, Select xy as yz funktioniert nicht
 
Zitat:

Zitat von KickMuck
Ich möchte gerne Werte von zwei Tabellen selektieren, In der einen Tabelle stehen Nummern ohne Bezug zu einem Namen, in Tabelle 2 gibt es ebenfalls eine Spalte die Nummern enthält und eine weitere Spalte mit dazugehörigen Namen.
Eigentlich wollte ich jetzt alle Nummern ausgeben, und falls ein Name in Tabelle 2 dazu existiert (Nummer in Tabelle 1 = Nummer in Tabelle 2), den in der zweiten Spalte angeben, sonst drei Fragezeichen.

Du willst also die 1. Tabelle mit der 2. anhand der Nummer verknüpfen? Dann müsstest du mit einen JOIN wohl besser bedient sein als mit einer UNION-Abfrage.

Zitat:

Zitat von KickMuck
Wende ich dieses Select allerdings per PHP an, so kommt kein gültiges ResultSet zurück und PHP kann es nicht mit fetch_assoc verarbeiten.

Wie sieht dein PHP-Code aus? Was liefert mysql_query()? Was sagt mysql_error()?


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:15:21 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.