| SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden. |
 |

14-02-2007, 00:12
|
|
Bart
Registrierter Benutzer
|
|
Registriert seit: Jul 2005
Beiträge: 69
|
|
Problem mit sql join
Ich versuche mich gerade an sql join und ich werde einfach nicht einig
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /test/httpdocs/map.php on line 28
Ok also keine daten im array.
PHP-Code:
$result = mysql_query("
SELECT a.hnr, a.besitzer, a.gebaeude, c.id as pid, c.status , c.name
FROM ttl_map a
LEFT JOIN ttl_gebaeude b ON b.id = a.gebaeude
WHERE a.hnr > 100 ORDER BY c.time ");
while ($row = mysql_fetch_array($result))
{
$zaehler++;
$array[$zaehler] = array(
$row['hnr']
// und halb noch die ganzen anderen abgefragten zellen
);
echo $array[$zaehler]['hnr'];
}
Was ich eigentlich möchte das er aus "ttl_map" mir alle daten ausließt deren hnr wert kleiner als 100 ist.
dann soll er mir aus "ttl_gebaeude" status und name auslesen auslesen wo gebaeude =id ist.
Das ganze dann schön in den array Packen aber ich glaub das sollte nicht das Problem sein.
edit in php tag geandert sry und bitte in sql verschieben
Geändert von Bart (14-02-2007 um 00:45 Uhr)
|

14-02-2007, 00:38
|
Shurakai
Master  
|
|
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.090
|
|
1.) Lies endlich unsere Regeln! Da steht: mysql_error() benutzen!
2.) Da steht auch: die php-tags benutzen, nicht die zitat-tags!
3.) Falsches Forum!
4.) Du hast keine Tabelle mit dem alias c - woher kommt c.id?
|

14-02-2007, 01:00
|
|
Bart
Registrierter Benutzer
|
|
Registriert seit: Jul 2005
Beiträge: 69
|
|
Ok mit c das ist behoben und den mysql_error auch wieder eingebaut.
Jetzt erhalte ich folgende auf dem Monitor:
Fehler: 0 -
PHP-Code:
$result = mysql_query("SELECT a.hnr, a.besitzer, a.gebaeude, c.id, c.status , c.name
FROM ttl1_map a
LEFT JOIN ttl_gebaeude c ON c.id = a.gebaeude
WHERE a.hnr > 100");
echo "Fehler: " . mysql_errno() . " - " . mysql_error() . "\n";
while ($row = mysql_fetch_array($result))
{
$zaehler++;
$array[$zaehler] = array(
$row['hnr']
);
echo $array[1]['hnr'];
}
Zwar nichts mehr von array Leer oder so aber halb gar nichts an ausgabe.
|

14-02-2007, 02:01
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
print_r($array) wird dich erhellen.
|

14-02-2007, 08:50
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Hättest du das error_reporting auch eingestellt, wie in den Regeln beschrieben, hättest du auch eine Meldung wegen Zugriff auf einen nicht definierten Index bekommen.
(Aber sowas mal komplett zu lesen, übersteigt ja offenbar die Aufmerksamkeitsspanne der meisten.)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

14-02-2007, 13:38
|
|
Bart
Registrierter Benutzer
|
|
Registriert seit: Jul 2005
Beiträge: 69
|
|
Entschuldige wahsaga das man wenn man gerade seit einem halben Jahr über echo "hallo welt"; hinaus ist nicht immer gleich an alles denkt.
Ich hoffe aber trotzdem das noch jemand bereit ist mir zu helfen.
PHP-Code:
<html>
<head>
<title>Test</title>
</head>
<body>
<?
error_reporting(E_ALL);
include "./connect.php";
$array = array();
$result = mysql_query("SELECT a.hnr, a.besitzer, a.gebaeude, c.id, c.status , c.name
FROM ttl1_map a
LEFT JOIN ttl_gebaeude c ON c.id = a.gebaeude
WHERE a.hnr > 100");
echo mysql_error();
while ($row = mysql_fetch_array($result))
{
$zaehler++;
$array[$zaehler] = array(
$row['hnr']
);
echo $array[1]['hnr'];
}
print_r($array);
?>
</body>
</html>
Error_reporting schmeißt mir nichts aus
Print_r($array) gibt folgende ausgabe:
Array ( )
Das zeigt mir höchstens das, das Array leer zu sein scheint, nur wieso ?
|

14-02-2007, 13:43
|
|
Wyveres
Registrierter Benutzer
|
|
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
|
|
was gibt dir denn ein einfaches var_dump($row); in der while schleife aus.
|

14-02-2007, 13:48
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Original geschrieben von Bart
Entschuldige wahsaga das man wenn man gerade seit einem halben Jahr über echo "hallo welt"; hinaus ist nicht immer gleich an alles denkt.
|
Wenn du aufgefordert wirst, die Regeln zu lesen - dann darf doch wohl erwartet werden, dass du das auch einmal komplett machst.
Zitat:
Error_reporting schmeißt mir nichts aus
Print_r($array) gibt folgende ausgabe:
Array ( )
|
Dann dürfte es wohl daran liegen, dass in deine While-Schleife gar nicht hineingegangen wird - sonst müsste das echo eine Fehlermeldung geben.
Also liefert dein Select wohl gar keine Daten. (Test über mysql_num_rows)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

14-02-2007, 13:54
|
|
Bart
Registrierter Benutzer
|
|
Registriert seit: Jul 2005
Beiträge: 69
|
|
var_dump gibt mir leider absolut nichts aus.
Irgendwo muss bei meinem versuch mit der DB abfrage aber ein fehler drinnen sein (vermute) weil wenn ich die Tabellen einzeln abfrage bekomm ich alle daten ausgelesen.
|

14-02-2007, 13:55
|
jahlives
Master  
|
|
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.283
|
|
Zitat:
|
Also liefert dein Select wohl gar keine Daten. (Test über mysql_num_rows)
|
Also die Fehlermeldung besagt doch bereits, dass $result keine gültige Resultatressource ist. Der geht garantiert nicht in die Schleife rein.
@topicstarter
PHP-Code:
mysql_query("SELECT a.hnr, a.besitzer, a.gebaeude, c.id, c.status , c.name
FROM ttl1_map a
LEFT JOIN ttl_gebaeude c ON c.id = a.gebaeude
WHERE a.hnr > 100") OR die(mysql_error());
//echo mysql_error();
das müsste mehr Infos liefern.
Zitat:
|
Das zeigt mir höchstens das, das Array leer zu sein scheint, nur wieso ?
|
Dürfte an der Eingangs von dir geschilderten Fehlermeldung liegen.
Gruss
tobi
|

14-02-2007, 13:56
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Original geschrieben von jahlives
Also die Fehlermeldung besagt doch bereits, dass $result keine gültige Resultatressource ist.
|
Das sollte ja inzwischen erledigt sein - mysql_error wurde eingebaut, Tippfehler behoben.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|