Forum Clubic

Valeur erroné dans sondage

Bon voila j’ai un trombinoscop
et les gens peuvent voté sur les différentes personnes.
Le problemes est que ça marche pas et je piges pas pk, j’ai des valeurs fause alors que dans le calcul elle sont juste

[cpp]<?php require_once('../../Connections/trombinoV3.php'); ?>

<?php mysql_select_db($database_trombinoV3, $trombinoV3); $query_trombino = "SELECT * FROM trombino"; $trombino = mysql_query($query_trombino, $trombinoV3) or die(mysql_error()); $row_trombino = mysql_fetch_assoc($trombino); $totalRows_trombino = mysql_num_rows($trombino); $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["Note_update"])) && ($_POST["Note_update"] == "note")) { /* $query_note = "SELECT `note`, `hits` FROM `trombino` WHERE idx = ".$_POST['idx'].""; $note = mysql_query($query_note, $trombinoV3) or die(mysql_error()); $row_note = mysql_fetch_assoc($note); $totalRows_note = mysql_num_rows($note); */ $q1 = mysql_query("SELECT `note`, `hits` FROM `trombino` WHERE idx = 7"); $r1 = mysql_fetch_array($q1); $note = ( $r1['note'] + $_POST['choix'] ) / ( $r1['hits'] +1 ); echo $note; echo'= ('; echo $r1['note']; echo'+'; echo $_POST['choix']; echo' ) /'; echo $r1['hits']; echo' +1' ; $updateSQL = sprintf("UPDATE trombino SET note=note+%s, hits=hits+1 WHERE idx=%s", $note, $_POST['idx']); mysql_select_db($database_trombinoV3, $trombinoV3); $Result1 = mysql_query($updateSQL, $trombinoV3) or die(mysql_error()); $updateGoTo = "Untitled-1.php"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } // header(sprintf("Location: %s", $updateGoTo)); echo ""; //*/ //} ?> <?php require_once('fonctions.php'); ?> Document sans titre <?php do { ?> <?php if ( $row_trombino['hits'] > 0 ) { $row_trombino['img_pourcent'] = $row_trombino['note'] / $row_trombino['hits'] ; //100 100 1

}
?>

<?php } while ($row_trombino = mysql_fetch_assoc($trombino)); ?>
<?php echo $row_trombino['note']; ?>
<?php echo ''; ?> <?php echo ''.$row_trombino['hits'].' votant(s)'; ?><?php echo $row_trombino['note']; ?> - <?php echo $row_trombino['img_pourcent'] ?>
<?php echo $row_trombino['hits']; ?>
<?php echo $row_trombino['img_pourcent']; ?>
&nbsp;
&nbsp;
&nbsp;
<?php echo ""; $q2 = mysql_query("SELECT *, DATE_FORMAT(date, '$site_date_jh') AS dateh FROM commentaires WHERE refer = ".$row_trombino['idx']." ORDER BY date"); $n2 = mysql_num_rows($q2); echo "Il y a actuellement [b]$n2[/b] commentaire"; while ($r2 = mysql_fetch_array($q2)) echo "[/url]"; ?> '> 20 30 40 50 60 70 80 90 100
<?php mysql_free_result($trombino); ?> [/cpp]

Juste comme ça :

  1. require_once, c’est une instruction. Les parenthèses autour sont superflues.
  2. le html, n’autorise que " en délimiteur d’attributs, ou aucun.
  3. utiliser sprintf pour formatter une requête SQL, c’est bien. Mais utiliser les bonnes chaînes de formattage (%d au lieu de %s) c’est mieux et plus secure…
  4. pas la peine de surparenthéser (if( ((x)) ) c’est pas super utile
  5. ligne 3, 31 : quel intérêt de switcher à deux reprises de base de données? surtout quand c’est la même?
  6. vérifier si $_POST[‘xx’] est définie c’est bien, mais tu ne vérifies pas si $_POST[‘idx’] l’est…

Pour le reste, je ne vois pas trop où est le problème, mais j’ai du mal à lire ton code. Tu as essayé les classiques print_r($_POST) (voire $GLOBALS) dans ton if voir ce qui se passe avec les variables? Peut-être que tu envoies mal les données?

Bon enfaite j’ai changé le systeme de calcul et désormais ça semble correctement marché

Tu dis :6. vérifier si $_POST[‘xx’] est définie c’est bien, mais tu ne vérifies pas si $_POST[‘idx’] l’est…

Quel est l’interrer de vérifier $_POST[‘idx’] est défini puis que si l’autre l’est, idx l’est aussi.

  1. pas la peine de surparenthéser (if( ((x)) ) c’est pas super utile

ou j’ai ça ? :??:

[cpp]<?php
require_once ‘…/…/Connections/trombinoV3.php’;

mysql_select_db($database_trombinoV3, $trombinoV3);
$query_trombino = “SELECT * FROM trombino LIMIT 4”;
$trombino = mysql_query($query_trombino, $trombinoV3) or die(mysql_error());
$row_trombino = mysql_fetch_assoc($trombino);
$totalRows_trombino = mysql_num_rows($trombino);

$editFormAction = $_SERVER[‘PHP_SELF’];
if (isset ($_SERVER[‘QUERY_STRING’])) {
$editFormAction .= “?”.htmlentities($_SERVER[‘QUERY_STRING’]);
}

if ((isset ($_POST[“Note_update”])) && ($_POST[“Note_update”] == “note”)) {

$q1 = mysql_query("SELECT `note`, `hits` FROM `trombino` WHERE idx = ".$_POST['idx']."");
$r1 = mysql_fetch_array($q1);

if ($r1['hits'] == 0) {
	$updateSQL = sprintf("UPDATE trombino SET note=%d, hits=hits+1 WHERE idx=%d", $_POST['choix'], $_POST['idx']);
} else {
	$note = ($r1['note'] + $_POST['choix']) / (2);
	$updateSQL = sprintf("UPDATE trombino SET note=%d, hits=hits+1 WHERE idx=%d", $note, $_POST['idx']);
}

mysql_select_db($database_trombinoV3, $trombinoV3);
$Result1 = mysql_query($updateSQL, $trombinoV3) or die(mysql_error());

if (isset ($_SERVER['QUERY_STRING'])) {
	$updateGoTo .= (strpos($updateGoTo, '?')) ? "&amp;" : "?";
	$updateGoTo .= $_SERVER['QUERY_STRING'];
}
echo "<script language=\"JavaScript\">
		setTimeout(\"window.location='Untitled-3.php'\",3000); // delai en millisecondes
		</script>";

}
?>[/cpp]

Ligne 15 pour le sur parenthesage.

Et sinon, tu sais, en éditant le formulaire avec DOM Inspector, tu peux charger ta variable là…