ugrás a tartalomhoz

Egyedi azonosító - hogyan?

gabeekex · 2009. Aug. 11. (K), 10.24
Sziasztok. Nemrég írtam ide, de egy újabb problémába botlottam, remélem ebben is tudtok segíteni.

Amiről szó van, az lényegében egy youtube videó gyűjtő script. Három php fájlból áll a történet. Az első segítségével felviszek egy youtube azonosítót egy adatbázisba (pl.: http://www.youtube.com/watch?v=tFPh6XH0EEw - a vastaggal jelölt részt) és a továbbiakban ezzel operálok. A második fájl (listazo.php) kilistázza az azonosító alapján a videóhoz tartozó kis képeket és ezekre tesz egy linket amely tovább mutat a harmadik fájlra (video.php). A harmadik fájl célja az lenne, hogy azt a videót játsza le, amire rákattintottam és itt ütötte fel a fejét a probléma. Mivel az adatbázisból olvas ez a fájl is, az azonosítók alapján ugyanúgy az összes videót kirakja mint a listázó, pedig itt csak azt kellene kiraknia amelyikre a listázóban rákattoltam.

Hogyan lehetne ezt megoldani? Esetleg egy plusz változóval mindegyik videónak egyedi azonosítót adjak? Bízom a segítségetekben. Előre is köszönöm.

listazo.php (adatbázishoz való csatlakozás utáni kód)

$lekeres = mysql_query( "SELECT * FROM videok");
while ($egysor = mysql_fetch_array( $lekeres ))
{
$tube=$egysor["tube"];
print ("<a href=video.php><img src=http://i1.ytimg.com/vi/".$tube."/default.jpg>");
}
mysql_close( $kapcsolat );
?>


video.php (adatbázishoz való csatlakozás utáni kód)


$lekeres = mysql_query( "SELECT * FROM videok");
while ($egysor = mysql_fetch_array( $lekeres ))

{


$tube=$egysor["tube"];




print ("

<object width=425 height=344><param name=movie value=http://www.youtube.com/v/".$tube."&hl=en&fs=1&></param><param name=allowFullScreen value=true></param><param name=allowscriptaccess value=always></param><embed src=http://www.youtube.com/v/".$tube."&hl=en&fs=1& type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=425 height=344></embed></object>



");

}
mysql_close( $kapcsolat );

?>
 
1

Felejtsd el while függvényt,

Tanul0 · 2009. Aug. 11. (K), 11.16
Felejtsd el while függvényt a video.phpban, készíts inkább egy
  1. function tube($id) {  
  2.     $lek=mysql_fetch_array(mysql_query("SELECT * FROM videok WHERE id='$id'"));  
  3.     return $lek['tube'];  
  4. }  
akkor a video.php-be
amit úgy linkelsz be, hogy video.php?id=$id
és a listaz.php-ban lekérdezed még az idket is
  1. $id=$_GET['id'];  
  2. print ("<object width=425 height=344><param name=movie value=http://www.youtube.com/v/".tube($id)."&hl=en&fs=1&></param><param name=allowFullScreen value=true></param><param name=allowscriptaccess value=always></param><embed src=http://www.youtube.com/v/".tube($id)."&hl=en&fs=1& type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=425 height=344></embed></object>");  
2

Ez nagyon jó megoldás!

gabeekex · 2009. Aug. 11. (K), 11.43
Ez nagyon jó megoldás!

Köszönöm szépen a segítséget :)
3

Biztonság

Sasha · 2009. Aug. 11. (K), 12.52
Én még kibőviteném egy kicsit a dolgot.
  1. function tube($id) {    
  2.     $lek=mysql_fetch_array(mysql_query("SELECT * FROM videok WHERE id='$id'"));    
  3.     return $lek['tube'];    
  4. }  
  5.   
  6.   
  7. if(isset($_GET['id']) && mysql_num_rows(mysql_query("SELECT * FROM videok WHERE id='".mysql_real_escape_string($_GET['id'])."'")) == 1)  
  8. {  
  9.   
  10.  $id=mysql_real_escape_string($_GET['id']);    
  11. print ("<object width=425 height=344><param name=movie value=http://www.youtube.com/v/".tube($id)."&hl=en&fs=1&></param><param name=allowFullScreen value=true></param><param name=allowscriptaccess value=always></param><embed src=http://www.youtube.com/v/".tube($id)."&hl=en&fs=1& type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=425 height=344></embed></object>");  
  12.   
  13. }else{  
  14.   
  15. print "Csá csumi küldjél érvényes azonosítót";  
  16.   
  17. }