Selectionner champ&limiter un script a une fois

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 : Selectionner champ&limiter un script a une fois

par ouckileou » 20 déc. 2006, 18:57

Nouveau problème, nouveau sujet. Merci.

(D'autant que personne ne viendra voir un sujet marqué Résolu)

par dr.smoogy » 20 déc. 2006, 18:44

Nouveau petit problème en rapport avec le précedent:

J'ai ceci une page qui dit:

if(champ>6){
(1)
else{
(2)
}

le (1) consiste a dire, modifier la valeur du champs trouvez précedement (vous vous souvenez la collone en fonction du jour) en lui ajoutant +1.

Le truc c'est que je veux que quand on arrive sur cette page, sa ne rajoute pas 1 a chaque fois, mais une seul fois par heure..

comment définir cela ?

merci

par Ajoloca » 20 déc. 2006, 15:39

Re,

C'est moi qui ai supprimé le mien
Je comprends pourquoi, j'aurais du moi aussi j'ai dis n'importe quoi :oops:
Tu est tombé dans le même piège que moi.

par ouckileou » 20 déc. 2006, 15:34

Re,

C'est moi qui ai supprimé le mien
Je comprends pourquoi, j'aurais du moi aussi j'ai dis n'importe quoi :oops:

par dr.smoogy » 20 déc. 2006, 15:14

Merci ca marche voila le code au complet juste pour info:
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("schoolgame");
$chp_date = date("l");
$qrySelect = "SELECT $chp_date FROM planing";
$reponse = mysql_query($qrySelect ) or die('ERR_SQL:<br />' . $qrySelect . '<br />' . mysql_error()); 
while ($donnees = mysql_fetch_array($reponse) )
{
echo $donnees["$chp_date"];
}

mysql_close(); 

?>
a+

par Ajoloca » 19 déc. 2006, 21:19

Re,

C'est moi qui ai supprimé le mien

par ouckileou » 19 déc. 2006, 20:08

En effet, ce n'est pas e nom de la table qui change mais le nom de la colonne, donc ceci n'est pas bon :
$qrySelect = "SELECT $date FROM planing"; 
Il faudrait t'inspirer de la requête d'Ajoloca, mais en rendant dynamique le nom de la colonne.

Edit : ah ben un message a disparu le temps de poster...

par ouckileou » 19 déc. 2006, 19:57

Non, ce sont bien les noms de ses colonnes qui correspondent au nom du jour, et non leur contenu :
J'ai une table, qui contient 7 champs, chaque champs est le nom d'un jour, Monday,...
Ce code est donc presque bon :
while ($donnees = mysql_fetch_array($reponse) )
{
echo $donnees['$date'];
} 
À ceci près qu'en utilisant les apostrophes autour de $date, c'est littéralement "$date" qui est utilisé (et non le contenu de la variable $date) ce qui ne correspond à rien comme indice de tableau.

Remplace les apostrophes par des guillemets.
C'est toujours comme ça :
guillemets => variables remplacées par leur contenu
apostrophes => noms de variables utilisés directement

par Ajoloca » 19 déc. 2006, 19:38

Re,

Dans ce cas c'est dans la requête qye ça se passe
$qrySelect = "SELECT $date FROM planing WHERE chp_date='" . $date . "'"; 
N'oublie pas de modifier chp_date par le nom de la colonne.

par dr.smoogy » 19 déc. 2006, 19:19

Oui, mais justement je ne veux pas que MOI je selectionne la valeur, mais que en fonction du jour que l'on est une valeur différente s'affiche.

par Ajoloca » 19 déc. 2006, 19:06

Bonjour,

C'est normal. Tu mélanges les données PHP et MySQL

quand tu fais ça
while ($donnees = mysql_fetch_array($reponse) )
{
echo $donnees['$date'];
}
Tu "fetchs" sur une ressource MySQL ($reponse) mais tu lui demandes d'utiliser une variable PHP ($date).

Ceci devrait fonctionner (modifie la valeur chp_date par le nom de la colonne qui contient la date)
while ($donnees = mysql_fetch_array($reponse) ){
   echo $donnees['chp_date'];
}

par dr.smoogy » 19 déc. 2006, 18:55

J'avais aussi esayer avec un code comme ca:
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("schoolgame");
$date = date("l");
$qrySelect = "SELECT $date FROM planing";
$reponse = mysql_query($qrySelect ) or die('ERR_SQL:<br />' . $qrySelect . '<br />' . mysql_error()); 
while ($donnees = mysql_fetch_array($reponse) )
{
echo $donnees['$date'];
}

mysql_close(); // Déconnexion de MySQL

?>
et là j'ai une erreur:

Notice: Undefined index: $date in c:\program files\easyphp1-8\www\schoolgame\planingtoday.php on line 12

par ouckileou » 19 déc. 2006, 18:46

Oui c'est normal, tu ne peux pas afficher directement le résultat :
regarde mysql_fetch_row() ou mysql_fetch_array() ou mysql_fetch_assoc() par exemple.

Selectionner champ&limiter un script a une fois

par dr.smoogy » 19 déc. 2006, 18:43

Hello,

Nouveau problème !

J'ai une table, qui contient 7 champs, chaque champs est le nom d'un jour, Monday,...

J'ai ce code qui affiche le contenu d'un des champs en fonction du jour ou l'on est !
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("schoolgame");
$date = date("l");
$qrySelect = "SELECT $date FROM planing";
$reponse = mysql_query($qrySelect ) or die('ERR_SQL:<br />' . $qrySelect . '<br />' . mysql_error()); 
echo $reponse;
mysql_close(); 

?>
Pour infos les 7 champs sont varchar..

Et au lieu de m'afficher le contenu du champ du jour php me retourne:

Resource id #4

Voila voila

Merci d'av.