[MySQL et php] Afficher un seul enregistrement

Eléphanteau du PHP | 17 Messages

08 mai 2007, 19:16

Bonjours les phpien,
Si ce probleme a deja été posté, j'en suis desolé.
Voici donc le probleme, je voudrai afficher un seul enregistrement MySQL
Voici ce que j'utilise:
<?php
include('config.inc.php');

connexionbdd(); // ouverture de la connexion
        $id = isset($_GET['id']
$sql ='SELECT * FROM membres WHERE id=\'$id\' DESC LIMIT 0,1';
$requete = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($donnees = mysql_fetch_assoc($requete))
{
//maboucle(enlevé pour alleger)
<?php
}
mysql_close(); // fermeture de la connexion
?>
Ma connexion a MySQL donctionne bien, puisque un autre script utilise le meme config.inc.php
Mais voici l'erreur recupéré:

Code : Tout sélectionner

Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ')' in C:\wamp\www\alexisvideo\video.php on line 6
J'espere que vous pourez m'aider, car c'est assé urgent ;)
Merci d'avance

ViPHP
ViPHP | 5924 Messages

08 mai 2007, 19:37

Tu as oublié une ')' et un ';' à la ligne 5.

Eléphanteau du PHP | 17 Messages

08 mai 2007, 19:41

merci pour ca, j'ai donc remplacé la ligne 5 par
$id = 'isset($_GET[\'id\']' ;
Mais maintenant j'ai une page blanche, est-ce le reste de mon code qui est mal codé??

Code : Tout sélectionner

<html> <head> <title>Voir une video</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" href="http://www.youtube.com/css/styles_yts1177571333.css" type="text/css"> <link rel="stylesheet" href="http://www.youtube.com/css/base_yts1178140022.css" type="text/css"> <style> .broadcastBox { padding:4px; margin-bottom:12px; margin-top:-2px; border:1px #CCC solid; background-color:#EEE; width:290px; height:22x; } </style> </head> <body> <h1 id="video_title"><?php echo $donnees['titre'] ?></h1> <table align="center" cellpadding="0" cellspacing="0"> <tbody> <tr valign="top"> <td width="451"><div id="interactDiv"> <div id="playerDiv"> <object classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" id="WindowsMediaPlayer1"> <param name="URL" value="<?php echo $donnees['urlvideo'] ?>"> <param name="rate" value="1"> <param name="balance" value="0"> <param name="currentPosition" value="0"> <param name="defaultFrame" value> <param name="playCount" value="1"> <param name="autoStart" value="-1"> <param name="currentMarker" value="0"> <param name="invokeURLs" value="-1"> <param name="baseURL" value> <param name="volume" value="50"> <param name="mute" value="0"> <param name="uiMode" value="full"> <param name="stretchToFit" value="0"> <param name="windowlessVideo" value="0"> <param name="enabled" value="-1"> <param name="enableContextMenu" value="-1"> <param name="fullScreen" value="0"> <param name="SAMIStyle" value> <param name="SAMILang" value> <param name="SAMIFilename" value> <param name="captioningID" value> <param name="enableErrorDialogs" value="0"> <param name="_cx" value="6482"> <param name="_cy" value="6350"> </object> </div> <div id="watchqueueStartNew"> <div><img src="http://www.youtube.com/img/pic_curves_top_450x4.gif" alt="fgh" border="1"></div> <div id="nextvideoRow"></div> <div id="save_row"></div> <!-- end save_row --> <div><img src="http://www.youtube.com/img/pic_curves_bottom_450x4.gif" alt="cvbch" border="1"></div> </div> <div id="actionsAndStatsDiv"> <div id="ratingDivWrapper"> <div id="ratingDiv"> <div id="ratingMessage"></div> </div> </div> <div id="fullStats"> <div></div> </div> <div id="addFavsDiv"></div> <div id="addGroupsDiv"></div> <div id="sendToMobileDiv"></div> <div id="blogVidDiv"></div> <div id="inappropriateVidDiv"></div> </div> <!-- end actionsAndStatsDiv --> <div id="commentsDiv"> <div id="recent_comments"><div><br> <br> </div> <div id="div_WTKQGxLanNY"><div id="comment_WTKQGxLanNY"></div> </div> </div> <div id="commentPostDiv"></div> <!-- end post a comment section --> <div id="div_main_comment"></div> </div> <!-- end commentsDiv --> </div> <!-- end interactDiv --> </td> <td width="557"><div id="aboutExploreDiv"> <div id="aboutVidDiv"> <div id="uploaderInfo"> <div id="subscribeDiv"> <div><a href="http://www.youtube.com/watch?v=wrEPJh14mcU#" onclick="showAjaxPostDiv('emptydiv','/ajax_subscriptions','subscribe_to_user=smjwt&AXT=AUhjhzJJuU4VxKmuQqcHYuCy9mR8MTE3ODY0MjE5Mw=='); return false;" title="subscribe to smjwt's videos"></a><span id="vidDescRemain"></span></div> <?php echo $donnees['desclongue'] ?></div> </div> <div></div> <div id="vidFacetsDiv"> <form name="urlForm" id="urlForm"> <table id="vidFacetsTable" cellpadding="0" cellspacing="0"> <tbody> <tr> <td>URL</td> <td><input name="video_link" value="http://<?php echo'$url' ?>/video.php?v=<?php echo $donnees['id'] ?>" readonly="true" type="text"> </td> </tr> <tr> <td>Integr&eacute;</td> <td><input name="ingre" value="<object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/wrEPJh14mcU'></param><param name='wmode' value='transparent'></param><embed src='http://www.youtube.com/v/wrEPJh14mcU' type='application/x-shockwave-flash' wmode='transparent' width='425' height='350'></embed></object>" onclick="javascript:document.urlForm.embed_code.focus();document.urlForm.embed_code.select();" readonly="true" type="text"> </td> </tr> </tbody> </table> </form> </div> </div> </div></td> </tr> </tbody> </table> </body> </html>
PS: pour ce qui me diront, tu a copié sur YouTube, c'est pas la peine de le dire, j'utilise pour la forme, je ne code pas pour moi, et la personne changera le theme apres;)

Eléphant du PHP | 147 Messages

08 mai 2007, 23:02

La ligne suivante :

Code : Tout sélectionner

$id = 'isset($_GET[\'id\']' ;
te renvoie true si $_GET['id'], false sinon est défini je pense pas que ce soit le resultat atendu.

Code : Tout sélectionner

if (isset($_GET['id'])) {$id = $_GET['id']; }
Cela me semble plus approprié si j'ai bien compris le script

Eléphanteau du PHP | 17 Messages

09 mai 2007, 16:58

Merci NoNos, c'est effectivement tres utilise. Maintenant j'ai modifié mon code, j'ai rajouté des un peu partout, et ma page s'affiche, mais tout ce qui est
par exemple
$donnees['titre']
ne s'affiche pas, c'est comme si MySQL ne retournait aucune données !! Voici donc mon fichier, tel qu'il est maintenant:
<?php
include('config.inc.php');

connexionbdd(); // ouverture de la connexion
if (isset($_GET['v'])) {
$id = '$_GET[\'v\']'; 
$sql = 'SELECT * FROM video WHERE id="$id" LIMIT 1';
$requete = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($donnees = mysql_fetch_assoc($requete));
{
echo $donnees['titre'] ;
?>
<table align="center" cellpadding="0" cellspacing="0">
  <tbody>
    <tr valign="top">
      <td width="451">
			<object id='player' name='player' width='352' height='314' classid='CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95' codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'>
				<param name='FileName' value='<?php echo $donnees['urlvideo']; ?>'>
				<param name='ShowControls' value='TRUE'>
				<param name='AutoStart' value='FALSE'>
				<param name='AnimationAtStart' value='TRUE'>
				<param name='ShowDisplay' value='FALSE'>
				<param name='TransparentAtStart' value='FALSE'>
				<param name='ShowStatusbar' value='TRUE'>
				<param name='enableContextMenu' value='FALSE'>
				<param name='AllowChangeDisplaySize' value='TRUE'>
				<param name='AutoSize' value='TRUE'>

				<param name='EnableFullScreenControls' value='FALSE'>
				<embed type='video/x-ms-asf-plugin'
					pluginspage='http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/'
					src='<?php echo $donnees['urlvideo'] ; ?>'
					name='player'
					autostart='0'
					showcontrols='1'
					showdisplay='0'
					showstatusbar='1'
					animationatstart='1'
					transparentatstart='0'
					allowchangedisplaysize='1'
					autosize='1'
					displaysize='0'
					enablecontextmenu='0'
					windowless='1'
					width='352'
					height='314'
					enablefullscreencontrols='0'>
				</embed>
			</object>
				<br>
                <br>
      </td>
      <td width="557">
			<?php echo $donnees['desclongue']; ?></div>
            <form name="urlForm" id="urlForm">
              <table id="vidFacetsTable" cellpadding="0" cellspacing="0">
                <tbody>
                  <tr>
                    <td width="95">URL</td>
                    <td width="461"><input name="video_link" type="text" value="http://<?php echo "$url" ?>video.php?v=<?php echo $donnees['id']; ?>" size="80" readonly="true">                    </td>
                  </tr>
                  <tr>
                    <td>Integr&eacute;</td>
                    <td><input name="ingre" type="text" value="
<object id='player' name='player' width='352' height='314' classid='CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95' codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'>
				<param name='FileName' value='<?php echo $donnees['urlvideo']; ?>'>

				<param name='ShowControls' value='TRUE'>
				<param name='AutoStart' value='FALSE'>
				<param name='AnimationAtStart' value='TRUE'>
				<param name='ShowDisplay' value='FALSE'>
				<param name='TransparentAtStart' value='FALSE'>
				<param name='ShowStatusbar' value='TRUE'>
				<param name='enableContextMenu' value='FALSE'>
				<param name='AllowChangeDisplaySize' value='TRUE'>
				<param name='AutoSize' value='TRUE'>

				<param name='EnableFullScreenControls' value='FALSE'>
				<embed type='video/x-ms-asf-plugin'
					pluginspage='http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/'
					src='<?php echo $donnees['urlvideo']; ?>'
					name='player'
					autostart='0'
					showcontrols='1'
					showdisplay='0'
					showstatusbar='1'
					animationatstart='1'
					transparentatstart='0'
					allowchangedisplaysize='1'
					autosize='1'
					displaysize='0'
					enablecontextmenu='0'
					windowless='1'
					width='352'
					height='314'
					enablefullscreencontrols='0'>
				</embed>
			</object>" size="80"readonly="true">                    </td>
                  </tr>
                </tbody>
              </table>
            </form>
		</td>
    </tr>
  </tbody>
</table>
<?php
}
mysql_close(); // fermeture de la connexion
}
else
	echo 'Merci de choisir une video'
?>
et la structure de ma base :
CREATE TABLE `video` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`nom` text NOT NULL ,
`image` text NOT NULL ,
`desccourte` text NOT NULL ,
`desclongue` text NOT NULL ,
`urlvideo` text NOT NULL ,
KEY `id` ( `id` )
) ENGINE = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT =2;

INSERT INTO `video` ( `id` , `nom` , `image` , `desccourte` , `desclongue` , `urlvideo` )
VALUES ( 1, 'Video de test1', 'http://www.ptitlu.org/blog/uploads/imag ... s9ythb.png', 'Une video de test, on essayera de pas depassser les 100 caracteres', 'Et la une description longueeeeeeeeeeeeee, on a le droitttttt de metreeeeee onn va dirrrrr jusqu''a 255 caracteressss', 'urldunevideoenlevepourgarderlanonyma:D' ) ;
J'espere qu'il y a asé de details pour que vous puissiez m'aider ;)

ViPHP
ViPHP | 5924 Messages

09 mai 2007, 20:35

C'est un peu logique que $donnees['titre'] soit vide, la table n'a aucun champ nommé `titre`...

Eléphanteau du PHP | 17 Messages

09 mai 2007, 20:50

c'est reglée, mais je n'ai toujours rien !!
Help Image

ViPHP
ViPHP | 5924 Messages

09 mai 2007, 20:59

quand tu mets ca :
$id = '$_GET[\'v\']'; 
Tu assignes à $id la chaine $_GET['id'] et non le contenu de la variable en question. Ce qui explique le problème.

Eléphanteau du PHP | 17 Messages

09 mai 2007, 21:32

j'ai bien changé en
$id = $_GET['v'] ;
mais je n'ai toujours rien Image

Eléphant du PHP | 259 Messages

09 mai 2007, 21:55

hello,

deux erreurs :

la premiere :
$sql = 'SELECT * FROM video WHERE id="$id" LIMIT 1';
 
une chaine entre apostrophes ( ' ) n'interprete pas les variables qu'elle contient. Donc il faut sortir $id de la chaine et concaténer :
$sql = 'SELECT * FROM video WHERE id="' . $id . '" LIMIT 1';
 
Accessoirement c'est plus lisible :)

la deuxieme :
ton champ 'id' est de type numérique il ne faut pas mettre de guillemets à la valeur que tu lui envoie. Soit :
$sql = 'SELECT * FROM video WHERE id=' . $id . ' LIMIT 1';
 
une troisième pour la route : :)
Ton champ 'id' est ta clé primaire, en auto-increment, ce qui veut dire que chaque valeur y est unique. Donc inutile d'y rajouter LIMIT 1 puisque quelque soit la valeur que tu lui envoie, tu n'auras jamais plus d'une réponse possible. Donc finalement
$sql = 'SELECT * FROM video WHERE id=' . $id;
en esperant avoir pu t'aider :)

Eléphanteau du PHP | 17 Messages

10 mai 2007, 13:29

ok, je vois ca ce soir, merci ;)

Invité
Invité n'ayant pas de compte PHPfrance

10 mai 2007, 18:51

ca marche pas Image
C'est quoi ce beug T_T

lem
Eléphant du PHP | 108 Messages

10 mai 2007, 18:56

Ligne 9:
while ($donnees = mysql_fetch_assoc($requete)); 
Pourquoi as-tu ajouté un ";" ici ?
Ca n'a pas de sens.
Lem.

Eléphanteau du PHP | 17 Messages

13 mai 2007, 10:59

edition:
desolé d'avoir posté trop vite, c'est moi qui me suis trompé d'une ligne, maintenant ca marche, je t'atore, vient que je t'embrasse :D non, serieux, et enorme merci ;)