PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 06-01-2011 11:54:35

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

resultat sql dans 2 tableaux

bonjour à tous !
Est il possible d'isoler le premier résultat d'une requête mais en gardant les résultats suivants.
J'ai une page index, avec par défaut le dernier résultat de ma requête chargé dans le player, et les dix derniers résultats dans la partie de droite.
Pour l'instant, j'ai deux fois la requête, une en LIMIT 0,1 l'autre en 0,10.
1- est il possible de ne faire qu'une requête ??
2-  je voudrais aussi que lorsque je clic sur un élément à droite, il se charge dans le player sur la même page.
Je me demande donc comment conditionner l'affichage par "défaut" et "au clic"
Je m'explique : je souhaiterai afficher mes résultats comme suit : 
[code+PHP]<?php mt_srand((float) microtime()*1000000);

$r= mt_rand(0, 100);

$query = "SELECT * FROM listes WHERE `theme` LIKE '%actualite%' ORDER BY `id` DESC LIMIT 0, 1";
$result=mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
$num = mysql_num_rows($result);
if (!$result){print "Pas d'enregistrements trouvés";exit;}

while ($row = mysql_fetch_array($result)) {
$nom=$row["nom"];
?>
<link href="/television-locale-pau/template/bulle/css/style.css" rel="stylesheet" type="text/css" media="screen">
<body>
<!-- Header -->
<div id="header">
<div id="log"><div align="left"><img src="template/bulle/logo iciTELE100x100.jpg" width="76" height="76" /></div><!-- Logo --></div>
    <div class="shell">
       
        <h1 id="logo"><a href="#">ici-tele<span>la télévision locale de Pau</span></a></h1>
        <!-- /Logo -->
       
      <div class="header-right">
            <!-- Search -->
            <div id="search">
          <form method="POST" action="resultat.php">
                    <input type="text" value="Recherchez ..." class="field" />
                    <input type="submit" value="submit" class="submit" />
                </form>
            </div>
            <!-- /Search -->
           
            <!-- Socials -->
            <div class="socials">
              <a href="http://twitter.com/ici_tele" class="link-twitter">Twitter</a>
              <a href="http://www.youtube.com/user/icitele" class="link-linkedin">Youtube</a>
              <a href="http://www.facebook.com/icitele.pau" class="link-facebook">Facebook</a>
              <a href="http://feeds.feedburner.com/IciTelePau-LePodcast" class="link-flickr">Podcast</a>
            </div>
            <!-- /Socials -->
      </div>
    </div>
</div>
<!-- /Header -->

<?php include("includes/menu.php");?>
<?php mt_srand((float) microtime()*1000000);

$r= mt_rand(0, 100);

$query = "SELECT * FROM video WHERE `id_mot` LIKE '%actualites%' ORDER BY `id` DESC LIMIT 1,10";
$result=mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
$num = mysql_num_rows($result);
if (!$result){print "Pas d'enregistrements trouvés";exit;}

while ($row = mysql_fetch_array($result)) {
$nom=$row["nom"];
$dest_file="/video/";
    $dest_page="/video.php?";
    $ext1="flv";
    $ext2="jpg";
    $ext3="f4v";
    $ext4="m2t";
    $ext5="mp4";
    $URL_site="http://127.0.0.1:8888/television-locale-pau";
/* enlve un "\"  */
//$nom = "$row['nom']";
$nom = stripslashes($row["nom"]);
$title = stripslashes($row["title"]);
$description= stripslashes($row["description"]);
//$publication= stripslashes($row["publication"]);
$publication = ($row['publication']);
//$producteur= stripslashes($row["organisateur"]);
$id_mot= stripslashes($row["id_mot"]);
//$alias = stripslashes($row["alias"]);
$auteur =stripslashes($row["auteur"]);
$desc_longue = stripslashes($row["desc_longue"]);
//echo $nom;
//$nom sad$row["nom"]);
    $source_file=("$nom");
    $link = ("$URL_site$dest_page$nom");
    $flv = ("$URL_site$dest_file$source_file.$ext1");
    $f4v = ("$URL_site$dest_file$source_file.$ext3");
    $m2t = ("$URL_site$dest_file$source_file.$ext4");
    $mp4 = ("$URL_site$dest_file$source_file.$ext5");
    $mediathumbnail = ("$URL_site$dest_file$source_file.$ext2");
//$file= fopen("xml/$nom.xml", "r");
$datefr =changedateusfr($row['publication']);

setlocale (LC_TIME, 'fr_FR');
$dateFormat = "2010-04-20";
$date = strftime("%A %d %B %Y",strtotime("$publication"));
?>
<!-- Intro -->
<div id="intro">
    <div class="shell">
    <div class="single-slider">
    <table width="70%" align="left" cellpadding="2" cellspacing="4">
  <tr>
    <td width="70%" align="center"><h1><?php echo ''.stripslashes($row['title']).''; ?></h1></td>
   
  </tr>
  <tr>
    <td valign="top">    <script type="text/javascript" src="jwplayer/jwplayer.js"></script>

   
    <div id="container">Chargement du player ...</video>

<script type="text/javascript">
    jwplayer("container").setup({
        autostart: true,
        controlbar: "over",
        duration: 15,
        stretching: "fill",
        file: "video/<?php echo $nom ?>.mp4",
        flashplayer: "jwplayer/player.swf",
        image: "video/<?php echo $nom ?>.jpg",
        plugins: {
            hd: { file: "video/<?php echo $nom ?>.f4v", fullscreen: true },
            gapro: { accountid: "UA-17335929-1" },
            adtvideo:{config: '<?php echo $URL_site ?>/adsvideo_config.xml'},
        },
        volume: 80,
        width: 900,
        height: 550,

                events: {
            onComplete: function() {
                document.getElementById("status").innerHTML = "That's all folks!";
            }
                        }

    });
</script>
</div></td>
    </tr>
  <tr>
    <td align="center"><p><?php echo ''.stripslashes($row['desc_longue']).''; ?></p></td>
    </tr>
</table>
<div class="video">     <?php
$sql="SELECT * from video WHERE `id_mot` LIKE '%actualites%' AND etat='on' ORDER BY id DESC LIMIT 0, 10";   //on prépare la requête SQL.


$result=mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
if($result)
        {
        if(mysql_num_rows($result)==0)
        $msg="<h1><center><b>Pas de Résultat</b></center></h1>";
        else
                {
               $date = date ( "Y:m:d" ) ;

             
?>
<br />
<?php  //include("tagsphere.php");?><br />
<?php     while($row = mysql_fetch_array($result))
                        {
    /* indiquer $dest_file qui correspond au répertoire de destination */
    $dest_file="/video/";
    $dest_page="/video.php?";
    $ext1="flv";
    $ext2="jpg";
/* enlève un "\"  */
$nom = ($row['nom']);
$etat = ($row['etat']);
$publication = ($row['publication']);
$description= ($row["description"]);
$desc_longue = ($row["desc_longue"]);
    $source_file=("$nom");
   
    $link = ("$URL_site$dest_page$nom");
    $mediacontent = ("$URL_site$dest_file$source_file.$ext1");
    $mediathumbnail = ("$URL_site$dest_file$source_file.$ext2");
$datefr =changedateusfr($row['publication']);

setlocale (LC_TIME, 'fr_FR');
$dateFormat = "2010-04-20";
$date = strftime("%A %d %B %Y",strtotime("$publication")); ?>
    <table width="100%" border="0" align="left" cellpadding="2" cellspacing="2">
   
      <tr>
     
        <td width="125" align="left">
     
        <a href="video.php?nom=<?php echo $row['nom']; ?>">
        <img src="<?php echo $mediathumbnail ?>" align="left"  vspace="0" width="120px" alt="<?php echo ''.stripslashes($row['title']).''; ?>" /></a></td>
        <td width="775" colspan="4" valign="top"><a href="video.php?nom=<?php echo $row['nom']; ?>"><h3><?php echo ''.stripslashes($row['title']).''; ?></h3></a>
       <p><?php echo $description ?><br /></p></td>
      </tr>
   
</table>
<?php                       
                        }
     
                }
        }
        ?></div>[/code]
Je vous remercie de votre aide et vous souhaite une année 2011 pleine de joie, de pepettes et de code  wink

Hors ligne

#2 06-01-2011 12:42:49

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : resultat sql dans 2 tableaux

Si tu séparais données et affichage tu n'aurais pas de problème. smile

Pour te dépatouiller il faut faire de l'affichage conditionnel. Tu initialises une variable $premier_lu à false.
Quand tu rentres dans ta boucle while() de lecture de la requête (avec un LIMIT 0,10) => une seule requête donc
tu fais ceci :

while(....)
{
  if( $premier_lu == false )
  {
    // traitement du premier enregistrement
    // ...
    $premier_lu = true
  }
  else
  {
    // traitement des enregistrements suivants
  }
}

Hors ligne

#3 06-01-2011 13:19:29

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : resultat sql dans 2 tableaux

La colorisation syntaxique montre bien le foutoir de ce code HTML où une balise <link> se balade hors d'un <head></head> ainsi qu'un abominable imbroglio de mise en page avec calques (<div>) ainsi qu'avec des tableaux HTML.
Bref, un recours plus sémantique au balisage HTML ne serait pas non plus un luxe.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums