/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
fjern video fra video liste
Fra : scootergrisen


Dato : 13-09-10 09:00

Jeg har en side som viser videoer fra blandt andet youtube.

Man kan så gå direkte til en video ved for eksempel at skrive :
http://scootergrisen.dk/scooterhjemmeside/videoer.php?1
http://scootergrisen.dk/scooterhjemmeside/videoer.php?2
http://scootergrisen.dk/scooterhjemmeside/videoer.php?3
osv

Men af og til bliver de her videoer jo slettet fra youtube også vil
jeg også gerne have dem slettet fra min liste.

Her er et eksempel :

$underholdningdatabase = array(
array('http://www.youtube.com/v/KHH7qm99Hbo' , '', 'karrusel'),
array('http://www.youtube.com/v/ccxuaxGc9Uk' , '', 'styrt'),
array('http://www.youtube.com/v/i8Pmx105_tk' , '', 'hej hus')
);

Lad os sige den midterste video i listen er blevet fjernet fra youtube
så vil jeg også gerne fjerne den fra min liste men altså uden at det
ændre på nummerne.
1 skal stadig være 1 og 3 skal stadig være 3.

Den midste video skal nu bare være tom og samtidig skal det virke når
jeg trykker frem og tilbage på pilene for at skifte mellem videoerne.

Hvis vi er ved video nummer 1 så skal den vide at video nummer 2 ikke
virker og der skal pilen til næste video altså pege på nummer 3.

Håber i forstår.

 
 
Birger Sørensen (15-09-2010)
Kommentar
Fra : Birger Sørensen


Dato : 15-09-10 16:32

scootergrisen skrev:
> Jeg har en side som viser videoer fra blandt andet youtube.
>
> Man kan så gå direkte til en video ved for eksempel at skrive :
> http://scootergrisen.dk/scooterhjemmeside/videoer.php?1
> http://scootergrisen.dk/scooterhjemmeside/videoer.php?2
> http://scootergrisen.dk/scooterhjemmeside/videoer.php?3
> osv
>
> Men af og til bliver de her videoer jo slettet fra youtube også vil
> jeg også gerne have dem slettet fra min liste.
>
> Her er et eksempel :
>
> $underholdningdatabase = array(
> array('http://www.youtube.com/v/KHH7qm99Hbo' , '', 'karrusel'),
> array('http://www.youtube.com/v/ccxuaxGc9Uk' , '', 'styrt'),
> array('http://www.youtube.com/v/i8Pmx105_tk' , '', 'hej hus')
> );
>
> Lad os sige den midterste video i listen er blevet fjernet fra youtube
> så vil jeg også gerne fjerne den fra min liste men altså uden at det
> ændre på nummerne.
> 1 skal stadig være 1 og 3 skal stadig være 3.
>
> Den midste video skal nu bare være tom og samtidig skal det virke når
> jeg trykker frem og tilbage på pilene for at skifte mellem videoerne.
>
> Hvis vi er ved video nummer 1 så skal den vide at video nummer 2 ikke
> virker og der skal pilen til næste video altså pege på nummer 3.
>
> Håber i forstår.

Hvordan får du den oprindelige liste?
Hvordan er sammenhængen mellem pilene og dit array?
Hvordan effektueres et klik på en pil til en visning?
Hvad er pointen med at opretholde nummereringen?

Erstat det døde link med noget du kan genkende i dit program - $ f.eks
- og brug det til helt enkelt at vælge det næste link.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Ronny Olsen (15-09-2010)
Kommentar
Fra : Ronny Olsen


Dato : 15-09-10 22:45

Den 13-09-2010 16:59, scootergrisen skrev:
> Jeg har en side som viser videoer fra blandt andet youtube.
>
> Man kan så gå direkte til en video ved for eksempel at skrive :
> http://scootergrisen.dk/scooterhjemmeside/videoer.php?1
> http://scootergrisen.dk/scooterhjemmeside/videoer.php?2
> http://scootergrisen.dk/scooterhjemmeside/videoer.php?3
> osv
>
> Men af og til bliver de her videoer jo slettet fra youtube også vil
> jeg også gerne have dem slettet fra min liste.
>
> Her er et eksempel :
>
> $underholdningdatabase = array(
> array('http://www.youtube.com/v/KHH7qm99Hbo' , '', 'karrusel'),
> array('http://www.youtube.com/v/ccxuaxGc9Uk' , '', 'styrt'),
> array('http://www.youtube.com/v/i8Pmx105_tk' , '', 'hej hus')
> );
>
> Lad os sige den midterste video i listen er blevet fjernet fra youtube
> så vil jeg også gerne fjerne den fra min liste men altså uden at det
> ændre på nummerne.
> 1 skal stadig være 1 og 3 skal stadig være 3.
>
> Den midste video skal nu bare være tom og samtidig skal det virke når
> jeg trykker frem og tilbage på pilene for at skifte mellem videoerne.
>
> Hvis vi er ved video nummer 1 så skal den vide at video nummer 2 ikke
> virker og der skal pilen til næste video altså pege på nummer 3.
>
> Håber i forstår.

som Birger skriver
>Hvordan får du den oprindelige liste?
>Hvordan er sammenhængen mellem pilene og dit array?

du har ikke i vidste code nogle relation mellem dit formodet id
1,2,3..147, og dit array
jeg har prøvet at ligge det ind i arrayet, og danne en idliste ud fra dette.

du er kan lave en idliste, og have et idindex

princippet er det overførte id feks 140, finder det i idlisten og den
posiotion tildeler du variablen idindex så vil next video bare værer
idlist[idindex+1] og forige video idlist[idindex-1]
der er så en lille opgave start / slut array hvor forige video skal
sættes til $idlist[$lng-1]
og hvor next video skal sættes til $idlist[0]

jeg ville nok ikke lave $underholdningdatabase, men trække det direkte
fra databasen



<?php
session_start();
// $server = "http://scootergrisen.dk/scooterhjemmeside/";
// $server = "http://localhost/test/video/";
   $server = "http://olsensweb.dk/test/ng/video/";

// bør være en tabel i database, hvilke det vel også er, baseret på
"underholdningdatabase"
   $underholdningdatabase = array(
      array('147', 'http://www.youtube.com/v/KHH7qm99Hbo' , '',
'karrusel'),
      //array('146', 'http://www.youtube.com/v/ccxuaxGc9Uk' , '', 'styrt'),
      //array('145', 'http://www.youtube.com/v/ccxuaxGc9Uk' , '', 'styrt'),
      array('144', 'http://www.youtube.com/v/ccxuaxGc9Uk' , '', 'styrt'),
      array('143', 'http://www.youtube.com/v/i8Pmx105_tk' , '', 'hej hus')
   );
   // idlisten laves selvføgelig med et sql kald, men kan også laves ud
fra underholdningdatabase
   $idlist = array();
   $lng = count($underholdningdatabase);
   for($i=0; $i<$lng; $i++){
      $idlist[] = $underholdningdatabase[$i][0];
   }
   if(isset($_SESSION['IDINDEX'])){
      $idindex = $_SESSION['IDINDEX'];
      $uri_array = parse_url($_SERVER['REQUEST_URI']);
      $sendid = $uri_array['query']; // den sendte id
      // find index i listen på¥ sendid, og sæt denne til idindex
      $idindex = array_search($sendid, $idlist);
   }
   else{
      $idindex = 0;
   }
   $_SESSION['IDINDEX'] = $idindex;
   // $lng = count($idlist); // det sammen som $underholdningdatabase
   $prev_video = (($idindex - 1) < 0)? $idlist[$lng-1] : $idlist[$idindex
- 1];
   $next_video = (($idindex + 1) >= $lng)? $idlist[0] : $idlist[$idindex +
1];
   // henter data på udvalgte film, bør være fra database
   $videodata = $underholdningdatabase[$idindex];
?>

jeg har lavet en eks baseret på din side, hvor jeg anvender
$underholdningdatabase, med tilføgelse af "id"

live demo findes her http://olsensweb.dk/test/ng/video/videoer.php ,
og source coden her http://olsensweb.dk/test/ng/video/video.zip

--
Med Venlig Hilsen
Ronny Olsen
http://olsensweb.dk

scootergrisen (18-09-2010)
Kommentar
Fra : scootergrisen


Dato : 18-09-10 15:49

Tak for jeres svar.
Nu har jeg siddet i 2 dage og arbejdet på det ud fra den kode Ronny
skrev og tak for eksemplet det må da også have taget noget tid.
Jeg tror jeg har fået det hele tiden til virke som jeg vil have det nu
selvom jeg ikke forstår hele koden.

Tænkte på også at lave det så man kan linke til en video med noget
tekst istedet for kun tal sådan at man har en ide om hvad videoen
handler om blot ved at læse linket.

For eksempel at..

videoer.php?madass_riviera_stunt_riders

....går til samme video som...

videoer.php?143


scootergrisen (18-09-2010)
Kommentar
Fra : scootergrisen


Dato : 18-09-10 19:12

Nu har jeg lavet så man også kan linke til en video med for eksempel :
videoer.php?karrusel
Men så kan jeg ikke have samme titel på flere videoer ligesom her:



$links = array(
array('116', 'http://www.youtube.com/v/iRasoZMirRc', '', 'karrusel'),
array('6', 'http://www.youtube.com/v/KHH7qm99Hbo', '', 'karrusel')
);



Er der nogen indbygget funktion i php så man kan teste om jeg bruger
samme titel mere end 1 gang i et multidimensionelt array ?
Jeg ved at med array_unique() kan man slette elementer som findes mere
end 1 gang.

Indtil videre bruger jeg denne kode.


$alletitler[] = array();

foreach($links as $link){

$alletitler[] = $link[3];

}

if(array_unique($alletitler) != $alletitler){

echo "Der er titler som er ens";

}

Ronny Olsen (19-09-2010)
Kommentar
Fra : Ronny Olsen


Dato : 19-09-10 19:51

Den 19-09-2010 03:11, scootergrisen skrev:

>Men så kan jeg ikke have samme titel på flere videoer
du kunne jo gører som du gør med "nye dæk 1" "nye dær 2",

jeg kan se du har taget højde for mellemrum i navn, men ikke for æøå

OK (4) hej hus      
Nej (9) Knap så god til at køre på baghjul
Nej (138) Björkenäs Mopedmuseum

hvad med store/små bogstaver, nogle kopierer teksten, andre skriver
den, men ikke nødvendigvis med sammen case

det kunne man godt vælge at afgrænse, og sige det tager man ikke hensyn til

eks.
http://scootergrisen.dk/scooterhjemmeside/videoer.php?Hej hus


her er lidt code finder dubletter

   function SortMultiArray($data){ // ikke & foran da jeg IKKE vil ændre
org data
      // http://dk.php.net/array_multisort Example #3 Sorting database results
      // Obtain a list of columns
      foreach ($data as $key => $row) {
         $col0[$key] = $row[0];
         $col1[$key] = $row[1];
         $col2[$key] = $row[2];
         $col3[$key] = $row[3];      
      }
      // make it case insensitive, virker med æøå
      $array_lowercase = array_map('strtolower', $col3);
      // array_multisort, kan ikke sorterer på æøå
      array_multisort($array_lowercase, SORT_ASC, $data);
      return $data;
   }
   
   function CheckNavneSammenfald(&$ar, $lng){ // & foran her for at spare
recurser, da det er en pointer til org data, og jeg ændre den ikke
      $tmpar = SortMultiArray($ar);
      for($i=0; $i<$lng; $i++){
         $str1 = $tmpar[$i][3];
         $str2 = $tmpar[$i+1][3];
         if($str1 == $str2){
            $data[] = $tmpar[$i];
            $data[] = $tmpar[$i+1];            
         }         
      }      
      return $data;
   }

   $underholdningdatabase = array(
      array('147', 'http://www.youtube.com/v/KHH7qm99Hbo' , '',
'karrusel'),
      array('146', 'http://www.youtube.com/v/ccxuaxGc9Uk' , '', 'styrt'),
      array('145', 'http://www.youtube.com/v/ccxuaxGc9Uk' , '', 'styrt'),
      array('144', 'http://www.youtube.com/v/ccxuaxGc9Uk' , '', 'styrt'),
      array('143', 'http://www.youtube.com/v/i8Pmx105_tk' , '', 'hej hus')
   );

   $lng = count($underholdningdatabase);

   
   $status = CheckNavneSammenfald($underholdningdatabase, $lng);
   $statuslng = count($status);
   if ($statuslng){
      echo "der er navnesammenfald ";
      print_r($status);
   }


jeg har lavet en del andre ting om i php delen af coden

http://olsensweb.dk/test/ng/video/video_array.zip

og lavet en sql vertion, ikke helt opdateret ennu
http://olsensweb.dk/test/ng/video/video_sql.zip

--
Med Venlig Hilsen
Ronny Olsen
http://olsensweb.dk

scootergrisen (19-09-2010)
Kommentar
Fra : scootergrisen


Dato : 19-09-10 16:46

>  >Men så kan jeg ikke have samme titel på flere videoer
> du kunne jo gører som du gør med "nye dæk 1" "nye dær 2",

Jeg har ikke noget imod at kaldes dem "nye dæk 1" og "nye dæk 2".
Det jeg mente var hvis man kom til at give 2 videoer den samme titel
så skulle det gerne give en form for fejl besked sådan at jeg kunne
rette det.
For ellers ville den første fundne video med den titel bare blive vist
selvom der var flere end 1 video med den titel.
Tænkte bare om der var en indbygget funktion i PHP så det var let at
teste om der var 2 med samme titler.
Men det virker vist fint nok som jeg vil have det nu.

> jeg kan se du har taget højde for mellemrum i navn, men ikke for æøå
>
> OK  (4) hej hus        
> Nej (9) Knap så god til at køre på baghjul
> Nej (138) Björkenäs Mopedmuseum

Jeg mener da jeg at har taget højde for æøå men det kan godt være du
ikke har prøvet min nyeste kode endnu men prøv for eksempel :
http://scootergrisen.dk/scooterhjemmeside/videoer.php?knap_sa_god_til_at_kore_pa_baghjul

> hvad med store/små bogstaver, nogle kopierer teksten,  andre skriver
> den, men ikke nødvendigvis med sammen case

Alt efter ? skal være med småt.
Jeg har lige rette koden så dette også virker :
http://scootergrisen.dk/scooterhjemmeside/videoer.php?KNAP_sa_god_til_at_KORE_Pa_baghjuL
Så det lige meget hvor case der bliver skrivet i.

Jeg prøver og kigge på din kode men tror faktisk det hele virker som
jeg vil have det nu.

Ronny Olsen (20-09-2010)
Kommentar
Fra : Ronny Olsen


Dato : 20-09-10 11:59

Den 20-09-2010 00:45, scootergrisen skrev:
>Det jeg mente var hvis man kom til at give 2 videoer den samme titel
så skulle det gerne give en form for fejl besked sådan at jeg kunne
rette det.
det får du også her
[cut]
$status = CheckNavneSammenfald($underholdningdatabase, $lng);
$statuslng = count($status);
if ($statuslng){
echo "der er navnesammenfald ";
print_r($status);
}
[/cut]
den bør selvføgelig ikke dumpe det til skærm men til fil, da brugerne
ikke skal se det, og der vil selvføgelig komme en række hver gang siden
bliver vist :(

>Jeg mener da jeg at har taget højde for æøå men det kan godt være du
ikke har prøvet min nyeste kode endnu men prøv for eksempel :
http://scootergrisen.dk/scooterhjemmeside/videoer.php?knap_sa_god_til_at_kore_pa_baghjul

jeg prøvede koden kort før jeg skrev indlægget, men ikke med mellemrun
lavet om til underscore, og ø->o å->a, jeg skrev dette
http://scootergrisen.dk/scooterhjemmeside/videoer.php?Knap så god til at
køre på baghjul
men jeg kan se du skriver det som om det skal være en link, brugeren
skal så bare kende aliaset, du har også ændret url, så alias vises når
man klikke på linket i listen


>Jeg har lige rette koden så dette også virker :
http://scootergrisen.dk/scooterhjemmeside/videoer.php?KNAP_sa_god_til_at_KORE_Pa_baghjuL
Så det lige meget hvor case der bliver skrivet i.

JA, det virker

>Jeg prøver og kigge på din kode
god fornøjelse :)

>men tror faktisk det hele virker som jeg vil have det nu
det er det vigtigste


--
Med Venlig Hilsen
Ronny Olsen
http://olsensweb.dk

scootergrisen (19-09-2010)
Kommentar
Fra : scootergrisen


Dato : 19-09-10 18:01

Er der egentligt overhovedet nogen fordel ved at bruge SQL i dette
tilfælde ?
Vil det ikke kun gå langsommere hvis den skal forbinde til en SQL
server hver gang ?
Jeg har ville bruge SQL til nogle andre sider på min hjemmeside men
jeg fandt aldrig ud af hvordan jeg lavede det som jeg ville ha det så
opgav det. Men fik da lært noget af det.
Men så opretter jeg en ny tråd hvis jeg vil prøve og igang med at
flytte min data over i SQL istedet for at have det inden i mine PHP
filer.

Ronny Olsen (20-09-2010)
Kommentar
Fra : Ronny Olsen


Dato : 20-09-10 12:00

Den 20-09-2010 02:01, scootergrisen skrev:

>Er der egentligt overhovedet nogen fordel ved at bruge SQL i dette
tilfælde ?
ud over data vil være lettere at dele på tværs af projecter,
indsætte/slette felter (du har et tomt felt, array(id, link, 'TOMT',
titel) ), og man kan spare noget hukommelse, ved ikke at skulle have
hele det fler dimitionale array i hukommelsen, men kun hente de data der
er behov for

det kunne være du på sigt skulle grupperer dine data, og nogle kunne
tilhører flerer katagorier
katagorier:
stunt (52,53, 92) (92 knap så meget stunt, men ideen er der)
dyr (26, 90,91,92,93)

tblflash
id link, titel

tblkatagori      
id navn      

tbl_s_kart_flash
id katagoriid flashid

>Vil det ikke kun gå langsommere hvis den skal forbinde til en SQL
server hver gang ?
det er selvføgelig en ulempe, man vil aldrig kunne konkurerer med alt
ligger klar i hukommelsen, men det er en afvejelse


--
Med Venlig Hilsen
Ronny Olsen
http://olsensweb.dk

scootergrisen (20-09-2010)
Kommentar
Fra : scootergrisen


Dato : 20-09-10 08:05

> det kunne være du på sigt skulle grupperer dine data, og nogle kunne
> tilhører flerer katagorier
> katagorier:
> stunt (52,53, 92) (92 knap så meget stunt, men ideen er der)
> dyr (26, 90,91,92,93)

Lyder som en god ide med kategorier.

Hvordan får du udført den fil som hedder flash.sql på en smart måde
fra browseren ?
Det problem havde jeg sidste jeg skrev SQL at jeg ikke kunne få udført
sådan en fil med kommandoer fra browseren på en smart måde så skulle
jeg logge ind på sqladmin eller hvad det hedder og kopier teksten.
Og hvis jeg så ville tilføje data så skulle man jo først slette den
gamle tabel.

Ronny Olsen (21-09-2010)
Kommentar
Fra : Ronny Olsen


Dato : 21-09-10 10:48

Den 20-09-2010 16:04, scootergrisen skrev:
>Hvordan får du udført den fil som hedder flash.sql på en smart måde
fra browseren ?

i phpmyadmin: vælg databasen test
det er vigtigt du står det du vil have importeret dine tabeller / database

hvis du ikke har en database der hedder test skal følgende tilføjes i
starten af flash.sql

CREATE DATABASE `test` DEFAULT CHARACTER SET latin1 COLLATE
latin1_swedish_ci;
USE `test`;



metode 1
1) tryk på import
2) i fil til import tryk gennemse og vælg flash.sql
3) tryk på udfør

metode 2
1) tryk på SQL
2) kopier hele teksten ind, som du har gjort før

( skal kun kopieres ind hvis du ikke har databasen test
CREATE DATABASE `test` DEFAULT CHARACTER SET latin1 COLLATE
latin1_swedish_ci;
USE `test`;
)

CREATE TABLE IF NOT EXISTS `flash` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`URL` text NOT NULL,
`Name` text NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;


INSERT INTO `flash` (`ID`, `URL`, `Name`) VALUES
(1, 'http://www.youtube.com/v/i8Pmx105_tk', 'Hej hus'),
(2, 'http://www.youtube.com/v/ccxuaxGc9Uk', 'Styrt'),
(3, 'http://www.youtube.com/v/i8Pmx105_tk', 'Hej hus'),
(4, 'http://www.youtube.com/v/KHH7qm99Hbo', 'karrusel');

3) tryk på udfør

***********************************************
hvis du vil lave den med database vil jeg nok bruge denne struktur,
at holde det i 1 tabeil er fint til at starte, på men på sigt
skal du have flerer tabeller med, hvis du skal gruppere det.

man kunne evt udvide med et admin modul, der vil check for dobbelt navne
helt klart hører til, samt adm af link/alias
man kunne også overveje om man skulle implamenterer noget AJAX, så hele
siden ikke skal genlæsses, men kun det der skal ændres, men det kræver
en del programmering
********************************************

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE IF NOT EXISTS `tblflash` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`URL` text NOT NULL,
`Alias` text NOT NULL,
`Titel` text NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;


INSERT INTO `tblflash` (`ID`, `URL`, `Alias`, `Titel`) VALUES
(1, 'http://www.youtube.com/v/i8Pmx105_tk', 'hej_hus', 'Hej hus'),
(2, 'http://www.youtube.com/v/ccxuaxGc9Uk', 'styrt', 'Styrt'),
(5,
'http://www.metacafe.com/fplayer/2225319/moped_madness_in_vietnam.swf',
'massere_af_Scootere_i_vietnam', 'Massere af Scootere i vietnam'),
(4, 'http://www.youtube.com/v/KHH7qm99Hbo', 'karrusel', 'karrusel');

CREATE TABLE IF NOT EXISTS `tblkategori` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` text NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

INSERT INTO `tblkategori` (`ID`, `Name`) VALUES
(1, 'Legeplads'),
(2, 'Uheld'),
(3, 'div');

CREATE TABLE IF NOT EXISTS `tbl_s_kat_flash` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`kategoriid` int(11) NOT NULL,
`flashid` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

INSERT INTO `tbl_s_kat_flash` (`ID`, `kategoriid`, `flashid`) VALUES
(1, 1, 2),
(2, 1, 4),
(3, 2, 1),
(4, 2, 2),
(5, 3, 5);
--
Med Venlig Hilsen
Ronny Olsen
http://olsensweb.dk

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste