8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je n'ai pas programmé en php et mysql depuis des années
et maintenant je suis coincé par la nouvelle version de MySql (4.1.9).
Autant mes sites fonctionnaient parfaitement autant maintenant je suis perclu de bugs.

Je vous donne un exemple. Si vous voyez où est la faille je vais essayer de comprendre et avancer parce que jusque là j'y perds mon latin... Ai-je mal créé ma table ? Ai-je mal formulé ma requète ? Je n'en sais rien...

Je vous est mis ce que j'ai entré avec PhpMyAdmin dans MySql et aussi le petit bout de script.

Problème : il n'écrit pas le nombre de visites ($visit). Depuis 2 jours je suis dessus, j'ai tout essayé avec mes connaissances mais il s'obstine a rester muet.

<?

$serveur="localhost";
$user="root";
$passwd="";
$bdd="Whombat";

mysql_connect($serveur, $user, $passwd);

$query="$bdd, SELECT nb FROM compteur where 1";
$visit=mysql_query($query);

$newNb=$visit+1;

$instruction="UPDATE compteur SET nb='$newNb' where 1";
$res=mysql_query( $instruction);

mysql_close();

echo "<TABLE><TR><TD>
<FONT face='Digital SF, Times New Roman, Verdana, Arial, Helvetica' color='lime'>
<B>$visit</B>
</TD></TR></TABLE>";

?>


Base de données Mysql : whombat
Table Mysql : compteur

Champ | Type | Null | Défaut |
----------------------------------------
num | tinyint(4) | Non | 1 |
nb | bigint(20) | Non | 163256 |


Index: |Nom de la clé | Type | Cardinalité | Champ |
-------------------------------------------------------
| num | INDEX | aucune | num |
Bonjour,

Déjà tu devrais rajouter php apres ton <? .

Ensuite ta requete est mauvaise je pense car tu n'as pas fait de mysql_fetch_assoc ou autre pour recupere les donner de ton mysql_query dans se style :

$visit=mysql_query($query);
$donne=mysql_fetch_assoc($visit);
$visit=$donne['nb'];
$newNb=$visit+1;


Et je trouve bizarre de mettre ta base de donner dans ta requete apres ton mysql_connect, appel cette fonction :

mysql_select_db($bdd)


Et enleve le de ta requête.

Edit: Pense a utilisé les balise [ code] pour encadre le code que tu donnes pour une meilleur lisibilité.
Modifié par Halindel (11 Oct 2007 - 10:23)
En plus de ce qu'a dit Halindel, essaie aussi de corriger ceci

$query="$bdd, SELECT nb FROM compteur where 1";  /* c'est quoi le 1 */


Après le where doit se trouver une condition.
Modifié par oualad (12 Oct 2007 - 23:20)
Administrateur
ce n'est pas important, l'optimiseur de requête mysql le supprime instantanément. cela équivaut à "pas de condition".