Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] sitemapa z MySQL
malin90
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 5.01.2009

Ostrzeżenie: (0%)
-----


Witam
Chciałbym stworzyć "samo generującą" się mapę witryny dla google przez pobieranie i odpowiednie wyświetlanie wyników z bazy danych.
Z tabeli "oferty" chciałbym zaimportować dane z kolumn: "id", "nazwa_obiektu"
pod warunkiem, że kolumna o nazwie "aktywna" ma w wierszu wartość "1" tzn. że tam gdzie
jej wartość wynosi "0" dane z kolumn "id" i "nazwa_obiektu" nie są pobierane.

Zaimportowane dane powinny wyświetlać się w postaci:
Kod
</span>www.nazwa-domeny.com/"id"/"nazwa_obiektu"/<span class="postbody">


jeden pod drugim

Robię to metodą "prób i błędów" z dużym naciskiem na "błędów" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Nie za bardzo znam się na PHP i MySQL, bazuję na tym co znajdę w internecie próbując dostosować to pod siebie.

Moje ostatnie próby:
  1. <?php
  2.  
  3. if(!$sql = @mysql_connect("host","login","hasło"))
  4.    die("Błąd połączenia do bazy danych MySQL.");
  5. mysql_query("SET CHARSET latin2;");
  6.  
  7.  
  8. echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
  9.  
  10. echo "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
  11.  
  12. $zapytanie = "SELECT id, nazwa_obiektu FROM oferty WHERE aktywana = 1";
  13.  
  14. echo "<url><loc>http://www.www.moja-domena.com/".$zapytanie['id']."/".$zapytanie['nazwa_obiektu'].".html</loc>\n";
  15. echo "<priority>0.5</priority>\n";
  16. echo "</url>" ;
  17. echo "</urlset>" ;
  18.  
  19. ?>


Zamiast wyników wyświetla mi się jakieś:
Kod
</span>http://www.www.moja-domena.com/S/S.html 0.5


Jakieś " S-ki " co mam zmienić aby dane się wyświetlały ?

Proszę nie odsyłajcie mnie do manuala bo nic z niego nie rozumiem.
Pozdrawiam serdecznie
Go to the top of the page
+Quote Post
mcgsoft
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 30.12.2007
Skąd: Somewhere in Poland

Ostrzeżenie: (0%)
-----


Coś takiego być powinno

  1. <?php
  2.  
  3. if(!$sql = @mysql_connect("host","login","hasło"))
  4.   die("Błąd połączenia do bazy danych MySQL.");
  5. mysql_query("SET CHARSET latin2;");
  6.  
  7.  
  8. echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
  9.  
  10. echo "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
  11.  
  12. $zapytanie = mysql_query("SELECT id, nazwa_obiektu FROM oferty WHERE aktywana = 1", $sql);
  13. while($row=mysql_fetch_array($zapytanie)){
  14.  
  15.  
  16.  
  17. echo "<url><loc>http://www.www.moja-domena.com/".$row['id']."/".$row['nazwa_obiektu'].".html</loc>\n";
  18. echo "<priority>0.5</priority>\n";
  19. echo "</url>" ;
  20. echo "</urlset>";
  21. };
  22.  
  23. ?>


Ten post edytował mcgsoft 9.04.2009, 12:50:46
Go to the top of the page
+Quote Post
malin90
post
Post #3





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 5.01.2009

Ostrzeżenie: (0%)
-----


Niestety pokazuje błąd:
Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL  result resource in /home/bazanoc/ftp/mapa.php on line 14


to jest w 14 linijce:
  1. <?php
  2. while($row=mysql_fetch_array($zapytanie)){
  3. ?>


Ten post edytował malin90 9.04.2009, 12:58:53
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Znaczy, że zapytanie coś nie działa. Sprawdź, czy się wykonuje w konsolce MySQL/PMA.
Go to the top of the page
+Quote Post
mcgsoft
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 30.12.2007
Skąd: Somewhere in Poland

Ostrzeżenie: (0%)
-----


Musisz zapytanie poprawić bo mysql_fetch_array działa tylko na tablicach, ogólnie wynik tego zapytania "$zapytanie" nie zwraca tablicy.

Dopisz coś takiego :

  1. <?php
  2. if(!$zapytanie){mysql_error();};
  3. ?>


po linijce :

  1. <?php
  2. $zapytanie = mysql_query("SELECT id, nazwa_obiektu FROM oferty WHERE aktywana = 1", $sql);
  3. ?>


I napisz co ci skrypt wypisze.
Go to the top of the page
+Quote Post
malin90
post
Post #6





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 5.01.2009

Ostrzeżenie: (0%)
-----


Dopisałem to co napisałeś ale nadal występuje ten sam błąd:
  1. <?php
  2. Warning:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/bazanoc/ftp/mapa.php on line 15
  3. ?>


tym razem w 15 linijce czyli tam gdzie wcześniej

Otworzyłem też to przez Mozille i tam wyświetla się błąd:
Kod
Następujące tagi nie zostały zamknięte: urlset. Błąd podczas przetwarzania  zasobu


Jeszcze raz cały kod:
  1. <?php
  2.  
  3. if(!$sql = @mysql_connect("host","baza","hasło"))
  4.  die("Błąd połączenia do bazy danych MySQL.");
  5. mysql_query("SET CHARSET latin2;");
  6.  
  7.  
  8. echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
  9.  
  10. echo "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n";
  11.  
  12. $zapytanie = mysql_query("SELECT id, nazwa_obiektu FROM oferty WHERE aktywana = 1", $sql);
  13. if(!$zapytanie){mysql_error();};
  14. while($row=mysql_fetch_array($zapytanie)){
  15.  
  16.  
  17.  
  18. echo "<url><loc>http://www.www.moja-domena.com/".$row['id']."/".$row['nazwa_obiektu'].".html</loc>\n";
  19. echo "<priority>0.5</priority>\n";
  20. echo "</url>" ;
  21. echo "</urlset>";
  22. };
  23.  
  24. ?>


Ten post edytował malin90 9.04.2009, 13:27:18
Go to the top of the page
+Quote Post
mcgsoft
post
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 30.12.2007
Skąd: Somewhere in Poland

Ostrzeżenie: (0%)
-----


W zasadzie to powinno być w zapytaniu SELECT * FROM oferty WHERE itd...

  1. <?php
  2. $zapytanie = mysql_query("SELECT * FROM oferty WHERE aktywana = 1", $sql);
  3. ?>


Ten post edytował mcgsoft 9.04.2009, 14:05:48
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 21:14