Page 1 sur 1

probleme avec update mysql

Posté : 18 janv. 2007, 23:56
par cemice
Bonjour a tous
voila je suis en train de creez un fichier pour approuver mes images par le biais d'une base de donné toute simple , j'y est mis pour chaque photo a approuver un checkbox dynamique le probleme cest que quand je cherche mes photos non approuvé il me les les montre bien et j'ai beau cocher les checkbox le update se fait seulement sur une photo a la place de celle que j'ai selectionner ouff dur a comprendre lol , voici mon code si cela peut aider :
<?
echo '<body bgcolor="black" link="#3f8ded" vlink="#ffffff" alink="#3f8ded" text="#ffffff"  background="../../img/fond3.png" >'  ;

include ('config.php');
$col=3;
$i=0;
echo '<table align="center" width="20" border="1" cellspacing="5" cellpadding="0" bordercolor="3f8ded" bgColor="#000000">';

$comp=mysql_query("SELECT COUNT(*) FROM album where valide= '0'");
$count = mysql_fetch_row($comp); {

echo '<b><center> Actuellement dans la galerie : '.$count[0].($count[0] <=1 ?' Photo' : ' Photos').' à valider</center></b><br>';
echo'<form action="approb.php" method="post">';
}

  $q = mysql_query("SELECT image,id FROM album where valide= '0'");
while ($r = mysql_fetch_array($q)) {
$image=$r['image'];
$id=$r['id'];
$check='<input type="checkbox" name="approbation[]" value="valider">Valider';

$colonne="<td><center><img src=\"photos/$image\" width=\"180\"><p> $check</center> </td>";
  if ($i%$col==0)        {
 echo "\n<tr>\n";

}
        if($i %$col !=0 OR $i %$col == 0)
        {



           echo  $colonne ;  // on affiche une colonne
			}
      
        $i++;


  }

echo '</tr>';
echo '</table><br><p>';
echo '<center><input type="submit" value="valider" name="ok">';

if (isset($ok))
	{
foreach ($approbation as $choix)
		{
$result = ("SELECT valide FROM album WHERE id='".$id."'");
$req    = mysql_query($result) or die('Erreur SQL !<br>'.$result.'<br>'.mysql_error());
while ($ligne = mysql_fetch_array($req)) {

mysql_query("UPDATE album SET  valide = valide+1    WHERE id='".$ligne."'");

  		
echo "<p>Photo Valider : ",$choix,"<br>";
		}}
	}
	mysql_close();
?>
Merci d'avance !!!

Posté : 19 janv. 2007, 00:25
par Ultim4T0m
Pour commencer, penses à bien indenter ton code...
<?
echo '<body bgcolor="black" link="#3f8ded" vlink="#FFFFFF" alink="#3F8DED" text="#FFFFFF"  background="../../img/fond3.png" >';

include ('config.php');

$col=3;
$i=0;
echo '<table align="center" width="20" border="1" cellspacing="5" cellpadding="0" bordercolor="3F8DED" bgColor="#000000">';

$comp=mysql_query("SELECT COUNT(*) FROM album where valide= '0'");
$count = mysql_fetch_row($comp);

echo '<b><center> Actuellement dans la galerie : '.$count[0].($count[0] <=1 ?' Photo' : ' Photos').' à valider</center></b><br>';
echo'<form action="approb.php" method="post">';

$q = mysql_query("SELECT image,id FROM album where valide= '0'");
while ($r = mysql_fetch_array($q))    {
    $image=$r['image'];
    $id=$r['id'];
    $check='<input type="checkbox" name="approbation[]" value="valider">Valider';

    $colonne="<td><center><img src=\"photos/$image\" width=\"180\"><p> $check</center> </td>";
    
    if ($i%$col==0)    {
        echo "\n<tr>\n";
    }
    if($i%$col !=0 || $i%$col == 0)    {    // Je ne vois pas vraiment l'intérêt de cette "condition" ... Tu testes si c'est différent de 0 ou bien égal à 0. Je pense que si ça ne renvoit pas TRUE pour l'un, ça le renvoit pour l'autre... (au passage, j'ai changé le OR en ||)
        echo  $colonne ;  // on affiche une colonne
    }
    $i++;
}
echo '</tr>';
echo '</table><br><p>';
echo '<center><input type="submit" value="valider" name="ok">';

if (isset($ok))    {
    foreach ($_POST['approbation'] as $choix)    {
        $result = ("SELECT valide FROM album WHERE id='".$id."'");
        $req = mysql_query($result) or die('Erreur SQL !<br>'.$result.'<br>'.mysql_error());
        while($ligne = mysql_fetch_array($req))    {
            mysql_query("UPDATE album SET  valide = valide+1    WHERE id='".$ligne."'");
            echo "<p>Photo Valider : ",$choix,"<br>";
        }
    }
}
mysql_close();
?>
J'ai également rajouté $_POST['approbation'] puisque ce n'est pas ce que tu as fait.
En indentant, tu y verras bien plus clair, et tu pourras ainsi trouver plus facilement les éventuels problèmes ;)

Posté : 19 janv. 2007, 09:09
par cemice
en reprenant ce que tu as fait et je ten remercie mais cela ne marche pas , ma table est composer de 5 champs dont , $image,
$auteur,$message,$email,$valide, quand l'utilisateur upload une photos sur mon site tout rentre bien et $valide est un "0", ce "0" me sert a ne pas afficher la photo de la personne tant que moi avec les sources qu'il yas au dessus je ne les pas mis a "1" voila ce que je veux faire j'y arrive avec un fichier mais je n'arrive pas a en selectionner plusieurs et les valider tous d'un coup voila en esperant que j'a été comprehensible merci a tous

Posté : 19 janv. 2007, 11:17
par cemice
c'est bon j'ai trouver par contre ma page php ne s'actualise pas apres la validation par contre cela marche tres bien dans la base de donné
tu as une idée ??