Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Generowanie xml dla skryptu galerii
Forum PHP.pl > Forum > Przedszkole
pomier
Witam wszystkich, chyba nie muszę pisać że jestem początkującym w programowaniu 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. ?>
wookieb
Proszę nadać tematowi tytuł opisujący problem.
ciekawskiii
Czyzby dane do bazy prawdziwe?
pomier
tak dane do bazy są prawdziwe ale wszystko testuje sobie lokalnie na swoim serwerku.
Kildyt
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ś?
pomier
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
Kildyt
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. smile.gif To twój skrypt i najpierw go zrozum, a potem pisz na forum o ewentualnym problemie.
pomier
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 ?
Kildyt
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).
pomier
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?
ciekawskiii
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
pomier
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. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.