Hallo Martin,
Leider kann ich die Zeliennummern nicht angeben, da ich unter Windows nur
mit dem Editor bzw. dem Wordpad arbeite. Da diese Konstellation bisher
ausreichte, habe ich auch bisher nicht ernsthaft um eine andere
Entwicklungsumgebung bemüht.
Da Windows generell ein Problem mit der UTF-8-Codierung zu haben scheint,
also auch in den Kommentaren, habe ich einiges schon so geändert, ohne es in
der Mailingliste bekanntzugeben. Der angeführte Fehler 1 ist mir nur danach
aufgefallen.
Zum Fehler2 nun nochmals etwas genauer:
Fehlt eine Verwaltungsebene, werden dann mit dem Script der Version 0.5
keine untergeordneten Verwaltungseinheiten (also z.B Kreise) angezeigt. Das
kommt daher, dass die Abfrage, wie sie war, auch dann einen Ergebisdatensatz
lieferte. In den Datensätzen der Kreise steht dann nicht 'NULL' sondern die
Zahl 0, die mit dem alten Script nicht ausgeschlossen wurde.
Fügt man als zusätzliche Bedingung ein, dass die gespeicherte ID größer als
0 sein muss, erhält man als Ergebnis (bei einer fehlenden Verwaltungsstufe)
0 Datensätze zurück (in $num gespeichert).
Dies kann man dann nutzen, um die Abfrage zu erweitern.
Sollte es allerdings etwas geben, wo mehr als eine Verwaltungseinheit fehlt,
sollte man eine andere Lösung suchen, da es meiner Meinung nach sonst
unübersichtlich wird.
Ich habe auch bereits einen 3. Fehler gefunden.
Wählt man ein PLZ-Gebiet aus, wurden bei mir keine Punkte in die Grafik
gemalt. Übermütig, wie ich bin, habe ich auch gleich nach einer Lösung
gesucht:
// Interpretation von GEODB_HIERARCHIES
$sql ="";
$sql =$sql . "SELECT *"
. " FROM geodb_hierarchies"
. " WHERE loc_id=" . $loc_id
. " ORDER BY valid_until"
;
$result=mysql_query($sql, $conn);
$num =mysql_num_rows($result);
if ($num > 0)
{ // theoretisch sollte $num==1 sein. (Stimmt aber nicht bei
PLZ-Gebieten)
echo "\n<a name='1'></a><b>" .$arr_tables[1] . ":</b>";
$qlevel =mysql_result($result, 0, "level"); // In der Hoffnung, dass
die Theorie gegeben ist.
//**************************************************************************
***************************
//ab hier habe ich geändert
//$num ist bei PLZ-Gebieten nicht 1, daher eine zusätzliche Abfrage
if ($num == 1)
{
echo ("<td rowspan='$num'> " .
"<a href='grafikOGDB.php?id=-$qlevel&val=$loc_id' " .
"target=\"pic\">Grafik anzeigen</a></td>");
}
else
{
$sql2 ="";
$sql2 = $sql2 . "SELECT *"
. " FROM geodb_textdata"
. " WHERE loc_id=" . $loc_id
. " AND text_type=500100000 ORDER BY text_val";
$result2=mysql_query($sql2, $conn);
$num2 =mysql_num_rows($result2);
// $num2 ergab bei meinen Tests immer 1
$qname2 =mysql_result($result2, 0, "text_val");
// den nachfolgenden Link habe ich gebastelt, nachdem ich mir die
Datei grafikogdb.php angesehen hatte
echo ("<td rowspan='$num'> " .
"<a href='grafikOGDB.php?id=500300000&val=$qname2' " .
"target=\"pic\">Grafik anzeigen</a></td>");
}
//**************************************************************************
**********************************
//Ende meiner Änderung
;
}
mit freundlichem Gruß
Thomas Müller
Tel: +49 (0)151 15241074
E-Mail: t_mueller_stolzenhain-LWAfsSFWpa4@xxxxxxxxxxxxxxxx
___________________________________________________________
Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden:
http://mail.yahoo.de
--
Mailingliste OpenGeoDB
Listenadresse: opengeodb-r1mDYR0DdAyzQB+pC5nmwQ@xxxxxxxxxxxxxxxx
Informationen: http://opengeodb.de
Mit freundlicher Unterstütztung von php::bar (http://phpbar.de)
|