Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Generowanie xml dla skryptu galerii
pomier
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 15.11.2010

Ostrzeżenie: (10%)
X----


Witam wszystkich, chyba nie muszę pisać że jestem początkującym w programowaniu (IMG:style_emoticons/default/smile.gif) Jestem grafikiem i buduje sobie strone w XML wszystko działa ale postanowiłem przerobić ją na php i mysql by można było łatwo nią zarządzać. CO nieco sobie zrobiłem co prostsze czyli newsy i działa fajnie. Teraz ma inny problem i proszę o pomoc czy naprowadzenie co i jak.
Mam dwie tabele w bazie

galerie
| g_id | g_nazwa |
1 Wizualizacje_3D
2 Modele_3D
3 Projektowanie_3D

pod_galerie
| pg_id | pg_tytul | pg_tresc | g_id | thumb | big |

i teraz jak to wyświetlić łącząc? mam taki kod
  1. <?php
  2. $host = "localhost";
  3. $user = "artddxml3";
  4. $pass = "pomier123";
  5. $database = "artddxml3";
  6.  
  7. $linkID = mysql_connect($host,$user,$pass) or die("Nie mozna polaczyc z serwerem baz danych.");
  8. mysql_select_db($database, $linkID) or die("Nie mozna znalesc bazy danych.");
  9. //odczyt//
  10. $query="SELECT galerie.g_nazwa, pod_galerie.pg_tytul, pod_galerie.pg_tresc, thumb, big FROM galerie, pod_galerie WHERE galerie.g_id=pod_galerie.g_id AND galerie.g_id = $id";
  11. $result=mysql_query($query);
  12.  
  13.  
  14. echo $return1 = '<content Name="GALERIA">';
  15. echo $return2 = '<gallery Name="TU MA BYĆ TYTUŁ Z TABELI GALERIE">';
  16.  
  17. while($row = mysql_fetch_array($result)){
  18.  
  19. $return.='<image Thumb="'.$row['thumb'].'"' . 'Large="'.$row['big'].'"' . 'Caption="'.$row['pg_tytul'].'">
  20. <copy><![CDATA['.$row['pg_tresc'].']]></copy>
  21. </image>';
  22. }
  23. $return.='</gallery>';
  24. $return.='</content>';
  25. echo $return;
  26. //koniec
  27. ?>


Ten post edytował pomier 22.01.2011, 11:13:04
Powód edycji: [wookieb]: Zmiana tematu.
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Proszę nadać tematowi tytuł opisujący problem.
Go to the top of the page
+Quote Post
ciekawskiii
post
Post #3





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


Czyzby dane do bazy prawdziwe?
Go to the top of the page
+Quote Post
pomier
post
Post #4





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 15.11.2010

Ostrzeżenie: (10%)
X----


tak dane do bazy są prawdziwe ale wszystko testuje sobie lokalnie na swoim serwerku.
Go to the top of the page
+Quote Post
Kildyt
post
Post #5





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


W PHP komentarz jednoliniowy to dwa backslashe.
Napisz dokładnie co nie działa? Jakie są ew. błędy.
Jak ma wyświetlić dla przykładu pole thumb skoro go nie pobrałeś?
Go to the top of the page
+Quote Post
pomier
post
Post #6





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 15.11.2010

Ostrzeżenie: (10%)
X----


poprawiłem kod i dodalem thumb i bic a bledow to raczej nie ma tzn nie wyskakuja poprostu jak odpalam sobie plik php z tym kodem i patrze w tresc kodu to widzę tylko <content Name="GALERIA"><gallery Name="TU MA BYC TYTUL Z TABELI GALERIE"></gallery></content> nie wyciąga zawartości z tabel a raczej nie umieszcza ich w odpowiednich miejscach.

tego trochę nie rozumiem.
AND galerie.g_id = $id"
do czego to = $id

Ten post edytował pomier 22.01.2011, 11:23:54
Go to the top of the page
+Quote Post
Kildyt
post
Post #7





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


Słuchaj, skoro pętla się nie wykonuje to widocznie polecenie do bazy jest złe.
W ciemno nic ci nie zrobimy. Masz print_r, var_dump, wklej do phpmyadmin to samo polecenie i sprawdź czy zwracane dane są dobre.

Edit.:
Forum to nie czat. (IMG:style_emoticons/default/smile.gif) To twój skrypt i najpierw go zrozum, a potem pisz na forum o ewentualnym problemie.

Ten post edytował Kildyt 22.01.2011, 11:25:31
Go to the top of the page
+Quote Post
pomier
post
Post #8





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 15.11.2010

Ostrzeżenie: (10%)
X----


No ok. Zrobiłem tak i dział
  1. <?php
  2. $host = "localhost";
  3. $user = "artddxml3";
  4. $pass = "pomier123";
  5. $database = "artddxml3";
  6.  
  7. $linkID = mysql_connect($host,$user,$pass) or die("Nie mozna polaczyc z serwerem baz danych.");
  8. mysql_select_db($database, $linkID) or die("Nie mozna znalesc bazy danych.");
  9. //odczyt//
  10. $query="SELECT galerie.g_nazwa, pod_galerie.pg_tytul, pod_galerie.pg_tresc, thumb, big FROM galerie, pod_galerie WHERE galerie.g_id=pod_galerie.g_id";
  11. $result=mysql_query($query);
  12.  
  13.  
  14. echo $return1 = '<content Name="GALERIA">';
  15. echo $return2 = '<gallery Name="'.$row['g_nazwa'].'">';
  16.  
  17. while($row = mysql_fetch_array($result)){
  18.  
  19. $return.='<image Thumb="'.$row['thumb'].'"' . 'Large="'.$row['big'].'"' . 'Caption="'.$row['pg_tytul'].'">
  20. <copy><![CDATA['.$row['pg_tresc'].']]></copy>
  21. </image>';
  22. }
  23. $return.='</gallery>';
  24. $return.='</content>';
  25. echo $return;
  26. //koniec
  27. ?>


usunołem to AND i działa ale teraz chcę mieć w tym echo $return2 = '<gallery Name="'.$row['g_nazwa'].'">'; nazwe galerii z pierwszej tabeli i to nie działa.

Rozumiem swój kod ale może jeszcze nie wszystko mam na myśli to AND

phpmyaqdmi wyswietlil wszystko ok połączył tabele i fajnie wszystko ale co z tym kodem w php ?

Ten post edytował pomier 22.01.2011, 11:36:04
Go to the top of the page
+Quote Post
Kildyt
post
Post #9





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


Słuchaj, najpierw przeczytaj kurs, a potem zawracaj gitarę na forum.
Jak ma się wyświetlić skoro go nie pobrałeś? Dopiero mysql_fetch_array zwraca konkretne wyniki z wykonanego zapytania do bazy.
I tak w ogóle to włącz pełne raportowanie (error_reporting) i sam staraj się dojść co jest nie tak (ułatwią ci to funkcje, które podałem wcześniej).

Ten post edytował Kildyt 22.01.2011, 11:42:53
Go to the top of the page
+Quote Post
pomier
post
Post #10





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 15.11.2010

Ostrzeżenie: (10%)
X----


Zrobiłem tak i wyświetla wszystko
  1. <?php
  2. $host = "localhost";
  3. $user = "artddxml3";
  4. $pass = "pomier123";
  5. $database = "artddxml3";
  6.  
  7. $linkID = mysql_connect($host,$user,$pass) or die("Nie mozna polaczyc z serwerem baz danych.");
  8. mysql_select_db($database, $linkID) or die("Nie mozna znalesc bazy danych.");
  9. //odczyt//
  10. $query="SELECT galerie.g_nazwa, pod_galerie.pg_tytul, pod_galerie.pg_tresc, thumb, big FROM galerie, pod_galerie WHERE galerie.g_id=pod_galerie.g_id";
  11. $result=mysql_query($query);
  12.  
  13.  
  14. echo $return1 = '<content Name="GALERIA">';
  15.  
  16.  
  17. while($row = mysql_fetch_array($result)){
  18. $return.= '<gallery Name="'.$row['g_nazwa'].'">';
  19. $return.='<image Thumb="'.$row['thumb'].'"' . 'Large="'.$row['big'].'"' . 'Caption="'.$row['pg_tytul'].'">
  20. <copy><![CDATA['.$row['pg_tresc'].']]></copy>
  21. </image>';
  22. $return.='</gallery>';
  23. }
  24.  
  25. $return.='</content>';
  26. echo $return;
  27. //koniec
  28. ?>


tylko teraz robi mi dla kazdego jednego obrazka nowa galerie jako zakladke np: mam w galeri "wizualizacje_3d" dwa obrazki a wyswietla mi sie jako dwie galerie "wizualizacje_3d w kazdym po jednym obrazku cos nie tak prawda?
Go to the top of the page
+Quote Post
ciekawskiii
post
Post #11





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


To fajnie ze uzywasz swojego serwa ale mysle ze warto miec w sobie nawyk usuwania danych, kiedys mozesz pracowac na normalnym serwie i z przyzwyczajenia podasz dane, zanim sie zorientujesz to jakis dowcipnis to wykorzysta a po drugie dane do bazy lepiej trzymac w oddzielnym pliku, pozdrawiam
Go to the top of the page
+Quote Post
pomier
post
Post #12





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 15.11.2010

Ostrzeżenie: (10%)
X----


Witam, znajomy mi pomógł i zaczeło działać ale mam taki dziwny błąd
  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/pomier1/public_html/xml/imagegallery/content.php on line 16


a to jest kod php może ktoś luknąć?
  1. <?php
  2.  
  3. $linkID = mysql_connect($host, $user, $pass) or die("Nie mozna polaczyc z serwerem baz danych.");
  4. mysql_select_db($database, $linkID) or die("Nie mozna znalesc bazy danych.");
  5. //odczyt//
  6. $query = "SELECT galerie.g_nazwa, pod_galerie.pg_tytul, pod_galerie.pg_tresc, thumb, big FROM galerie, pod_galerie WHERE galerie.g_id=pod_galerie.g_id";
  7. $result = mysql_query($query);
  8. echo $return1='<content Name="GALERIA">';
  9. $tmp = "";
  10. $tmp2 = "";
  11. $counter = 0;
  12. while ($row = mysql_fetch_array($result)) {
  13. if ($tmp2 != $row['g_nazwa']) {
  14. if ($counter != 0) {
  15. $return.='</gallery>';
  16.  
  17. }
  18. $tmp2 = $row['g_nazwa'];
  19. }
  20.  
  21. if ($tmp != $row['g_nazwa']) {
  22. $return.='<gallery Name="' . $row['g_nazwa'] . '">';
  23. $tmp = $row['g_nazwa'];
  24. }
  25.  
  26. $return.='<image Thumb="' . $row['thumb'] . '"' . 'Large="' . $row['big'] . '"' . 'Caption="' . $row['pg_tytul'] . '">
  27. <copy><![CDATA[' . $row['pg_tresc'] . ']]></copy>
  28. </image>';
  29. $counter++;
  30. if ($counter== mysql_num_rows($result)) {
  31. $result.="</gallery>";
  32. }
  33.  
  34. }
  35. $return.='</content>';
  36. echo $return;
  37. //koniec
  38. ?>


Ten post edytował pomier 22.01.2011, 22:33:42
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: 29.09.2025 - 02:52