No data base selected

sabrine -  
Alain_42 Messages postés 5413 Statut Membre -
j ai se msg d'erreur qui va me tuer :
Erreur SQL !INSERT INTO utilisateurs VALUES("","sabrine","F","23","14-03-11")
No database selected

malgré que tt est bien , je ne trouve pas ou est l'erreur svp aider moi !!!

voila le code de mon fichier conx.php
<?php
function connectMaBase(){
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('mabase', $base) ;
}
?>
et le code de mon fichier form.php
<?php
include("conx.php");
?>
<html>
<head><title>Formulaire de saisie utilisateur </title></head>
<body>
<h1>Inscrivez-vous !</h1>
<h2>Entrez les données demandées :</h2>
<form name="inscription" method="post" action="form.php">
Entrez votre pseudo : <input type="text" name="pseudo"/> <br/>
Garçon ou fille ? <input type="radio" name="sexe" value="G"/>Garçon<input type="radio" name="sexe" value="F"/>Fille<br/>
Entrez votre age : <input type="text" name="age"/><br/>
<input type="submit" name="valider" value="OK"/>
</form>
<?php
if (isset ($_POST['valider'])){
//On récupère les valeurs entrées par l'utilisateur :
$pseudo=$_POST['pseudo'];
$age=$_POST['age'];
$sexe=$_POST['sexe'];
//On construit la date d'aujourd'hui
//strictement comme sql la construit
$today = date("y-m-d");
//On se connecte
connectMaBase();

//On prépare la commande sql d'insertion
$sql = 'INSERT INTO utilisateurs VALUES("","'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")';

/*on lance la commande (mysql_query) et au cas où,
on rédige un petit message d'erreur si la requête ne passe pas (or die)
(Message qui intègrera les causes d'erreur sql)*/
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion
mysql_close();
}
?>
</body>
</html>
et le code de mon base de donnée
-- phpMyAdmin SQL Dump
-- version 3.4.9
-- http://www.phpmyadmin.net
--
-- Client: 127.0.0.1
-- Généré le : Mar 11 Mars 2014 à 15:27
-- Version du serveur: 5.5.20
-- Version de PHP: 5.3.9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: ' mabase'
--

-- --------------------------------------------------------

--
-- Structure de la table 'utilisateurs'
--

CREATE TABLE IF NOT EXISTS 'utilisateurs' (
'ID' int(11) NOT NULL AUTO_INCREMENT,
'pseudo' varchar(15) NOT NULL,
'sexe' char(1) NOT NULL,
'age' int(3) NOT NULL,
'dateInscription' date NOT NULL,
PRIMARY KEY ('ID')
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

--
-- Contenu de la table 'utilisateurs'
--

INSERT INTO 'utilisateurs' ('ID', 'pseudo', 'sexe', 'age', 'dateInscription') VALUES
(1, 'Lili ', 'F', 18, '2009-01-02'),
(2, 'Toto', 'G', 13, '2008-01-02'),
(3, 'Loulou', 'G', 25, '2008-12-30'),
(4, 'Zézette', 'F', 20, '2009-01-02'),
(5, 'Mimi ', 'F', 15, '2009-01-10');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

2 réponses

Mambo5
 
Bonjour,

Deux petites questions, lors de ton Insert dans ta database
INSERT INTO utilisateurs VALUES("","'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")


Je ne suis pas un expert en mysql mais tu devrais essayer en ajoutant le nom de tes attributs

INSERT INTO utilisateurs (attribut1, pseudo, sexe, age, date_d) VALUES("","'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")


Et le problème vient peut être du champ attribut1 que tu initialise a ""
Pourquoi tu fais cela ?
Si c'est un ID en auto incrementation, tu n'as pas besoin de le remplir et du coup tu fais simplement

INSERT INTO utilisateurs (pseudo, sexe, age, date_d) VALUES("'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")


Sinon je n'ai pas vu d'erreur majeur.

Cordialement,
0
Alain_42 Messages postés 5413 Statut Membre 904
 
je crois détecter une petite erreur:

ton message dit bien No database selected, cela veut dire qu'il y a un pb au niveau de la ligne mysql_select_db(....)

dans ton code de création base tu as:
Base de données: ' mabase'

et mysql_select_db ('mabase', $base) ;

y aurait-il pas un petit espace qui traine avant le nom de la base ?
0