Hallo zusammen,
bei meinem kleinen Projekt arbeite ich mit PHP und MySQL sowie JavaScript.
Ausgangssituation:
Es wird stets eine Karte mit Verbindungslinien zwischen Städten angezeigt. Diese Karte und Linien werden mit JavaScript erzeugt, wobei nur die Linien aus der MySQL-Datenbank importiert werden. Der Code für die Linien steht also in den Feldern der Datenbank.
Das funktioniert soweit ohne Probleme.
Problembeschreibung:
In dem Moment, wo eine neue Linie in die Datenbank eingetragen wird - das passiert im Quellcode VOR der Erzeugung der Karte, erzeugt die nach dem Insert durchgeführte Select-Abfrage der gleichen Datenbank nur einige unlesbare Zeichen und evtl. Anfangsbuchstaben.
Statt
wird nur
oder eben ein unlesbares Zeichen ausgegeben.
Kann man überhaupt direkt nach einem Insert ein Select durchführen? mysql_error gibt keine Fehlermeldung aus und sobald ich die Seite aktualisiere wird alles richtig angezeigt.
Wie löse ich das Problem? Ich bin für alle Vorschläge dankbar, da mir das Netz mit entsprechenden Suchanfragen nicht weiterhelfen konnte.
Die Insert-Anfrage:
Die anschließende Select-Abfrage:
Falls noch der restliche (viele) Code gebraucht wird, füge ich ihn gerne ein.
Vorab vielen Dank und viele Grüße!
(Veraltet) Edit:
Interessanterweise werden genauso viele einzelne "L" erzeugt, wie ausgegeben werden müssten. Es scheint also so, als würde tatsächlich nur der Anfangsbuchstabe ausgegeben. Zusätzlich erscheinen vor den "L" einige (nicht gleich viele) unlesbare Zeichen!
Edit 2:
Es hat sich bestätigt: Es wird immer nur der Anfangsbuchstabe nach dem Insert und dem anschließenden Select ausgegeben!
Problemlösung:
Doppelt vergebene Variablennamen waren das Problem.
In diesem Fall waren das:
Diese beiden Variablen waren demnach schon vergeben, was wohl zu dem Resultat eines auf den Anfangsbuchstaben verkürzten Outputs führte.
bei meinem kleinen Projekt arbeite ich mit PHP und MySQL sowie JavaScript.
Ausgangssituation:
Es wird stets eine Karte mit Verbindungslinien zwischen Städten angezeigt. Diese Karte und Linien werden mit JavaScript erzeugt, wobei nur die Linien aus der MySQL-Datenbank importiert werden. Der Code für die Linien steht also in den Feldern der Datenbank.
Das funktioniert soweit ohne Probleme.
Problembeschreibung:
In dem Moment, wo eine neue Linie in die Datenbank eingetragen wird - das passiert im Quellcode VOR der Erzeugung der Karte, erzeugt die nach dem Insert durchgeführte Select-Abfrage der gleichen Datenbank nur einige unlesbare Zeichen und evtl. Anfangsbuchstaben.
Statt
Code:
L.polygon([[51.504225397481, 7.48365411122495],[51.220507741497, 6.81216996826174]]).addTo(map).bindPopup("Verbindung zwischen Dortmund und Düsseldorf");
Code:
L
Kann man überhaupt direkt nach einem Insert ein Select durchführen? mysql_error gibt keine Fehlermeldung aus und sobald ich die Seite aktualisiere wird alles richtig angezeigt.
Wie löse ich das Problem? Ich bin für alle Vorschläge dankbar, da mir das Netz mit entsprechenden Suchanfragen nicht weiterhelfen konnte.
Die Insert-Anfrage:
PHP-Code:
$link_code = "L.polygon([[".$CC_lat_new.", ".$CC_lon_new."],[".$CC_lat_old.", ".$CC_lon_old."]]).addTo(map).bindPopup(\"Verbindung zwischen ".$CC_city_name[0]." und ".$CC_city_select."\");";
$marker_code = "L.marker([".$CC_lat_new.", ".$CC_lon_new."]).addTo(map).bindPopup(\"<p>Standort<br><b>".$CC_city_name[0]."</b></p>\");";
if($CC_lat_new!=$CC_lat_old){
$insert_new_city = mysql_query("INSERT INTO projectdata (username, project, location, loc_id, cityrank, link, link_code, marker_code) VALUES ('$username', '$CC_company_select', '$CC_city_name[0]', '$CC_select_new_city_loc_id', '0', '$CC_city_select', '$link_code', '$marker_code')") OR die("Error: $insert_new_city <br>".mysql_error());
}
PHP-Code:
<?php
$result_map_projection = MYSQL_QUERY("SELECT * FROM projectdata WHERE username='$username' AND project='$company_select'") OR die("Error: $result_map_projection <br>".mysql_error());
$i=0;
while ($map_projection = mysql_fetch_array($result_map_projection))
{
$link_code[$i] = $map_projection['link_code'];
echo $link_code[$i];
echo "\n";
$marker_code[$i] = $map_projection['marker_code'];
echo $marker_code[$i];
echo "\n";
$i++;
}
?>
Vorab vielen Dank und viele Grüße!
(Veraltet) Edit:
Interessanterweise werden genauso viele einzelne "L" erzeugt, wie ausgegeben werden müssten. Es scheint also so, als würde tatsächlich nur der Anfangsbuchstabe ausgegeben. Zusätzlich erscheinen vor den "L" einige (nicht gleich viele) unlesbare Zeichen!
Edit 2:
Es hat sich bestätigt: Es wird immer nur der Anfangsbuchstabe nach dem Insert und dem anschließenden Select ausgegeben!
Problemlösung:
Doppelt vergebene Variablennamen waren das Problem.
In diesem Fall waren das:
PHP-Code:
$link_code[$i]
$marker_code[$i]
Kommentar