modification de données d'une bdd mysql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : modification de données d'une bdd mysql

Re: modification de données d'une bdd mysql

par Ryle » 05 avr. 2011, 22:13

Si le champ name_file dans ta table est un champ de type texte (char, varchar, date, text, ...), les valeurs doivent être spécifiées entre apostrophes pour être considérées comme des chaines de caractère...
  $sql = "SELECT *
            FROM contenu
            WHERE name_file = '".$id ."'" ;
Si ce n'est pas ça, une fois encore, tu peux utiliser mysql_error() pour avoir le message d'erreur sql qui te dira immédiatement quel est le problème...

Re: modification de données d'une bdd mysql

par piotrowski-s » 03 avr. 2011, 13:39

j'ai fais deux modifications. d'une part, celle qui permet de récupérer l'enregistrement de la bdd que l'on souhaite modifier. voici le code:
<?//requête SQL:
    $sql = "SELECT *
	      FROM contenu
	      ORDER BY name_file" ;
 
    //exécution de la requête:
    $requete = mysql_query( $sql ) ;
 
    //affichage des données:
    while( $result = mysql_fetch_object( $requete ) )
    {
       echo(
           "<div align=\"left\">"
           .$result->name_file.
           "&nbsp;&nbsp;&nbsp<a href=\"edit-page-2.php?name_file=".$result->name_file."\">modifier</a></div>\n"
       ) ;
    }?>
De ce côté la, ça fonctionne correctement, ainsi l'utilisateur n'a qu'a cliquer sur le lien pour modifier ce qu'il souhaite.
ensuite le lien est de type: edit-page-2.php?name_file=art-temporel
Dans la page edit-page-2.php, j'ai le code suivant:
	<?
  $id  = $_GET["name_file"] ;
 
  //requête SQL:
  $sql = "SELECT *
            FROM contenu
	    WHERE name_file = ".$id ;
 
  //exécution de la requête:
  $requete = mysql_query( $sql ) ;
 
  //affichage des données:
  if( $result = mysql_fetch_object( $requete ) )
  {
  ?>
j'ai bien modifié la methode GET mais pour la suite, j'ai toujours la même erreur, en sachant que la connexion à la base de donnée est OK, la sélection de la table aussi. Je ne vois pas d'ou cela peut venir.

Re: modification de données d'une bdd mysql

par piotrowski-s » 03 avr. 2011, 11:54

				<?
  $id  = $_POST["modif"] ;
 
  //requête SQL:
  $sql = "SELECT *
            FROM contenu
	    WHERE name_file = ".$id ;
 
  //exécution de la requête:
  $requete = mysql_query( $sql ) ;
 
  //affichage des données:
  if( $result = mysql_fetch_object( $requete ) )
  {
?>
Bon et bien j'ai vu et revu toutes ces lignes de code:
Pour ma part la connexion et selection de base de donnée et de table se fait correctement, les champs demandés de la requête existent bien.
Maintenant je ne sais pas ce qui se passe. quelqu'un aurait il une idée, ou une suggestion?

Par avance merci.

Re: modification de données d'une bdd mysql

par piotrowski-s » 03 avr. 2011, 11:29

Donc à priori, ça ne vient pas d'un problème de connexion à la base de données, car j'ai le code suivant en haut de ma page:
<?
//insertion de fichier de configuration
require("../_include/config/config.inc.php");
// connection et selection de la base ce donnée
$connect=mysql_connect($host,$login,$pass) or die ("Connection impossible");
mysql_select_db($base,$connect) or die ("selection impossible");
?>
<?php
 
session_start();  
if (!isset($_SESSION['loginadmin'])) { 
   header ('Location: index.php'); 
   exit();  
}  
?>
et s'il y avait eu un problème de connexion, j'aurais été redirigé vers la page index.

je pencherais plutôt vers une erreur de requête mais je vois pas ou...

Re: modification de données d'une bdd mysql

par piotrowski-s » 03 avr. 2011, 10:54

j'ai essayé de revoir la synthexa mais la j'avoues que je suis perdu.

Re: modification de données d'une bdd mysql

par piotrowski-s » 03 avr. 2011, 10:37

oui ces trois éléments sont correct et la connexion avec la bdd se fait bien car sans son login on ne peut acceder a la page de modifs.

Re: modification de données d'une bdd mysql

par Ryle » 03 avr. 2011, 10:21

A priori, si cela correspond bien à la ligne 156 de ton code, tu as une erreur ici :
if( $result = mysql_fetch_object( $requete ) )  { 
PHP te dis que $requete n'est pas une ressource mysql valide et qu'il ne peut donc pas la traiter avec mysql_fetch_object()

Cela veut dire que ta requête n'a pas pu être exécutée (problème de connexion a la bdd ?) ou est incorrecte (tu as bien une table "contenu" qui contient un champ "name_file" ?)

mysql_error() t'apportera plus d'information sur le problème rencontré lors de l'exécution de la requête :)

modification de données d'une bdd mysql

par piotrowski-s » 03 avr. 2011, 10:14

Bonjour, à tous, j'ai des informations stockées dans la bdd, et j'aimerais que les utilisateurs qui le souhaitent puissent les modifiers.
j'ai donc le code ci dessous:
<? 
				 $id = $_POST["modif"] ;     
				 $sql = "SELECT *  FROM contenu  WHERE name_file = ".$id ;    
				 
				 $requete = mysql_query( $sql ) ;    
			
				 if( $result = mysql_fetch_object( $requete ) )  {  ?>Nom du fichier&nbsp;</font></p>
            </td>
            <td width="31%">
                <p><input type="text" name="name_file" size="50" value="<?php echo($result->name_file) ;?>">
 <a href="#" class="info"><img src="images/con_info.png" width="16" height="16" border="0"><span>Le nom de votre fichier qui portera automatiquement l'extension .html<br>Exemple: Pour la page d'Accueil<br><img src="images/info1.jpg"></span></a></p>
            </td>
        </tr>
        <tr>
            <td width="5%">
                <p><font color="black">Categorie: </font></p>
            </td>
            <td width="31%">
                <p><input type="text" name="name_category" size="50" value="<?php echo($result->name_category) ;?>"> <a href="#" class="info"><img src="images/con_info.png" width="16" height="16" border="0"><span>Il s'agit du nom de la Rubrique tel que vous souhaitez la voir apparaitre dans le menu</span></a></p>
            </td>
        </tr>
        <tr>
            <td width="5%">
                <p><font color="black">Titre de la page: </font></p>
            </td>
            <td width="31%">
                <p><input type="text" name="title_page" size="50" value="<?php echo($result->title_page) ;?>"> <a href="#" class="info"><img src="images/con_info.png" width="16" height="16" border="0"><span>Il s'agit du titre de la page tel qu'il sera indexé par les moteurs de recherche<br>Exemple: titre apparaissant sur un moteur de recherche (encadré en rouge dans l'exeple ici présent)<br><img src="images/info2.jpg"></span></a></p>
            </td>
        </tr>
        <tr>
            <td width="5%" valign="top">
                <p><font color="black">Description: </font></p>
            </td>
            <td width="31%" align="left" valign="middle">
                <p><textarea name="description" rows="4" cols="38" value="<?php echo($result->description) ;?>"></textarea> <a href="#" class="info"><img src="images/con_info.png" width="16" height="16" border="0"> <span>Il s'agit de la description des pages indexées telle que reprise par les moteurs de recherche<br>Exemple: avec un moteur de recherche (encadré en rouge dans le cas présent)<br><img src="images/info3.jpg"></span></a></p>
            </td>
        </tr>
        <tr>
            <td width="5%" align="left" valign="top">
                <p><font color="black">Mots Clés: </font></p>
            </td>
            <td width="31%">
                <p><input type="text" name="key_words" size="50" value="<?php echo($result->key_words) ;?>"> <a href="#" class="info"><img src="images/con_info.png" width="16" height="16" border="0"><span>Il s'agit d'une liste de mots clés permettant de vous trouver sur les moteurs de recherche<br>Exemple: pour la description "Asplosion spécialisée dans la conception de site web statique et dynamiques"<br>Les mots clés qui nous intéresserons sont: Asplosion, site web, statique, dynamique<br><font color="red>NB:
Le sépareteur utilisé est la virgule
"," entre chaque mots, les mots peuvent aussi être des expressions dans l'exemple précédent nous avons l'expression "site web", dans le cas présent une expression compte pour un seul mot clé.></font></span></p>
            </td>
        </tr>
    </table>
&nbsp;    <p>Contenu: <br>
<textarea cols="80" id="body" name="body" rows="10"><?php echo($result->body) ;?></textarea>
    <script type="text/javascript">
    //<![CDATA[
     
    // This call can be placed at any point after the
    // <textarea>, or inside a <head><script> in a
    // window.onload event handler.
     
    // Replace the <textarea id="editor1"> with an CKEditor
    // instance, using default configurations.
    CKEDITOR.replace( 'body', {
            filebrowserBrowseUrl : 'browser/index.php?editor=ckeditor',
            filebrowserImageBrowseUrl : 'browser/index.php?editor=ckeditor&filter=image',
            filebrowserFlashBrowseUrl : 'browser/index.php?editor=ckeditor&filter=flash',
        }
    );
     
    //]]>
    </script>
    
 
</p>
    <p><input type="submit">
</p>
</form>
                </div>
                <p>&nbsp;</p>
            </div>
        </td>
        <td background="images/paneau_09.png" align="left" valign="top" width="73">
            <table id="Tableau_01" width="75" height="300" border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td>
                        <p>			&nbsp;</p>
                        <p><a href="upload.php"><img src="images/menuright_01.png" width="75" height="73" alt="" border="0" vspace="0" hspace="0"></a></p>
                    </td>
                </tr>
                <tr>
                    <td>
			<a href="../index.php"><img src="images/menuright_02.png" width="75" height="77" alt="" border="0" vspace="0" hspace="0"></a></td>
                </tr>
                <tr>
                    <td>
			<a href="#"><img src="images/menuright_03.png" width="75" height="88" alt="" border="0" vspace="0" hspace="0"></a></td>
                </tr>
                <tr>
                    <td>
			<img src="images/menuright_04.png" width="75" height="62" alt=""></td>
                </tr>
            </table>
        </td>
    </tr>
    <tr>
        <td>
			<img src="images/paneau_10.png" width="73" height="32" alt=""></td>
        <td height="32" width="1134" background="images/paneau_11.png">
            <p align="center"><b><font size="2" face="Verdana" color="#FFFFFF"><?php

echo 'Votre adresse IP est : '.$_SERVER['REMOTE_ADDR'];  
?></font></b></p>
        </td>
        <td>
			<img src="images/paneau_12.png" width="73" height="32" alt=""></td>
    </tr>
<?php
  }//fin if 
  ?>
Mais ce code me renvoie une erreur, et après avoir cherché un peu partout, je ne vois pas d'ou cela vient. J4ai pourtant veillé scrupuleusement à respecter la syntaxe du code. enfin voila l'erreur qu'il me renvoie:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/www/asplosion.com/htdocs/admin/edit-page-2.php on line 156

quelqu'un saurait il ce qui ne va pas dans mon code?
d'avance merci