Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Takie same podpisy dla wszystkich obrazków
Forum PHP.pl > Forum > PHP
Strarus
cześć:)
Mam problem z podpisami branymi z bazy. Są one pobierane takim kodem:
  1. <?php
  2. $ile = count(glob("grafiki/*.gif"));
  3. for($link = 1; $link <= $ile; $link++) {
  4.  if($link % 2) {
  5.    echo '<br/>';
  6.  }
  7.  $baza = @mysql_connect('**********', '*******', '***********'); //Dane do połączenia z MySQL
  8.  if (!$baza) {
  9.    exit('<p>W tej chwili nie można nawiazać ' .
  10.        'połaczenia z serwerem bazy danych.</p>' );
  11.  }
  12.  if (!@mysql_select_db('*********')) {
  13.    exit('<p>Nie można w tej chwili ' .
  14.        'zlokalizować bazy danych.</p>');
  15.  }
  16. $query = "SELECT * FROM podpisy WHERE id='$link';";
  17. $result = mysql_query($query);
  18.  
  19. if (!$result) {
  20.  
  21.   exit(' Bład podczas wykonywania zapytania: ' . mysql_error() . '');
  22. }
  23. while ($row = mysql_fetch_array($result)) {
  24.  
  25.   $content = $row['content'];
  26. }
  27. if( empty($content) ) {
  28.     $podpis = 'Brak podpisu';
  29.   }
  30.   else {
  31.     $podpis = $content;
  32.   }
  33. echo '<div id="img"><a class="navi" href="index.php?site=gallery&imageid=' . $link . '"><img src="grafiki/' . $link . '.gif" width="50px" height="40px" /><br/>' . $podpis . '</a></div>';
  34. }
  35. ?>


Niestety gdy otwieram stronę, to pokazują się obrazki i podpisy ale każdy obrazek ma taki sam podpis, chyba, że w bazie już jest jego ID... Wygląda to tak:


Danymi kolorami podkreśliłem podpisy o tym samym ID.
Proszę o pomoc
outsider
Kod
while ($row = mysql_fetch_array($result)) {

  $content = $row['content'];

if( empty($content) ) {
    $podpis = 'Brak podpisu';
  }
  else {
    $podpis = $content;
  }
echo '<div id="img"><a class="navi" href="index.php?site=gallery&imageid=' . $link . '"><img src="grafiki/' . $link . '.gif" width="50px" height="40px" /><br/>' . $podpis . '</a></div>';
}

}

Sprobuj tak, petla while obejmowala tylko $content, teraz powinno dzialac smile.gif
Strarus
Niestety.. Teraz nic się nie pojawia... kod:
  1. <?php
  2. $ile = count(glob("grafiki/*.gif"));
  3.    
  4.    
  5.    for($link = 1; $link <= $ile; $link++) {
  6.  if($link % 2) {
  7.    echo '<br/>';
  8.  }
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  $baza = @mysql_connect('********', '******', '*********'); //Dane do połączenia z MySQL
  15.  if (!$baza) {
  16.    exit('<p>W tej chwili nie można nawiazać ' .
  17.        'połaczenia z serwerem bazy danych.</p>' );
  18.  }
  19.  if (!@mysql_select_db('*********')) {
  20.    exit('<p>Nie można w tej chwili ' .
  21.        'zlokalizować bazy danych.</p>');
  22.  }
  23. $query = "SELECT * FROM podpisy WHERE id='$link';";
  24. $result = mysql_query($query);
  25.  
  26. if (!$result) {
  27.  
  28.   exit(' Bład podczas wykonywania zapytania: ' . mysql_error() . '');
  29. }
  30. while ($row = mysql_fetch_array($result)) {
  31.  
  32.  $content = $row['content'];
  33.  
  34. if( empty($content) ) {
  35.    $podpis = 'Brak podpisu';
  36.  }
  37.  else {
  38.    $podpis = $content;
  39.  }
  40. echo '<div id="img"><a class="navi" href="index.php?site=gallery&imageid=' . $link . '"><img src="grafiki/' . $link . '.gif" width="50px" height="40px" /><br/>' . $podpis . '</a></div>';
  41. }
  42.  
  43. }
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50. }
  51. ?>
outsider
Nie zauwazyle jednej rzeczy, to powinno zadzialac:



Kod
$ile = count(glob("grafiki/*.gif"));
$content = array();
$ile2 = 1;
for($link = 1; $link <= $ile; $link++) {
 if($link % 2) {
   echo '<br/>';
 } 
 $baza = @mysql_connect('**********', '*******', '***********'); //Dane do połączenia z MySQL
 if (!$baza) {
   exit('<p>W tej chwili nie można nawiazać ' .
       'połaczenia z serwerem bazy danych.</p>' );
 }
 if (!@mysql_select_db('*********')) {
   exit('<p>Nie można w tej chwili ' .
       'zlokalizować bazy danych.</p>');
 }
$query = "SELECT * FROM podpisy WHERE id='$link';";
$result = mysql_query($query);

if (!$result) {

  exit(' Bład podczas wykonywania zapytania: ' . mysql_error() . '');
}
while ($row = mysql_fetch_array($result)) {

  $content[$ile2] = $row['content'];
 $ile2++;
}

if( empty($content) ) {
    $podpis = 'Brak podpisu';
  }
  else {
    $podpis = $content[$link];
  }
echo '<div id="img"><a class="navi" href="index.php?site=gallery&imageid=' . $link . '"><img src="grafiki/' . $link . '.gif" width="50px" height="40px" /><br/>' . $podpis . '</a></div>';

}


EDIT:
Poprawilem
Strarus
Nie wyświetla się napis "brak podpisu" sad.gif
outsider
Kod
if( empty($content[$link]) ) {

smile.gif
Strarus
Dobra już mam: było:

if(empty($content) ) {

a powinno być:

if(empty($content[$link]) ) {

smile.gif dzięki, stawiam pomógł smile.gif

hehe haha.gif
outsider
spoko winksmiley.jpg
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.