[PHP] Insertion news ds BDD

Insertion news ds BDD [PHP] - PHP - Programmation

Marsh Posté le 24-06-2003 à 01:35:17    

Salut,
 
bon j'ai un chtit pb concernant l'insertion de news ds une bdd, je m'explique.
 
J'ai un fichier global_db.php qui contient les données concernant la BDD:
 

Code :
  1. <?
  2. // Déclaration des données relatives à la connexion BD
  3. $dsn = array(
  4.   'hosntname' => "localhost:3306", // Addresse du serveur MySQL
  5.   'username'  => "xxx",    // Nom de l'utilisateur
  6.   'password'  => "xxx",    // Mot de pass
  7.   'dbname'  => "mabdd"   // Nom de la BDD
  8.   );
  9. ?>


 
Ensuite j'ai un fichier admin.php qui, par le biais de switch, gère les news, l'upload de fichier et les utilisateurs.
 

Code :
  1. include ("tools.php" );
  2. session_start();
  3. $id   = $HTTP_GET_VARS['id'];
  4. $id_admin = $HTTP_GET_VARS['id_admin'];
  5. $id_news = $HTTP_GET_VARS['id_news'];
  6. $id_up  = $HTTP_GET_VARS['id_up'];
  7. $act  = $HTTP_GET_VARS['act'];
  8. $login  = $HTTP_POST_VARS['login'];
  9. $password  = $HTTP_POST_VARS['password'];
  10. $news_tab = array ($HTTP_GET_VARS['titre'], $HTTP_GET_VARS['texte'], $HTTP_GET_VARS['source'], $HTTP_GET_VARS['pole']);
  11. if ($login && $password) {    
  12.      $password = md5($password);
  13.      $query = "SELECT * FROM user WHERE login = '$login' AND password = '$password' AND admin = 1";
  14.      $result = db_doquery($dsn, $query);
  15.    
  16.      if (mysql_num_rows($result)>0) {
  17.         $ligne = mysql_fetch_array($result);
  18.         $admin = $ligne["admin"];
  19.      
  20.   if ($admin == 1 ) {
  21.    $valid_user = $login;
  22.    session_register("valid_user" );
  23.             session_register("admin" );
  24.         }
  25.      }
  26.     }
  27. ?>...
  28. <?
  29.      // Gestion des News
  30.      switch ($id_news) {
  31.       case '1' : news_form ();
  32.        break;
  33.       case '2' :
  34.        break;
  35.       case '3' : news_listing (2);
  36.        break;
  37.       default  :
  38.        break;
  39.      }
  40.      switch ($act) {
  41.      case '1' : news_insert($news_tab);
  42.       break;
  43.      case '2' : news_delete($id_news);
  44.       break;
  45.      case '3' : news_modify($id_news);
  46.       break;
  47.      }
  48.     //elseif ($id_admin ='2') {
  49.      // Upload Fichier
  50.     //}
  51.    ?>


 
Puis la fonction qui gère l'insertion dans le fichier tools_admin_news.php :

Code :
  1. function news_insert ($news_tab) {
  2.  // Insertion d'une news
  3.  $titre   = $news_tab[0];
  4.  $contenu = $news_tab[1];
  5.  $source  = $news_tab[2];
  6.  $pole  = $news_tab[3];
  7.  $temps  = date("Y-m-d" );
  8.         $query = "INSERT INTO news (titre, contenu, pole, date, source) VALUES (\"$titre\",\"$contenu\",\"$pole\",\"$temps\",\"$source\" )";
  9.  echo "query:".$query."<br />";
  10.  $result = db_doquery ($dsn, $query);
  11. }


 
Dans le fichier tools_db.php :

Code :
  1. function db_doquery($dsn, $query) {
  2.  $link = db_connect($dsn);
  3.  db_select($dsn, $link);
  4.  $result = db_query($link, $query);
  5.  db_disconnect($link);
  6.  return $result;
  7. }


 
Dès lors que je passe dans ma fonction db_doquery, il ne trouve pas le champ dbname et donc ne peut sélectionner la bdd.
Je ne comprends plus rien, car j'utilise le meme fichier global_db.php pour afficher mes news et il ne pose pas de pb lors de la selection de la bdd so je vois pas ce qui peut se passer ici.
 
Si qlq1 à une idée ou si g po été assez clair plizzz let me now ^^
 
++
 
PS: Dans tools.php je fais les include des différents fichiers nécessaires (tools_db.php, global_db.php, tools_admin_news.php)


Message édité par dirakocha le 24-06-2003 à 01:42:24

---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 24-06-2003 à 01:35:17   

Reply

Marsh Posté le 24-06-2003 à 09:19:48    

hum.. j'utilse pas les fonctions.. donc je connais pas trop... mais ya pas un probleme de déclaration de variable la?

Reply

Marsh Posté le 24-06-2003 à 09:37:05    

il faut passer l'argument en paramètres a ta foncion ou déclarer ta variable en globale  [:spamafote]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 24-06-2003 à 11:42:40    

Ben ce que je n'arrive pas à saisir c'est que dans le même fichier je fais un appel a la fonction db_doquery pour l'authentification et que plus loin pour insérer la news il bug et ne trouve pas la bdd dans le tableau $dsn['dbname']  :??:  
c'est bizarre...
Je continue à chercher et à m'arracher les cheveux  :(  si qlq1 a une autre idée, je prends et je vais tester le coup de la variable global.
 
++


---------------
Q.G Tutoriaux ici
Reply

Marsh Posté le 24-06-2003 à 13:33:35    

bah faut décllarer tes variables dans la fonction comme globale...
 
global $tavar;
 
encore une fois je dis peut etre des conneries les fonctions j'utilise pas...

Reply

Marsh Posté le 24-06-2003 à 15:32:50    

Bon ben j'ai testé avec var global est c po mieux, par contre g progressé, maintenant il me bloque juste à l'insertion de la news. En fait g tt remplacé par les fonctions mysql_ et ca roule juska l'insertion.
La boom me dit erreur lors de l'insertion de la requête.


---------------
Q.G Tutoriaux ici
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed