Witam mam pytanie odnośnie konstrukcji zapytania mysql. Mianowicie mam pole z wprowadzeniem symbolu urządzenia.
  1. Symbol:
  2. <input type="text" id="sym"/>
  3. <input type="button" onclick="symbol()" value="Szukaj"/>

Dalszy fragment w javascript
  1. function symbol() {
  2. var sym = document.getElementById('sym').value;
  3.  
  4. var searchUrl = 'phpsqlsearch_genxml.php?sym=' + sym;
  5. GDownloadUrl(searchUrl, function(data) {
  6. var xml = GXml.parse(data);
  7. var markers = xml.documentElement.getElementsByTagName('marker');
  8.  
  9.  
  10.  
  11. if (markers.length == 0) {
  12. alert('Nie znaleziono rekordu ');
  13. map.setCenter(new GLatLng(53.748711, 18.938281), 5);
  14. return;
  15. }
  16. Clear();
  17.  
  18. var bounds = new GLatLngBounds();
  19. for (var i = 0; i < markers.length; i++) {
  20. var name = markers[i].getAttribute('name');
  21. var address = markers[i].getAttribute('address');
  22. var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
  23. parseFloat(markers[i].getAttribute('lng')));
  24. var category = markers[i].getAttribute("category");
  25. var html = "<b>"+name+"<\/b><p>"+address;
  26.  
  27. var marker = createMarker(point, name, html, category);
  28. map.addOverlay(marker);
  29.  
  30. bounds.extend(point);
  31. }
  32. map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
  33. makeSidebar();
  34. });
  35. }

i oczywiście plik
phpsqlsearch_genxml.php
  1. <?php
  2. $dom = new DOMDocument("1.0");
  3. $node = $dom->createElement("markers");
  4. $parnode = $dom->appendChild($node);
  5.  
  6. if(isset($_GET["sym"])){
  7. $sym = htmlspecialchars(stripslashes(strip_tags(trim($_GET["sym"]))), ENT_QUOTES);
  8.  
  9. include ("database.php");
  10. $query = sprintf("SELECT * FROM markers WHERE symbol LIKE '%$sym%' ORDER BY `symbol` DESC",
  11. mysql_query('SET character_set_connection=utf8');
  12. mysql_query('SET character_set_client=utf8');
  13. mysql_query('SET character_set_results=utf8');
  14. $result = mysql_query($query);
  15.  
  16. $result = mysql_query($query);
  17. if (!$result) {
  18. die("Invalid query: " . mysql_error());
  19. }
  20.  
  21. header("Content-Type: text/xml");
  22.  
  23. while ($row = @mysql_fetch_assoc($result)){
  24. $node = $dom->createElement("marker");
  25. $newnode = $parnode->appendChild($node);
  26. $newnode->setAttribute("symbol", $row['symbol']);
  27. $newnode->setAttribute("name", $row['name']);
  28. $newnode->setAttribute("address", $row['address']);
  29. $newnode->setAttribute("lat", $row['lat']);
  30. $newnode->setAttribute("lng", $row['lng']);
  31. $newnode->setAttribute("category", $row['cit']);
  32. }
  33.  
  34.  
  35.  
  36. echo $dom->saveXML();
  37. }
  38. ?>

Niestety na mapie nie wyświetlają się rekordy o danym wyborze. Podejrzewam że błąd leży w konstrukcji $query. Pls o poradę

Już rozwiązałem problem. Poniżej rozwiązanie
  1. <?php
  2. $dom = new DOMDocument("1.0");
  3. $node = $dom->createElement("markers");
  4. $parnode = $dom->appendChild($node);
  5. if(isset($_GET["sym"])){
  6. $sym = htmlspecialchars(stripslashes(strip_tags(trim($_GET['sym']))), ENT_QUOTES);
  7.  
  8. include ("database.php");
  9. $query = "SELECT * FROM markers WHERE symbol LIKE '%$sym%'";
  10. $result = mysql_query($query);
  11.  
  12. $result = mysql_query($query);
  13. if (!$result) {
  14. die("Invalid query: " . mysql_error());
  15. }
  16.  
  17. header("Content-Type: text/xml");
  18.  
  19. while ($row = @mysql_fetch_assoc($result)){
  20. $node = $dom->createElement("marker");
  21. $newnode = $parnode->appendChild($node);
  22. $newnode->setAttribute("symbol", $row['symbol']);
  23. $newnode->setAttribute("name", $row['name']);
  24. $newnode->setAttribute("address", $row['address']);
  25. $newnode->setAttribute("lat", $row['lat']);
  26. $newnode->setAttribute("lng", $row['lng']);
  27. $newnode->setAttribute("category", $row['cit']);
  28. }
  29.  
  30.  
  31.  
  32. echo $dom->saveXML();
  33. }