Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] wstawienie zmiennej w object
Forum PHP.pl > Forum > Przedszkole
Rico_ds
Witam,
mam baze danych
w niej baner_id, file_url, href, categori_id
i napisalem jak narazie taki kod:
  1. <?php 
  2. $connect = mysql_connect("localhost", "root", "vertrigo") or
  3. die ("Sprawdź połączenie z bazą danych.");
  4.  mysql_select_db ("020london");
  5.  mysql_query ('SET NAMES latin2');
  6.  $w = mysql_query("SELECT * FROM banners ORDER BY RAND() LIMIT 0, 1");
  7.  
  8. echo ("<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="630" height="223" title="">
  9. <param name="movie" value=".$ad['file_url']." />
  10. <param name="quality" value="high" />
  11. <embed src=".$ad['file_url']." quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="630" height="223"></embed>
  12. </object>");
  13. ?>

dosteje cos takiego "Parse error: syntax error, unexpected T_STRING in C:\Program Files\VertrigoServ\www20london\banner.php on line 8".
Nie wiem czy dobrze wstawilem zmienna w to i czy mozna tak zrobic?Prosze o pomoc
drPayton
Cudzysłowy należące do "kodu" html poprzedź backslashem (czyli \" zamiast "), bo echo głupieje...

czyli
  1. <?php
  2. echo ("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" width=\"630\" height=\"223\" title=\"\">
  3. <param name=\"movie\" value=\"".$ad['file_url']."\" />
  4. <param name=\"quality\" value=\"high\" />
  5. <embed src=\"".$ad['file_url']."\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"630\" height=\"223\"></embed>
  6. </object>");
  7. ?>
Rico_ds
nie wiem dlaczego ale nie wyswietla mi reklam. W bazie danych mam taki wpis ad/nazwa.swf. Nie wyswietla mi tez zadnego bledu. No i w caly kod mam na czerwono w dreamvawerze, jedynie echo i nawiasy sa niebieskie.
drPayton
Skoro cały jest na czerwono to znaczy, że cały jest traktowany jako czysty tekst. Zrobiłeś dokładnie to co napisałem? Czy może przypadkiem dodałeś też backslashe przed cudzysłowami "wstawiającymi" zmienne, np:
Kod
<?php
(...)value= \"\".$ad['file_url'].\"\"(...)
?>

?
Pokaż kod który teraz masz...

ps. Wstawiłem jako zwykły kod, bo mnie szlag trafił jak próbowałem w znacznikach [ php ] (zamienia pierwszy cudzysłów na encję)
Rico_ds
  1. <?php
  2. mysql_query ('SET NAMES latin2');
  3.  $w = mysql_query("SELECT * FROM banners ORDER BY RAND() LIMIT 0, 1");
  4.  
  5. echo ("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" width=\"630\" height=\"223\" title=\"\">
  6. <param name=\"movie\" value=\"".$ad['file_url']."\" />
  7. <param name=\"quality\" value=\"high\" />
  8. <embed src=\"".$ad['file_url']."\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"630\" height=\"223\"></embed>
  9. </object>");
  10. ?>
czyli dokladnie taki jaki mi podales
drPayton
No ok, a co to za zmienne:
$ad['file_url']
Skąd je bierzesz? Bo z bazy pobierasz jako zmienną $w i żadnego mysql_fetch_array też nie widzę...
  1. <?php
  2. mysql_query ('SET NAMES latin2');
  3.  $w = mysql_query("SELECT * FROM banners ORDER BY RAND() LIMIT 0, 1");
  4.  $ad = mysql_fetch_array($w);
  5.  
  6. echo ("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"  codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" width=\"630\" height=\"223\" title=\"\">
  7. <param name=\"movie\" value=\"".$ad[0]['file_url']."\" />
  8. <param name=\"quality\" value=\"high\" />
  9. <embed src=\"".$ad[0]['file_url']."\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"630\" height=\"223\"></embed>
  10. </object>");
  11.  
  12. ?>
Rico_ds
to sa pola w bazie ktore okreslaja skad ma pobrac film do otwarzania. To czy powinniem tam dac np. $file_url = $ad["file_url"]; po while($row=mysqli_fetch_assoc($result))?
drPayton
tak. Albo tak jak napisałem. Po co Ci while, jak pobierasz zawsze tylko jeden rekord?
Ale i jeden i drugi sposób zadziała.
Rico_ds
ok, wstawilem tak jak napisales, ale dalej nie wysywietla mi flasha. po nacisnieciu prawego przycisku myszy pojawilo sie "Movie not loaded" to czy problem moze wynikac ze sciezki do pliku? mam dwa pliki do jednego podalem sciezke ad/nazwa.swf a do drugiego .../ad/nazwa.swf. Drugim sposobem z while tez nie wczytuje filmow. Gdy sa wstawiane normalnie nie przez rotator to normalnie sie wyswietlaja.
drPayton
Zerknij w źródło strony i zobacz czy ścieżki wstawione są prawidłowo.
Rico_ds
wstawilem takie same sciezki i sprawdzilem na obu kompach i nie dziala dalej
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.