une erreur de plus

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 : une erreur de plus

par sadeq » 28 sept. 2006, 14:38

ton programme n'a aucune chance de s'exécuter normalement puisqu'il est contradictoire de A à Z. Je m'explique:

Le souci majeur est que tes requêtes ne respectent pas la définition de ta table :
mysql_query("CREATE TABLE IF NOT EXISTS 'compteur_visite'(`id` int(11) NOT NULL auto_increment,`nom` varchar(30) NOT NULL default '',PRIMARY KEY (`id`))");
On voit bien que cette table contient 2 champs : id et nom
alors que les requêtes INSERT et UPDATE ne respectent pas cette structure.

Le problème est dans ta conception du nombre de visites et de la façon de le calculer.

Par exemple, tu as bien calculé le nombre $nb par requête au début mais après tu es rentré dans un autre recalcul dont on comprend pas l'aboutissement.

A mon avis, s'il faut discuter sur quelque chose, ça serait sur "comment souhaites-tu gérer ce compteur de visites" tout en mettant de côté ce programme à refaire.

par iclo » 28 sept. 2006, 14:01

Pour iclo >> je faisait comment pour savoir qu'il sagissait d'un probleme de base de donnée ? je suis débutant !
Je pense que vu le code sur lequel tu planchais, et tes messages précédent, il est fortement problable que tu avais compris que tu étais en train d'essayer d'accéder à une base de donnée. et donc que tu pouvais comprendre sur quel forum poster.
Le forum est là pour aider des débutants, mais pour que cela ce fasse dans de bonne condition, il est demandé de lire les règles du forum avant de commencer à poster, c'est tout :wink: :wink:

par Ryle » 28 sept. 2006, 12:32

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\ext-files.com\visites.php on line 5
Le problème vient du fait que l'argument que tu passes à mysql_numrows() n'est pas une ressource mysql valide.

Donc dans l'ordre, vérifie que ta requête sql est bonne en la jouant dans phpMyAdmin et/ou en ajoutant un "or die(mysql_error())" après le mysql_query().

Est ce que la table a bien été créée ? ajoute un or die sur celle la aussi pour savoir s'il y a des erreurs ou non (personnellement j'enelverais les apostrophes autour du nom de la table.. ca changera peut être rien, mais ca montre bien qu'on peut s'en passer ;))

Si le problème ne vient pas de la, vérifie la connexion à la base avec des or die au moment des mysql_db_connect et mysql_select_db();

par zigz4g » 28 sept. 2006, 12:19

Normallement c'est le driver qui arrive a faire la requette correctement avec ou sans la terminaison (";").
Le probleme vient d'ailleur.
Pour mysql_numrows c'est un alias sur mysql_num_rows pas de probleme.
Que te retourne cette fonction ?
<?php
//.... Ton code avant ici
$nb = mysql_numrows($requete);
var_dump($nb);
?>

par fred9999 » 28 sept. 2006, 10:50

non non une requete sql c'est ça :

Select * From matable where num='1';

donc $query c'est ça :

$query="
Select * From matable where num='1';";

par ptitgenie69 » 28 sept. 2006, 10:42

Pour iclo >> je faisait comment pour savoir qu'il sagissait d'un probleme de base de donnée ? je suis débutant !

Pour fred9999 >> merci de l'indication, je vais essayer. par contre, j'ai bien mis mes ; à la fin de chaque ligne de codes ?

par fred9999 » 28 sept. 2006, 09:08

salut

alors alors bon :

1- utilise les bonnes fonctions : mysql_numrows n'existe pas mais mysql_num_rows oui !!!!

2- ensuite moi quand j'étais à l'école on m'en faisait tout un plat pour
etre carré sur mon code hors : dans toutes tes requetes il manque le ";"
à la fin :!: bon ça à la limite tout le monde s'en fout apparamment !!!

3- essaye voir si ça vient de ça @ +

par iclo » 28 sept. 2006, 00:59

Alors dans l'ordre:

1) Poste dans le bon forum, tu as clairement un problème de base de donnée, donc tu aurais du poster dans le forum base de donnée, et pas dans "débuter en php".
2) Dans ce forum, tu aurais notamment pu lire ceci qui explique comment isoler et résoudre un problème de base de donnée. http://www.phpfrance.com/forums/voir_sujet-19378.php

3) Donne des titres explicites à tes messages (les règles du forum), si tu postes sur ce forum, il y a 95% pourcent de chance que ça soit parce que tu as u problème avec quelque chose.

4) Utilises les balises php et non code pour poster du code, histoire que ce soit plus facile à lire.

une erreur de plus

par ptitgenie69 » 28 sept. 2006, 00:34

bonsoir, alors voici ptit code :

Code : Tout sélectionner

<?php include("config.php"); mysql_query("CREATE TABLE IF NOT EXISTS 'compteur_visite'(`id` int(11) NOT NULL auto_increment,`nom` varchar(30) NOT NULL default '',PRIMARY KEY (`id`))"); $requete = mysql_query("select * from compteur_visite"); $nb = mysql_numrows($requete); // On regarde le nombre d'enregistement if($nb == 0) { // si il y a 0 enregistrement on ajoute des données mysql_query("insert into compteur_visite values('1')"); } else // sinon on passe { // et on met à jour le nombre de visite mysql_query("update compteur_visite set nb=nb+1"); } // Affiche le nombre de visite // Sélection de la table $requete = mysql_query("select * from compteur_visite"); // et on affiche le nombre de visite $j = mysql_fetch_array($requete); $nb = $j[nb]; print $nb.' visiteurs au total'; // On ferme la connection mysql_close(); ?>
et voici mes erreus :

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\ext-files.com\visites.php on line 5

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\ext-files.com\visites.php on line 25

Notice: Use of undefined constant nb - assumed 'nb' in c:\program files\easyphp1-8\www\ext-files.com\visites.php on line 26

et perso, je trouve pas !!!!!!!!!!