Optimisez code php/mysql

Fermé
alphon5o - 7 janv. 2010 à 16:56
 alphon5o - 8 janv. 2010 à 17:29
Bonjour,
je suis actuellement entrain de mettre sur mon site une playlist video/audio;
j'utilise donc un player flash et je possede une liste deroulante de different media(audio/video) ainsi donc le visiteur peut selectionner le media kil veut lire avec le player.

Jusque la je me satisfaisai de cette façon de faire mais comme il m'arrive souvent de rajouter des medias je me suis dit pourquoi pas me servir de php/mysql avec une partie admin dans la quel je pourrai ajouter des medias dont les liens pourront etre stocker dans la base de donnée et comme ça si le visiteur selectionne un medias, le script php ira le chercher dans la base et le lire via le lecteur.

en gros voila ce que j'ai actuellement:

....
<embed src="lien_vers/player.swf" menu="false"
      quality="high" width="300" height="320" name="index"
      allowScriptAccess="always" type="application/x-shockwave-flash"
      pluginspage="https://get.adobe.com/flashplayer/"
      flashvars="media=<?php if(isset($_REQUEST['media'])) echo $_REQUEST['media']; ?>&ShowPlaylist=1&ShowEQ=1&firstTrack=1&initVol=50"
      wmode="transparent" border="0" / >
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" >
<label>choix</label>
<select name="media">
   <option value="lien1">lien1</option>
   <option value="lien2">lien1</option>
   <option value="lien3">lien1</option>
   <option value="lien4">lien1</option>
   <option value="lieni">lien1</option>
   <option value="lienk">lien1</option>
   <option value="lienn">lien1</option>
   <option value="lien..">lien1</option>
  .....
...
</select>
</form>
.....



et je voudrai changer cette façon de faire pour que dans la partie admin je puisse obtenir un formulaire d'ajout , de suppretion et/ou de modification d'un media
ma table doit avoir cette forme: medias(id, url, name, type)
donc ds mon formulaire d'ajout par exple j'orai un champ pour l'url, un otre pr le nom et un dernier pr selectioné le type(audio/video) et bien entendu le champ pr valider( ça je l'ai deja fait), me reste a pouvoir verifier la validé d'un url( j'ai utlisé ce regex mais il ne me valide que kelke url: |^^http://([a-zA-Z0-9-]+.)?([a-zA-Z0-9-]+.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(:[0-9]+)?(/[a-zA-Z0-9-]*)?(.[a-zA-Z0-9]{1,4})?$|i) donc si vous avez des idée de la façon de faire ça sera parfait mais pas essentielle vue que ce moi meme qui ajoute dans un premier temps un media, donc je penserai a bien mettre de url valide... voila une petite idée de ce que souhaite faire:
- me connecter a la base de donnée
- recuperer l'ensemble de enregistrement de ma table
- construire a partir du resultat une liste deroulante avec le nom des medias, comme ça si le visiteur choisi un nom, on cherche l'url qui lui est associé dans la table et on le passe en parametre a mon lecteur qui va se charger de le lire...

j'ai eté un peu long dans mes explications mais c surtout que je veux bien faire alors si avez des idée de comment faire je vous serai tres reconnaissant de m'aider... et merci d'avance pour le temps que vous avez pri pr m'aider
A voir également:

6 réponses

Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
7 janv. 2010 à 17:15
Salut a toi,

Apres lecture de ton explication, si j'ai bien compris, tu veux de l'aide pour faire ta partie administration en php?

Si tu veux des réponses sur comment faire une connexion a une BDD, interroger ta bdd et la modifier en php, direction le site du zero qui est très bien expliqué.

Si certaine partie de ton code bug ou que tu comprend pas certain truc, je veux bien t'aider mais j'ai pas le temps (ni l'envie) pour tout faire.

Si j'ai mal compris ta question, désole.
0
pour une idée de ce que je souhaire faire voici mon code que je ecris avec php/mysql:

<?php
require_once('variables.inc.php');
    $connect = mysql_connect($server,$login,$pass) or die('connexion serveur impossible : '.mysql_error());
    mysql_select_db($bdd,$connect) or die('connexion bdd impossible : '.mysql_error());

if(isset($_POST)){
  if(!empty($_REQUEST['media'])){
    $nom = $_REQUEST['media'];
    $query = "SELECT url FROM webtvr WHERE name='".$nom."'";
    $result = mysql_query($query) or die('erreur requete'.mysql_error());
    $donnee = mysql_fetch_array($result);
    $url =$donnee['url'];
  }
 }
?>
<br />

<object id="MediaPlayer" classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" codebase="http://activex.microsoft.com/activex/controls/
mplayer/en/nsmp2inf.cab#version=6,4,5,715" standby="Loading Microsoft Windows Media. Player components..."   type="application/x-oleobject" width="400" height="300">
   <param name="FileName" value="<?php echo $url; ?>">
   <param name="AutoStart" value="true">
   <param name="ShowStatusBar" value="true">
   <param name="uiMode" value="none">
   <param name="enableContextMenu" value="true">
   <embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/isapiredir.dll?prd=windows&sbp=mediaplayer&ar=Media&sba=Plugin&"  width="400" height="300" src="<?php  echo $url;?>" autostart="true" showstatusbar="true" enableContextMenu="false" uiMode="none"></embed>
   
   </object>
<?php
   $query = "SELECT DISTINCT name, type FROM webtvr ORDER BY type DESC";
   $resultat = mysql_query($query) or die('echec requete ('.$query.') :'. mysql_error);
?>
<form action="webtv.php" method="post">
<label>faite votre choix:</label>
<select name="media">
<?php
     while(($donnee = mysql_fetch_array($resultat))){
    echo '<option class="'.$donnee['type'].'"  value="'.$donnee['name'].'">'.$donnee['name'].'</option>';
  }
mysql_close($connect);
?>
</select>
<input type="submit" value="OK" />
<br />
</form>
   <a href="?page=2385" class="bas_de_page" style="text-decoration:none;">ajouter media </a>

bien evidement c'est un peu code simplifié( pas de traitement particulier sur les variables reçus).
mais ça ne fonctionne pas; kan je selectionne un media et je valide je suis redirigé vers une autre page alors que dans mon code je ne fait aucune redirection.
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
8 janv. 2010 à 09:48
J'ai tester rapidement ton code en me créant une petite base en local, bon moi sa marche pas parce que je met des url faussent dans ma base mais il repart bien vers la même page.

tu fait <form action="webtv.php" method="post">, Ton fichier s'appelle bien webtv.php sinon c'est sur que sa va pas marcher.
0
oui le fichier s'appelle bien webtvr.( sinon j'avais mis a la place <?php echo $_SERVER['PHP_SELF']; ?> )
mais je crois que le probleme vient du fait que cette page( webtv.php ) est inclus dans une autre page) voila la structure generale de mon site:
...
...
<div id=#global>
    <div id=#entete> 
        .....
        ....
    </div>
    <div id=#centre>
            <div id=#navbar>
               ici mes liens; exemple
               lien_vers_webtvr sous cette forme <a href="?pg=3">webtvr </a>
               ......
             </div>
            <div id=#contenu>
             ici j'utilise les pseudo frame en php
            <?php
             if(isset($_REQUEST['pg'])) $page = $_REQUEST['pg'];
             else $page = 0;
             switch($page){
                case 1: include('page_correspondante'); break;
                ....
                case 3: include('webtvr.php'); break;
                ....
                default:include('accueuil.php'); break;
             }
            ?>
             ...
            </div>
      <div id=#footer>
        ......
      </div>
  </div>


avec cette structure des que je valide ça me redirige automatiquement sur la page d'acceuil

mais je la teste dans une page isolé ça marche... bref si vous avez des idées sur la façon de proceder avec la structure que j'ai donnée dite moi... sinon comme je l'ai signalé plus haut j'ai un probleme en ce qui concernent la validité d'un url( il ne sagit pas de savoir si l'url pointe bien sur un site, juste que ça respecte le format d'une url)...
merci de vos contributions. je cherche de mon coté et je vous tiens au courant
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
8 janv. 2010 à 16:55
bon je vais redire la meme chose mais dans ton code de formulaire que tu me met en haut c'est
<form action="webtv.php" method="post">
alors que te lien vers ton fichier dans ton fichier index (celui du code juste au dessus), tu as :
case 3: include('webtvr.php'); break;
Il y a un R en trop ou en moins quelque parts. Moi avec cette correction sa marche tres bien et sa redirige au bonne endroit...

Voila les 2 bout de code:
webtvr.php :
<?php
$server = "localhost";
$login="root";
$pass="";
$bdd="toto";

$connect = mysql_connect($server,$login,$pass) or die('connexion serveur impossible : '.mysql_error());
mysql_select_db($bdd,$connect) or die('connexion bdd impossible : '.mysql_error());

if(isset($_POST)){
if(!empty($_REQUEST['media'])){
$nom = $_REQUEST['media'];
$query = "SELECT url FROM webtvr WHERE name='".$nom."'";
$result = mysql_query($query) or die('erreur requete'.mysql_error());
$donnee = mysql_fetch_array($result);
$url =$donnee['url'];
}
}
?>
<br />

<object id="MediaPlayer" classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" codebase="http://activex.microsoft.com/activex/controls/
mplayer/en/nsmp2inf.cab#version=6,4,5,715" standby="Loading Microsoft Windows Media. Player components..." type="application/x-oleobject" width="400" height="300">
<param name="FileName" value="<?php echo $url; ?>">
<param name="AutoStart" value="true">
<param name="ShowStatusBar" value="true">
<param name="uiMode" value="none">
<param name="enableContextMenu" value="true">
<embed type="application/x-mplayer2" pluginspage="https://www.microsoft.com/fr-fr/" width="400" height="300" src="<?php echo $url;?>" autostart="true" showstatusbar="true" enableContextMenu="false" uiMode="none"></embed>

</object>
<?php
$query = "SELECT DISTINCT name, type FROM webtvr ORDER BY type DESC";
$resultat = mysql_query($query) or die('echec requete ('.$query.') :'. mysql_error);
?>
<form action="webtv.php" method="post">
<label>faite votre choix:</label>
<select name="media">
<?php
while(($donnee = mysql_fetch_array($resultat))){
echo '<option class="'.$donnee['type'].'" value="'.$donnee['name'].'">'.$donnee['name'].'</option>';
}
mysql_close($connect);
?>
</select>
<input type="submit" value="OK" />
<br />
</form>
<a href="?page=2385" class="bas_de_page" style="text-decoration:none;">ajouter media </a>

index.php :
<div id=#global>
<div id=#entete>
.....
....
</div>
<div id=#centre>
<div id=#navbar>
ici mes liens; exemple
lien_vers_webtvr sous cette forme <a href="index.php?pg=3">webtvr </a>
......
</div>
<div id=#contenu>
ici j'utilise les pseudo frame en php
<?php
if(isset($_REQUEST['pg'])) $page = $_REQUEST['pg'];
else $page = 0;
switch($page){
case 1: include('page_correspondante'); break;
case 3: include('webtvr.php'); break;
}
?>
...
</div>
<div id=#footer>
......
</div>
</div>
0
le probleme ne viens pas de la( R en plus ou en moins: erreur de frappe, corrigé depuis)
pour te donner une idée voici le lien du site http://mamadou-moussa.sow.emi.u-bordeaux1.fr/index.php?page=9
choisi un media au hasard et valide tu est redirigé sur la page d'acceuil, alors qu'avant( quand j'utilisait pas une base de donnée ça marchais parfaitement bien)... mais pour l'instant je vais un regex qui me permet de verifier qu'une url est bien valide avant de la stocké dans ma table( le mien que j'ai fourni plus haut ne fonctionne pas: il ya des url valide qu'il refuse). merci
0