Besoin d'aide pour améliorer mon script

Eléphanteau du PHP | 17 Messages

10 oct. 2010, 16:56

Bonjour Sadec,

Merci pour ton intervention.
Justement, c'est là que je ne comprends pas.
Si tu lis le début du post, je souhaite supprimé ce bloc, pour le remplacer par les infos contenu dans un fichier settings.php qui est situé dans un autre répertoire config/.
D'où le remplacement de ces 2 lignes par include '../config/settings.php';
J'ai fais la modif sur un autre fichier admin.php, et celui-ci fonctionne parfaitement.

Voici le début du code de "admin.php"
<?php
include '../config/settings.php';
//Noms de la table et leurs champs :
$champs=array(
    "carte"=>array("login","cp","ville","pays")
);
// Connexion à la base
$connexion = mysql_connect("$hote","$utilisateur","$motDePasse") or die ("Impossible de se connecter à la base de données");
// sélection de la base
mysql_select_db("$baseDeDonnees",$connexion);
// FONCTIONS DIVERSES
function Ajouter($table, $query) {
$insert=mysql_query("insert into $table set $query");
if ($insert==TRUE) {
echo "Les données ont été correctement ajoutées<br />";
}
else {
echo "Erreur lors de l'ajout des données<br />";
}
}
function Modifier($table, $query, $where) {
$update=mysql_query("update $table set $query where $where");
if ($update==TRUE) {
echo "Les données ont été correctement modifiées<br />";
}
else {
echo "Erreur lors de la modification des données<br />";
}

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

10 oct. 2010, 18:25

hé ben, tu fais la même chose dans le script insertion.php, comme ça:
 
<?php
  //connection au serveur
include '../config/settings.php';

// Connexion à la base
$connexion = mysql_connect("$hote","$utilisateur","$motDePasse") or die ("Impossible de se connecter à la base de données");
// sélection de la base
mysql_select_db("$baseDeDonnees",$connexion);


//nom:
  $login = mysql_real_escape_string($_POST['login']);
  //code postal:
  $cp = mysql_real_escape_string($_POST['cp']);
  //ville:
  $ville = mysql_real_escape_string($_POST['ville']);  
  //pays:
  $pays = mysql_real_escape_string($_POST['pays']);
  //création de la requête SQL:
  $sql = "INSERT  INTO carte (login, cp, ville, pays)
            VALUES ( '$login', '$cp', '$ville', '$pays') " ;
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
  //affichage des résultats, pour savoir si l'insertion a marché:
  if($requete)
  {
    echo("L'insertion a été correctement effectuée") ;
  }
  else
  {
    echo("L'insertion a échoué") ;
  }
?>
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 17 Messages

10 oct. 2010, 19:46

Désolé, j'ai déjà essayer, mais cela ne fonctionne pas. :non:

Donc j'ai recommencer en faisant un copier coller de ton code, mais c'est pareil. :(

Alors là, je ne vois pas ce qui se passe !!!!!! :?

ViPHP
xTG
ViPHP | 7331 Messages

10 oct. 2010, 19:56

Quel est lé déroulement du script ?
Affichage d'erreur lors de la connexion à la base de donnée ?
Affichage "L'insertion a échoué" ?
Affichage d'erreur sur le include ?

Personne n'est devin ici. :)

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

10 oct. 2010, 20:25

Il y a une erreur dans le script qui a échappé à notre vigilance, dans l'instruction :
//exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
Il faut utiliser la variable $connexion au lieu de $cnx, la correction est:
//exécution de la requête SQL:
  $requete = mysql_query($sql, $connexion) or die( mysql_error() ) ;
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 17 Messages

10 oct. 2010, 21:41

Merci Sadeq, et tous les autres pour ce magnifique travail. =D>
Je pense revenir prochainement pour d'autre renseignements, vous êtes vraiment trop fort, y-a pas c'est un métier.
J'ai déjà aperçu d'autre petit problèmes sur une autre partie de mon script, je regarde si c'est grave, et je reviens vous faire coucou !

Sadeq, ta réflexion m'a bien aidé.
En effet, j'ai passé tellement de temps sur un problème de requête SQL, que j'ai oublié de changer $connexion en $cnx.
Du coût, quand on est a fond sur un truc, on oubli de relire le code en entier et on ne voit pas un mauvais copier coller d'un ancien bout de code remis au goût du jour.

Voilà le résultat final.
 <?php
  //connection au serveur
include '../config/settings.php';

  // Connexion à la base
  $cnx = mysql_connect("$hote","$utilisateur","$motDePasse") or die ("Impossible de se connecter à la base de données");
  // sélection de la base
  mysql_select_db("$baseDeDonnees",$cnx);

  //nom:
  $login = mysql_real_escape_string($_POST['login']);
  //code postal:
  $cp = mysql_real_escape_string($_POST['cp']);
  //ville:
  $ville = mysql_real_escape_string($_POST['ville']);  
  //pays:
  $pays = mysql_real_escape_string($_POST['pays']);
  
  //création de la requête SQL:
  $sql = "INSERT  INTO carte (login, cp, ville, pays)
            VALUES ( '$login', '$cp', '$ville', '$pays') " ;
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
  //affichage des résultats, pour savoir si l'insertion a marché:
  if($requete)
  {
    echo("L'insertion a été correctement effectuée") ;
  }
  else
  {
    echo("L'insertion a échoué") ;
  }
?>