Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2006, 01h57   #1
Membre du Club
 
Inscription : avril 2002
Messages : 612
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 612
Points : 58
Points : 58
Par défaut [Conception] probleme d'enregistrement dans une table

salut ,j'ai un probleme à enregistrer des donnée dans ma table mon code est le suivant
Code :
1
2
3
4
5
6
7
 
[FONT=Courier New]     $sql = "INSERT INTO infos_tbl(id, nom, prenom,email, icq, titre, url) VALUES('','$nom','$prenom','$email','$icq','$titre','$url')"[/FONT][FONT=Courier New]; 
 
    [/FONT][FONT=Courier New]
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error[/FONT][FONT=Courier New]()); [/FONT]
le message d'erreur est le suivant:
Code :
1
2
3
 
Erreur SQL !INSERT INTO info_tbl(ip,name,time,date,description) VALUES('127.0.0.1','','','','')
La table 'ma_base.info_tbl' n'existe pas
k_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 02h09   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Je vois dans ton code
Citation:
infos_tbl
et dans l'erreur
Citation:
info_tbl
Est-ce normla tu t'es pas trompé de table ? ou de code ?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 10h46   #3
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
en effet, y'a pas que ca qui est différent, toute la requete est différente
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 13h45   #4
Membre du Club
 
Inscription : avril 2002
Messages : 612
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 612
Points : 58
Points : 58
l'erreur n'est pas dans le nom de la table.
ce que je veut est juste d'ecrire une donnée dans ma table.
k_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 15h52   #5
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
On a bien compris ce que tu voulais... Mais toi tu n'a pas compris notre remarque:

Ta requete:
Code :
1
2
 
$sql = "INSERT INTO infos_tbl(id, nom, prenom,email, icq, titre, url) VALUES('','$nom','$prenom','$email','$icq','$titre','$url')"
Ton message d'erreur:
Code :
1
2
3
 
Erreur SQL !INSERT INTO info_tbl(ip,name,time,date,description) VALUES('127.0.0.1','','','','')
La table 'ma_base.info_tbl' n'existe pas
1) si tu compares, le message d'erreur n'est pas DU TOUT en rapport avec la requete
2) le message d'erreur t'indique clairement que la table info_tbl n'existe pas.

Je ne vois pas ce qu'on peut faire de plus pour toi dans ce cas...
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 19h34   #6
Membre du Club
 
Inscription : avril 2002
Messages : 612
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 612
Points : 58
Points : 58
la table existe et je l'ai crée avec phpMyAdmin.
voila le bout de code qui est avant et me sert pour me connecter à ma base

Code :
1
2
3
4
5
6
7
 
$db = mysql_connect('localhost','root','')
or die('connexion impossible');
// sélection de la base
mysql_select_db('55379',$db);
 
$ip=$_SERVER['REMOTE_ADDR'];
k_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 19h41   #7
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Pourrais tu mettre le code php-sql de la connection + insertion des nouveaux éléments dans la bdd.

Car selon ton erreur, on dirait que c'est même pas de cette table que vient le problème.

Recherche la ligne qui parle de
Code :
1
2
 
info_tbl(ip,name,time,date,description)
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 22h11   #8
Membre du Club
 
Inscription : avril 2002
Messages : 612
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 612
Points : 58
Points : 58
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<?
 
// connexion à la base de données
$db = mysql_connect('localhost','root','')
or die('connexion impossible');
 
// sélection de la base
mysql_select_db('55379',$db);
 
$ip=$_SERVER['REMOTE_ADDR']; //recuperation de l'ip
 
// on écrit la requête sql
    $sql = "INSERT INTO info_tbl(ip,name,time,date,description) VALUES('$ip','me','22:25','25/02/2006','neon')";
 
    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
 
// fin de la connexion
mysql_close();
?>
cette fois j'ai le message suivant
Code :
1
2
Erreur SQL !INSERT INTO info_tbl(ip,name,time,date,description) VALUES('127.0.0.1','me','22:25','25/02/2006','neon')
Duplicata du champ '127.0.0.1' pour la clef 1
k_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2006, 23h12   #9
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
Bon et bien maintenant, comme le message d'erreur l'indique toujours, le champ 'ip' dans ta base de donnée est un champ qui se doit d'être unique (clé primaire par exemple), d'où l'erreur 'Duplicata du champ 127.0.0.1' ... Tu as essayé d'insérer plus qu'une fois des données avec ip = 127.0.0.1.
Si c'est une table qui sert à faire des logs, tu pourrais rajouter un autre champ nommé 'id' qui serait simplement auto_increment et clé primaire. Enlève ensuite le champ 'ip' de cette clé primaire (ou s'il a l'attribut unique, enlève le).
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2006, 01h51   #10
Membre du Club
 
Inscription : avril 2002
Messages : 612
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 612
Points : 58
Points : 58
oui il y a aucun message d'erreur.
je veut afficher le resultat maintenat mais sa ne marche pas exactement comme attendue.
mon code pour afficher le contenue de la table est :
Code :
1
2
3
4
5
6
 
$SQL = "SELECT ip FROM info_tbl" ;
            $result = mysql_query($SQL) or die('Erreur SQL : '.mysql_error());
            while ($val = mysql_fetch_array($result)){
               echo "$val";
            }
mais comme resultat j'ai la ligne suivante
Code :
ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
k_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2006, 02h00   #11
Membre Expert
 
Avatar de Nemesys
 
Étudiant
Inscription : mars 2006
Messages : 1 910
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 1 910
Points : 2 086
Points : 2 086
Nemesys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2006, 03h33   #12
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Voilà comment faire pour traiter les données récupérer de la bdd
Citation:
Envoyé par FAQ
Traitement du résultat : Maintenant que nous avons le résultat de la requête, il faut encore le faire parler. Pour parcourir l'ensemble des enregistrements du résultat, on peut procéder de la manière suivante :
Code :
1
2
3
while($ctItem = mysql_fetch_array($resultat)){
    //Ici la variable $ctItem contient un tableau de l'élément courant
}
Pour plus de clarté, on peut affecter des variables aux éléments du tableau :
Code :
1
2
3
4
5
while($ctItem = mysql_fetch_array($resultat)){
    $nom = $ctItem[0];
    $prenom = $ctItem[1];
    echo = "Le prénom est $prenom et le nom $nom<br/>";
}
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2006, 23h27   #13
Membre du Club
 
Inscription : avril 2002
Messages : 612
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 612
Points : 58
Points : 58
mais pourquoi elle m'affiche la ligne plein de Array?
mon code resemble à celui proposer par Kerod ,et sa me donne cette valleur ?
k_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2006, 23h38   #14
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Tu trouves que ca ressemble ??? Pas moi...
teste comme ceci :
Code :
1
2
3
 while ($val = mysql_fetch_array($result)){
               echo $val['ip'];
            }
ou
Code :
1
2
3
 while ($val = mysql_fetch_array($result)){
               echo $val[0];
            }
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h31.


 
 
 
 
Partenaires

Hébergement Web