Variable array dans condition qui ne fonctionne pas

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 : Variable array dans condition qui ne fonctionne pas

Re: Variable array dans condition qui ne fonctionne pas

par stealth35 » 13 févr. 2010, 01:27

non , j'ai configuré mon serveur pour ne pas voir les erreurs, j'ai apporté tes modification sans résultats non plus.
faut les afficher sinon tu verras jamais ou ca coince...

Re: Variable array dans condition qui ne fonctionne pas

par dogmongo » 12 févr. 2010, 23:59

non , j'ai configuré mon serveur pour ne pas voir les erreurs, j'ai apporté tes modification sans résultats non plus.

Re: Variable array dans condition qui ne fonctionne pas

par stealth35 » 12 févr. 2010, 19:09

oui avec tout c'est plus claire, mais affiche tu les erreurs ?

en plus :

$DB_rst_place = 0;

non fait plutot

$DB_rst_place = array();

de plus tu fais

$DB_rst_place[$DB_race_code]++;

mais on ne peu pas incémenter une valeur qui n'existe pas

null++ = null

ca va te retourner une erreur, meme si techniquement ca le fait quand meme

Re: Variable array dans condition qui ne fonctionne pas

par dogmongo » 12 févr. 2010, 19:00

je précise que j'ai bien mes résultats mais il n'apparait pas le numéro de classement :wink:

Re: Variable array dans condition qui ne fonctionne pas

par dogmongo » 12 févr. 2010, 18:58

Tu vas mieux comprendre comme ca :

je travail sur une base de donnée qui detient des résultats d'animaux avec points et code >> (identification race) cf. $DB_race_code
je fais une seule requete et utilise les tableau associatif pour dispatcher mes résultats par code
à chaque fois qu'un résultats sort de la table je lui attribu un classement 1 , 2 , 3 possible execo d'ou la condition cf. if($DB_rst_points != $gardelespoints[$DB_race_code]){

ensuite quand ma requete est fini j'affiche tout ca grace à une boucle for, ce qui me permet d'avoir un joli classement de résultat par race et en une seule requete

je te met le code en entier pour que tu comprennes très bien mon objectif
// déclaration des variables
$DB_rst_place = 0; 
$texte = "";

$lescoderace = array(304,305,306,307,327,303,320,856,857,858,859,860,861,862,317,316,333,868,869,183,310,309,308,311);

$result  = mysql_query("
SELECT a.rst_chien, a.rst_points, SUM(a.rst_points) AS points, b.dog_codrace, d.race_code, d.race_nom, c.prenom, c.nom, c.clt_civilite
FROM source_resultats AS a
LEFT JOIN source_chiens AS b ON b.dog_nom = a.rst_chien 
LEFT JOIN source_clients AS c ON c.id = b.dog_pro 
LEFT JOIN source_race AS d ON d.race_code = b.dog_codrace 
GROUP BY rst_chien
ORDER BY points DESC
"); 

//$DB_rst_place = 0;

while($row = mysql_fetch_array($result)){
    //$DB_prenom = $row['prenom'];							  
	$DB_rst_points = $row['points'];
	$DB_rst_chien = $row['rst_chien'];
	$DB_race_nom = $row['race_nom'];
	$DB_clt_civilite = $row['clt_civilite'];
                 $DB_nom = $row['nom'];
	$DB_race_code = $row['race_code']; // variable race

    $gardelespoints[$DB_race_code] = $DB_rst_points; // score du précédent
	
	//echo $gardelespoints[$DB_race_code]; // TEST OK
	//echo $DB_rst_points; // TEST OK
	
	if($DB_rst_points != $gardelespoints[$DB_race_code]){
	$DB_rst_place[$DB_race_code] ++;
	}

$texte[$DB_race_code].= $DB_rst_place[$DB_race_code]."$DB_race_nom $DB_rst_chien $DB_clt_civilite $DB_nom $DB_rst_points*\n";
echo $texte[$DB_race_code]; 
}// fin du while 

$count = count($lescoderace);

for( $i = 0; $i < $count ; $i++){
$code = $lescoderace[$i];
$nouveautexte.= $texte[$code]."\n";
}


merci de ton aide

Re: Variable array dans condition qui ne fonctionne pas

par stealth35 » 12 févr. 2010, 18:43

c'est un champ dans la BDD , je t'ai mis le code plus haut
non je vois pas, si c'est un champs c'est pas un array

c'est pas plutot :
$DB_rst_place = $row['place'];

if($DB_rst_points != $gardelespoints[$DB_race_code])
{
    $DB_rst_place++;
    echo $DB_rst_place;
}
travail tu vace le display errors sur On ? et le error reporting sur E_ALL | E_STRICT ?




while($row = mysql_fetch_array($result)){
                                                 
$DB_rst_points = $row['points'];

$DB_race_code = $row['race_code']; // CODE RACE DOG

$gardelespoints[$DB_race_code] = $DB_rst_points; // CLASSEMENT PRECEDENT
       
echo $gardelespoints[$DB_race_code]; // TEST OK

echo $DB_rst_points; // TEST OK
       
        if($DB_rst_points != $gardelespoints[$DB_race_code]){

              $DB_rst_place[$DB_race_code] ++;

                       echo $DB_rst_place[$DB_race_code]; // ECHEC
       
        }

Re: Variable array dans condition qui ne fonctionne pas

par dogmongo » 12 févr. 2010, 17:59

c'est un champ dans la BDD , je t'ai mis le code plus haut

Re: Variable array dans condition qui ne fonctionne pas

par stealth35 » 12 févr. 2010, 17:19

j'ai modifié mon message précédent pour que tu comprennes, je cree des classements en sortie de requete, afin de pouvoir lister ses tableaux séparement, je crée une clé lié à un champs précis pour générer un classement, hors ca ne fonctionne pas.
mais $DB_rst_place il est ou a la base ?

Re: Variable array dans condition qui ne fonctionne pas

par dogmongo » 12 févr. 2010, 17:13

j'ai modifié mon message précédent pour que tu comprennes, je cree des classements en sortie de requete, afin de pouvoir lister ses tableaux séparement, je crée une clé lié à un champs précis pour générer un classement, hors ca ne fonctionne pas.

Re: Variable array dans condition qui ne fonctionne pas

par stealth35 » 12 févr. 2010, 17:07

c'est pas très logique ton code, $DB_rst_points c'est un tableau ou pas ?

Re: Variable array dans condition qui ne fonctionne pas

par dogmongo » 12 févr. 2010, 17:03

idem rien
while($row = mysql_fetch_array($result)){
						  
$DB_rst_points = $row['points'];

$DB_race_code = $row['race_code']; // CODE RACE DOG

$gardelespoints[$DB_race_code] = $DB_rst_points; // CLASSEMENT PRECEDENT
	
echo $gardelespoints[$DB_race_code]; // TEST OK

echo $DB_rst_points; // TEST OK
	
	if($DB_rst_points != $gardelespoints[$DB_race_code]){

	      $DB_rst_place[$DB_race_code] ++;

                       echo $DB_rst_place[$DB_race_code]; // ECHEC
	
	}

Re: Variable array dans condition qui ne fonctionne pas

par stealth35 » 12 févr. 2010, 16:56

et si tu fais
print_r($DB_rst_place);

Variable array dans condition qui ne fonctionne pas

par dogmongo » 12 févr. 2010, 16:55

Bonjour,

j'ai vérifier toute les variables avant ma condition et elle existe toutes correctement, mais dans ma condition plus rien ???
if($DB_rst_points != $gardelespoints[$DB_race_code]){
	$DB_rst_place[$DB_race_code] ++;
    echo $DB_rst_place[$DB_race_code]; // petit test pour vérifier mais rien ne s'affiche
}
merci d'avance pour votre aide