Souci en php demande de fonction
Fermé
Anto
-
10 sept. 2009 à 17:02
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 6 nov. 2009 à 18:38
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 6 nov. 2009 à 18:38
A voir également:
- Souci en php demande de fonction
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction moyenne excel - Guide
- Cette fonction n'est pas disponible actuellement tv lg - Forum Téléviseurs
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
74 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
10 sept. 2009 à 20:24
10 sept. 2009 à 20:24
C'est pas une erreur JS puisque ça marche avec un deux trois quaatre
on va mettre des traces:
on va mettre des traces:
<?php //connexion etc.. Require("./Include/function.php"); include("./Include/connexion.inc.php"); $sql = mysql_query("SELECT * FROM ".$base_page." WHERE Ecran='".$ecran." ' OR Ecran='1' ") or die ("Pb avec la requette ".mysql_error()); $tab_php=array(); echo 'table: '.$base_page.'<br />'; echo 'ecran: '.$$ecran.'<br />'; echo 'Nombre enregistrements trouves: '.mysql_num_rows($sql); while($row = mysql_fetch_array($sql, MYSQL_ASSOC)) { $tab_php[]= $row['Texte']; //on empile dans un array php } ?> <html> <head> <script type="text/javascript"> function affiche_texte(i){ <?php //on va generer l'array JS a partir de celui en php $j=0; echo 'var tableau_JS = new Array('; foreach($tab_php as $value) { if(is_int($value)){ echo $value; }else{ echo '"'.$value.'"'; } $j++; if($j<sizeof($tab_php)) echo ','; } echo ');'; ?> var obj=document.getElementById('zone_affichage'); //on atteint le div obj.innerHTML=tableau_JS[i]; //on y ecrit l'entrée de l'array i++; if (i < tableau_JS.length) { //on boucle tant que le tableau n'est pas fini setTimeout(function(){affiche_texte(i);},5000);//tempo en milisecondes } } </script> </head> <body onLoad="javascript:affiche_texte('0');"> <div id="zone_affichage"> <!-- ça va s'afficher là --> </div> </body> </html>
tu pense que le souci viendrait du php?
il affiche ceci desormais :
table: AFFICH_page
ecran:
Nombre enregistrements trouves: 0
undefined
il affiche ceci desormais :
table: AFFICH_page
ecran:
Nombre enregistrements trouves: 0
undefined
j'ai rajouté $ecran = 'A';
mais toujours le meme affichage...
<?php
//connexion etc..
Require("./Include/function.php");
include("./Include/connexion.inc.php");
$sql = mysql_query("SELECT * FROM ".$base_page." WHERE Ecran='".$ecran." ' OR Ecran='1' ") or die ("Pb avec la requette ".mysql_error());
$tab_php=array();
$ecran = 'A'; //valeur a chager selon l'ecran : voir la base de donnée
echo 'table: '.$base_page.'<br />';
echo 'ecran: '.$$ecran.'<br />';
echo 'Nombre enregistrements trouves: '.mysql_num_rows($sql);
while($row = mysql_fetch_array($sql, MYSQL_ASSOC))
{
$tab_php[]= $row['Texte']; //on empile dans un array php
}
mais toujours le meme affichage...
<?php
//connexion etc..
Require("./Include/function.php");
include("./Include/connexion.inc.php");
$sql = mysql_query("SELECT * FROM ".$base_page." WHERE Ecran='".$ecran." ' OR Ecran='1' ") or die ("Pb avec la requette ".mysql_error());
$tab_php=array();
$ecran = 'A'; //valeur a chager selon l'ecran : voir la base de donnée
echo 'table: '.$base_page.'<br />';
echo 'ecran: '.$$ecran.'<br />';
echo 'Nombre enregistrements trouves: '.mysql_num_rows($sql);
while($row = mysql_fetch_array($sql, MYSQL_ASSOC))
{
$tab_php[]= $row['Texte']; //on empile dans un array php
}
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
11 sept. 2009 à 13:25
11 sept. 2009 à 13:25
petit rappel:
le php est un langage qui s'exécute séquentielle ment c'est à dire ligne après ligne
or tu as mis:
$sql = mysql_query("SELECT * FROM ".$base_page." WHERE Ecran='".$ecran." ' OR Ecran='1' ") or die ("Pb avec la requette ".mysql_error());
$tab_php=array();
$ecran = 'A'; //valeur a chager selon l'ecran : voir la base de donnée
donc tu définis $ecran='A'; APRES ta requette comment veux tu que cette dernière recherche les ecrans A ?
d'ailleurs à quel endroit as tu la variable $ecran lorsque elle n'est pas égale à A ?
essayes avec:
le php est un langage qui s'exécute séquentielle ment c'est à dire ligne après ligne
or tu as mis:
$sql = mysql_query("SELECT * FROM ".$base_page." WHERE Ecran='".$ecran." ' OR Ecran='1' ") or die ("Pb avec la requette ".mysql_error());
$tab_php=array();
$ecran = 'A'; //valeur a chager selon l'ecran : voir la base de donnée
donc tu définis $ecran='A'; APRES ta requette comment veux tu que cette dernière recherche les ecrans A ?
d'ailleurs à quel endroit as tu la variable $ecran lorsque elle n'est pas égale à A ?
essayes avec:
$ecran = 'A'; //valeur a chager selon l'ecran : voir la base de donnée $sql = mysql_query("SELECT * FROM ".$base_page." WHERE Ecran='".$ecran." ' OR Ecran='1' ") or die ("Pb avec la requette ".mysql_error()); $tab_php=array();
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
11 sept. 2009 à 18:40
11 sept. 2009 à 18:40
à la place de
echo 'ecran: '.$$ecran.'<br />';
il faut mettre:
un petit $ en trop
ensuite quand ta page s'affiche fais afficher la source et donnes en moi une copie
echo 'ecran: '.$$ecran.'<br />';
il faut mettre:
echo 'ecran: '.$ecran.'<br />';
un petit $ en trop
ensuite quand ta page s'affiche fais afficher la source et donnes en moi une copie
J'ai modifié la ligne et voici la source
table: AFFICH_page<br />ecran: A<br />Nombre enregistrements trouves: 2<html>
<head>
<script type="text/javascript">
function affiche_texte(i){
var tableau_JS = new Array("on essaye l'affichagede l'ecran ! ","<p>inserez votre texte ici.<img height="68" width="100" alt="" src="/userfiles/image/jaquette.jpg" /></p>");var obj=document.getElementById('zone_affichage'); //on atteint le div
obj.innerHTML=tableau_JS[i]; //on y ecrit l'entrée de l'array
i++;
if (i < tableau_JS.length) {
//on boucle tant que le tableau n'est pas fini
setTimeout(function(){affiche_texte(i);},5000);//tempo en milisecondes
}
}
</script>
</head>
<body onLoad="javascript:affiche_texte('0');">
<div id="zone_affichage">
<!-- ça va s'afficher là -->
</div>
</body>
</html>
Je suis un peu perdu !!
table: AFFICH_page<br />ecran: A<br />Nombre enregistrements trouves: 2<html>
<head>
<script type="text/javascript">
function affiche_texte(i){
var tableau_JS = new Array("on essaye l'affichagede l'ecran ! ","<p>inserez votre texte ici.<img height="68" width="100" alt="" src="/userfiles/image/jaquette.jpg" /></p>");var obj=document.getElementById('zone_affichage'); //on atteint le div
obj.innerHTML=tableau_JS[i]; //on y ecrit l'entrée de l'array
i++;
if (i < tableau_JS.length) {
//on boucle tant que le tableau n'est pas fini
setTimeout(function(){affiche_texte(i);},5000);//tempo en milisecondes
}
}
</script>
</head>
<body onLoad="javascript:affiche_texte('0');">
<div id="zone_affichage">
<!-- ça va s'afficher là -->
</div>
</body>
</html>
Je suis un peu perdu !!
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
13 sept. 2009 à 21:10
13 sept. 2009 à 21:10
je ne pensait pas que le contenu de ce que tu veux afficher contienne des "
donc si dans une chaine qui commence par des" il y a des" il fut les echapper, la fonction addslashes fait ça
modifies ta fonction anis:
donc si dans une chaine qui commence par des" il y a des" il fut les echapper, la fonction addslashes fait ça
modifies ta fonction anis:
function affiche_texte(i){ <?php //on va generer l'array JS a partir de celui en php $j=0; echo 'var tableau_JS = new Array('; foreach($tab_php as $value) { if(is_int($value)){ echo addslashes($value); }else{ echo '"'.addslashes($value).'"'; } $j++; if($j<sizeof($tab_php)) echo ','; } echo ');'; ?> var obj=document.getElementById('zone_affichage'); //on atteint le div obj.innerHTML=tableau_JS[i]; //on y ecrit l'entrée de l'array i++; if (i < tableau_JS.length) { //on boucle tant que le tableau n'est pas fini setTimeout(function(){affiche_texte(i);},5000);//tempo en milisecondes } }
tu es genial ca marche !!!
pr contre y'a t'il moyen que cela boucle a l'infini le defilement?
En tout cas merci beaucoup beaucoup beaucoup !!!
pr contre y'a t'il moyen que cela boucle a l'infini le defilement?
En tout cas merci beaucoup beaucoup beaucoup !!!
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
15 sept. 2009 à 20:00
15 sept. 2009 à 20:00
Merci,
oui on peut:
oui on peut:
function affiche_texte(i){ <?php //on va generer l'array JS a partir de celui en php $j=0; echo 'var tableau_JS = new Array('; foreach($tab_php as $value) { if(is_int($value)){ echo addslashes($value); }else{ echo '"'.addslashes($value).'"'; } $j++; if($j<sizeof($tab_php)) echo ','; } echo ');'; ?> var obj=document.getElementById('zone_affichage'); //on atteint le div obj.innerHTML=tableau_JS[i]; //on y ecrit l'entrée de l'array i++; //tu modifies la fin ainsi attention aux { } if (i == tableau_JS.length) i=0; //on a atteint la fin de l'arrray alors on remet l'index au début, a 0 setTimeout(function(){affiche_texte(i);},5000);//tempo en milisecondes }
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 sept. 2009 à 18:44
16 sept. 2009 à 18:44
Essayes en remplaçant:
if (i == tableau_JS.length) i=0;
par
if (i == tableau_JS.length) i=0;
par
if (i == tableau_JS.length){ i=0; }
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 sept. 2009 à 18:49
16 sept. 2009 à 18:49
Normal que ça ne boucle pas tu n'as pas appliqué la modif que je t'ai donné, j'ai fais afficher le source du lien que tu m'as donné
alors mets:
alors mets:
<html> <head> <script type="text/javascript"> function affiche_texte(i){ var tableau_JS = new Array("on essaye l'affichagede l'ecran ! ","<p>inserez votre texte ici.<img height=\"68\" width=\"100\" alt=\"\" src=\"/userfiles/image/jaquette.jpg\" /></p>"); var obj=document.getElementById('zone_affichage'); //on atteint le div obj.innerHTML=tableau_JS[i]; //on y ecrit l'entrée de l'array i++; if (i == tableau_JS.length) { //fin de l'array on repart a zero i=0; } setTimeout(function(){affiche_texte(i);},5000);//tempo en milisecondes } </script> </head> <body onLoad="javascript:affiche_texte('0');"> <div id="zone_affichage"> <!-- ça va s'afficher là --> </div> </body> </html>
essai de mettre un set_time_limit(0) si tu fais un sleep peu etre cela peu regler ton probleme simplement sans etre obligé de faire une magouille à cause des 30 secondes.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 sept. 2009 à 20:05
16 sept. 2009 à 20:05
Chez moi le code que j'ai donné ci dessus fonctionne parfaitement
graffx
Messages postés
6506
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
24 mars 2019
1 975
16 sept. 2009 à 20:12
16 sept. 2009 à 20:12
sinon il y a un systeme simple mais il doit bouffer quelques requetes quand meme.
Tu connais le systeme qui te permet d' afficher par exemple 20 entrées sur ta page et qu' au dela, la page t' affiche automatiquement en bas d epage "page precedente" "page suivante" ou meme le numero des page?
He bien tu fais la meme chose mais avec une entrée par page, tu vires les liens et tu fais une redirection sur( par exemple) 2 secondes.
Une parmi tant d' autres.... a toi de choisir la meilleure
Tu connais le systeme qui te permet d' afficher par exemple 20 entrées sur ta page et qu' au dela, la page t' affiche automatiquement en bas d epage "page precedente" "page suivante" ou meme le numero des page?
He bien tu fais la meme chose mais avec une entrée par page, tu vires les liens et tu fais une redirection sur( par exemple) 2 secondes.
Une parmi tant d' autres.... a toi de choisir la meilleure
Bouhouhou ca ne marche pas :-(
je ne comprend plus rien en + !
ca affiche tout blanc maintenant
source :
<?php
//connexion etc..
Require("./Include/function.php");
include("./Include/connexion.inc.php");
$ecran = 'A'; //valeur a chager selon l'ecran : voir la base de donnée
$sql = mysql_query("SELECT * FROM ".$base_page." WHERE Ecran='".$ecran." ' OR Ecran='1' ") or die ("Pb avec la requette ".mysql_error());
$tab_php=array();
echo 'table: '.$base_page.'<br />';
echo 'ecran: '.$ecran.'<br />';
echo 'Nombre enregistrements trouves: '.mysql_num_rows($sql);
while($row = mysql_fetch_array($sql, MYSQL_ASSOC))
{
$tab_php[]= $row['Texte']; //on empile dans un array php
}
?>
<html>
<head>
<script type="text/javascript">
function affiche_texte(i){
<?php
//on va generer l'array JS a partir de celui en php
$j=0;
echo 'var tableau_JS = new Array(';
foreach($tab_php as $value) {
if(is_int($value)){
echo addslashes($value);
}else{
echo '"'.addslashes($value).'"';
}
$j++;
if($j<sizeof($tab_php)) echo ',';
}
echo ');';
?>
var obj=document.getElementById('zone_affichage'); //on atteint le div
obj.innerHTML=tableau_JS[i]; //on y ecrit l'entrée de l'array
i++;
//tu modifies la fin ainsi attention aux { }
if (i == tableau_JS.length) i=0; //on a atteint la fin de l'arrray alors on remet l'index au début, a 0
setTimeout(function(){affiche_texte(i);},5000);//tempo en milisecondes
}
</script>
</head>
<body onLoad="javascript:affiche_texte('0');">
<div id="zone_affichage">
<!-- ça va s'afficher là -->
</div>
</body>
</html>
affichage :
http://www.lycee-queneau.net/afficheur3.php
:-/
je ne comprend plus rien en + !
ca affiche tout blanc maintenant
source :
<?php
//connexion etc..
Require("./Include/function.php");
include("./Include/connexion.inc.php");
$ecran = 'A'; //valeur a chager selon l'ecran : voir la base de donnée
$sql = mysql_query("SELECT * FROM ".$base_page." WHERE Ecran='".$ecran." ' OR Ecran='1' ") or die ("Pb avec la requette ".mysql_error());
$tab_php=array();
echo 'table: '.$base_page.'<br />';
echo 'ecran: '.$ecran.'<br />';
echo 'Nombre enregistrements trouves: '.mysql_num_rows($sql);
while($row = mysql_fetch_array($sql, MYSQL_ASSOC))
{
$tab_php[]= $row['Texte']; //on empile dans un array php
}
?>
<html>
<head>
<script type="text/javascript">
function affiche_texte(i){
<?php
//on va generer l'array JS a partir de celui en php
$j=0;
echo 'var tableau_JS = new Array(';
foreach($tab_php as $value) {
if(is_int($value)){
echo addslashes($value);
}else{
echo '"'.addslashes($value).'"';
}
$j++;
if($j<sizeof($tab_php)) echo ',';
}
echo ');';
?>
var obj=document.getElementById('zone_affichage'); //on atteint le div
obj.innerHTML=tableau_JS[i]; //on y ecrit l'entrée de l'array
i++;
//tu modifies la fin ainsi attention aux { }
if (i == tableau_JS.length) i=0; //on a atteint la fin de l'arrray alors on remet l'index au début, a 0
setTimeout(function(){affiche_texte(i);},5000);//tempo en milisecondes
}
</script>
</head>
<body onLoad="javascript:affiche_texte('0');">
<div id="zone_affichage">
<!-- ça va s'afficher là -->
</div>
</body>
</html>
affichage :
http://www.lycee-queneau.net/afficheur3.php
:-/