PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-12-2009 17:48:24

t14
Membre
Inscription : 10-09-2009
Messages : 96

modifier ordre affichage photos

Bonjour,

J'affiche des photos (en php) suite à lecture de ma base.
Je voudrais modifier l'ordre d'affichage, sans avoir à intervenir directement sur la base.
J'ai une table alb_photos qui comporte comme champs : id (l'identifiant), titre_album, soustitre.
Et une table photos avec : idph (identifiant unique), idliaison (qui relie et est identique à l'id de la table précédente), numero (qui permettra l'ordre d'affichage), lien (qui mène à la photo dans un fichier).

J'affiche donc une série de photos avec son numéro dessous que je veux changer et modifier dans la base. Les numéros sont issus du champ (numero).

$id = $_GET["id"];

$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.idliaison, photos.numero, photos.lien
FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.idliaison
WHERE id = '$id' "
;
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );

$idphEncours = 0;
while($row = mysql_fetch_array($result))
{
if( $idphEnCours != $row['idph'] )
  {  

    echo '<div class="centrer">';
        echo '<h2><u>'.$row['titre_album'].'</h2></u>';      
        echo '<h4><i>'.$row['soustitre'].'</i></h4>';
    echo '<table><tr>';
  }
if ($idphEnCours = $row['idph'])
  {
echo '<form action="maj_ordre_photos.php"  method="POST">';
echo '<input type=hidden name="idph" value="'.$row['idph'] .'">';
echo '<td><img border=0 height="50" src="' . $row['lien'] . '"><center>
          <input name="numero" type="text" id="numero" value="'
.$row['numero'] .'" size="1" maxlength="3"></center></td>';     
  }
else
  {
  echo '</tr></table></div>';
  }
}
echo '<input type="submit" value="envoyer" />';
echo '</form>';

puis le code "maj_ordre_photos.php" :

$idph = $_POST['idph'];
$numero = $_POST['numero'];
$result=mysql_query("UPDATE photos SET numero='$numero' WHERE idph='$idph'");

Mais dans ce dernier script, je ne récupère à chaque fois que l'idph et le numéro de la dernière photo affichée. Je ne peux donc modifier les autres.

Merci de bien vouloir m'aider.

Hors ligne

#2 28-12-2009 16:29:21

Maskime
Membre
Lieu : Paris 15ème
Inscription : 11-05-2009
Messages : 134
Site Web

Re : modifier ordre affichage photos

Hello,

Je suis pas sûr d'avoir tout compris, mais en tout cas je peux te dire que la ligne suivante me semble suspecte :


if ($idphEnCours = $row['idph'])
//Ca serait pas plutôt :
if ($idphEnCours == $row['idph'])
 

Ensuite je te renvois aux commentaires dans mon code :


<?php
$id = $_GET["id"];
 
$requete = "";
$requete .= "    SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, ";
$requete .= "           photos.idph, photos.idliaison, photos.numero, ";
$requete .= "           photos.lien ";
$requete .= "      FROM alb_photos ";
$requete .= "INNER JOIN photos ON alb_photos.id = photos.idliaison "; // Je change le LEFT pour un INNER comme ça
                                    // tu n'auras que les albums avec des photos
$requete .= "     WHERE id = '$id' "; // Attention ici tu passes dans ta requête une valeur qui vient diectement du navigateur
                    // Je me doute que c'est le cadet de tes soucis pour l'instant mais sache qu'il faut
                    // Systématiquement vérifier les infos provenant du navigateur car l'utilisateur peut les
                    // les avoir modifiées
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );
 
$idphEncours = 0;
//Ton formulaire est global à l'album, c'est donc ici qu'il faut que tu ouvres ta balise <form>
echo '<form action="maj_ordre_photos.php"  method="POST">' . "\n";
$bDisplayedTitle = false; // Voir plus bas pourquoi est ce que j'ai créé cette variable
while($row = mysql_fetch_array($result))
{
  /*if( $idphEnCours != $row['idph'] )
  {  
    echo '<div class="centrer">' . "\n";
        echo "\t" . '<h2><u>'.$row['titre_album'].'</h2></u>' . "\n";
        echo "\t" . '<h4><i>'.$row['soustitre'].'</i></h4>' . "\n";
    echo "\t" . '<table><tr>';
  }
  if ($idphEnCours = $row['idph'])
  {
   
    echo '<input type=hidden name="idph" value="'.$row['idph'] .'">' . "\n";
    echo '<td><img border=0 height="50" src="' . $row['lien'] . '"><center>' . "\n";
    echo '<input name="numero" type="text" id="numero" value="'.$row['numero'] .'" size="1" maxlength="3"></center></td>';    
  }
  else
  {
    echo '</tr></table></div>';
  }*/
// Ici je ne suis pas sûr de comprendre ce que tu veux faire, mais je pense que tu veux juste afficher les photos avec
    // un <input type="text"> pour te permettre de mettre le chiffre qui te va indiquer l'ordre d'affichage de la photo
    // donc voilà ce que tu aurais pu faire :
  if($bDisplayedTitle === false){
    $bDisplayedTitle = true;
    echo '<div class="centrer">' . "\n";
        echo "\t" . '<h2><u>'.$row['titre_album'].'</h2></u>' . "\n";
        echo "\t" . '<h4><i>'.$row['soustitre'].'</i></h4>' . "\n";
    echo "\t" . '<table><tr>';
  }
  else{
    echo '<td><img border=0 height="50" src="' . $row['lien'] . '"><center>' . "\n";
    echo '<input name="numero_' . $row['idph'] . '" type="text" id="numero_' . $row['idph'] . '" value="'.$row['numero'] .'" size="1" maxlength="3"></center></td>';
  }
}
echo '<input type="submit" value="envoyer" />';
echo '</form>';
?>
 

Pour ce qui est de la mise à jour de l'ordre :


<?php
foreach($_POST as $sKey => $iNewOrderValue){ // Ici je récuère l'ensemble des clés qui sont dans le $_POST
  if(strpos('numero_', $sKey) !== false){ // Ici je regarde si le champs en cours correspond à un champs
                      // qui sert à changer l'ordre d'affichage
    list($sUseless, $iPhId) = explode('_', $sKey); // Ici je récupère l'id de la photo dans le nom du champ
    $result=mysql_query("UPDATE photos SET numero='$iNewOrderValue' WHERE idph='$iPhId'"); // Ici je fais la mise àa jour de ta BDD
  }
}
?>
 

S'il y a des fonctions que tu ne connais pas je te renvoie à la Doc de php.net, si tu as des questions, pose les wink

Bonne journée

Dernière modification par Maskime (28-12-2009 17:16:17)


La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes

Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs wink

Hors ligne

#3 09-01-2010 12:52:18

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

Bonjour Maskime et meilleurs voeux smile.

Me revoici, car je retrouve un peu de temps pour replonger sur mon problème.
Pour rafraichir les esprits, j'affiche un album photo dont l'identifiant unique des photos est idph. Chaque enregistrement comporte un champs "numero" qui donne l'ordre d'affichage des photos dans l'album.
J'ai testé ton script ! Mais il ne se passe rien. Pas de message d'erreur, pas de changement.

Affichage de l'album photo :

$id = $_GET['id'];

$select = "SELECT * FROM alb_photos where id='$id'";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

   while($row = mysql_fetch_array($result))
  {
      echo '<div class="titre">'.$row['titre_album'].'</div>';   
      echo '<div class="presentation1">'.$row['soustitre'].'</div>';  
             
$select2 = "SELECT * FROM photos where idliaison='$id'";
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
   
    echo '<center><table><tr>';

while($row2 = mysql_fetch_array($result2))
{
echo '<form action="maj_ordre_photos.php?idph='. $row2['idph'] .' & numero='. $row2['numero'] .'"  method="POST">';
echo '<input type=hidden name="idph" value="'.$row2['idph'] .'">';
echo '<td><img border=0 height="50" src="../../images/alb_photos/' . $row2['photo'] . '"><center>' .$row2['nom']. '<br>
          <input name="numero" type="text" id="numero" value="'
.$row2['numero'] .'" size="1" maxlength="3"></td>';     
}
echo '</tr></table><p>';
  }
 
  echo '<input type="button" name="lien" value="Annuler" onClick="self.location.href=\'aff_alb_photos.php\'">';
  echo '<input type="submit" value="envoyer" /></center>';
echo '</form>';

Mise à jour du champs numéro dans la base :

$idph = $_POST['idph'];
    $numero = $_POST['numero'];
foreach($_POST as $sKey => $iNewOrderValue){ // Ici je récuère l'ensemble des clés qui sont dans le $_POST
  if(strpos('numero_', $sKey) !== false){ // Ici je regarde si le champs en cours correspond à un champs qui sert à changer l'ordre d'affichage
    list($sUseless, $idph) = explode('_', $sKey); // Ici je récupère l'id de la photo dans le nom du champ
    $result=mysql_query("UPDATE photos SET numero='$iNewOrderValue' WHERE idph='$idph'"); // Ici je fais la mise àa jour de ta BDD
  }
}

En fait, pour ce dernier, je n'ai rien changé, et il ne se passe rien !
Si j'enlève tout ce qui fait référence à idph et que je change un numéro, tous les numéros changes ....

Hors ligne

#4 09-01-2010 14:37:52

Jiinn
Membre
Inscription : 06-01-2010
Messages : 22

Re : modifier ordre affichage photos

Hello, Pour l'ordre pourquoi tu ne veux pas le demander a ta requête sql avec un ORDER BY numero ?

--> Lien d'aide

Dernière modification par Jiinn (09-01-2010 14:48:29)

Hors ligne

#5 09-01-2010 14:54:54

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

Jiinn a écrit :

Hello, Pour l'ordre pourquoi tu ne veux pas le demander a ta requête sql avec un ORDER BY numero ?

--> Lien d'aide

En fait, ce que je veux faire, c'est modifier l'ordre d'affichage.
A l'enregistrement de la photo, le numéro d'ordre d'affichage est = à l'idph (identifiant unique). Mais je pourrais vouloir modifier l'ordre .... par exemple, afficher la 5° photo en 2° .....

Hors ligne

#6 09-01-2010 20:16:11

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : modifier ordre affichage photos

salut,

je crois que tu devrais ré expliquer plus clairement ce que tu veut parce que la c'est pas très clair wink

si l'ordre d'affichage est aléatoire => order by rand().
s'il s'agit d'un reclassement, la c'est plus compliqué et tu risque de devoir le traiter avec PHP.

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#7 10-01-2010 10:45:29

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

Bonjour moogli. Et merci pour l'aide que tu peux m'apporter.
Je reprends donc ! Je ne remet pas les scripts. Ils sont plus haut (hier, 12h52).

J'ai une table mysql (photos) qui comporte principalement l'"idph" (identifiant unique de l'enregistrement), le "nom" de la photo, le "numero" de la photo (qui au départ est le même que l'idph) .....

J'affiche les images à l'écran (via un menu des gestion de site). Dessous, j'affiche le "numero" de la photo que je peux modifier si je veux changer l'ordre d'affichage. Bien sûr, l'affichage initial se fera par "ORDER BY numero".
Le nombre de photos affichées n'est pas limité, ni pré-défini.

Je n'arrive donc pas à enregistrer dans la base le ou les numéros modifiés des photos concernées.

Hors ligne

#8 10-01-2010 11:20:28

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : modifier ordre affichage photos

Tu ferrais bien de faire du débuggage sur ton script car ta méthode est la bonne (bon j'ai pas vérifié que le script pouvait fonctionner, c'est ce que je te demande ^^).
Tentes de faire un affichage des variables, tu dois avoir un truc qui ne passe pas bien ou une simple erreur de nom, ou encore un écrasement ou que sais-je. smile

Hors ligne

#9 10-01-2010 12:02:00

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

xTG a écrit :

Tu ferrais bien de faire du débuggage sur ton script car ta méthode est la bonne (bon j'ai pas vérifié que le script pouvait fonctionner, c'est ce que je te demande ^^).
Tentes de faire un affichage des variables, tu dois avoir un truc qui ne passe pas bien ou une simple erreur de nom, ou encore un écrasement ou que sais-je. smile

Bonjour xTG,

Si après la réception des variables je fais un test de variable :
$idph = $_POST['idph'];
$numero = $_POST['numero'];
echo '<pre>'; print_r($_POST); echo '</pre>';

J'ai ceci :
Array
(
    [idph] => 8
    [numero] => Array
        (
            [0] => 1
            [1] => 6
            [2] => 5
            [3] => 7
            [4] => 9
        )

)

Le [1] => 6 correspond à la deuxième photo que j'ai modifié. Le 6 était à 3 lors de l'affichage.
Donc, les variables sont bien réceptionnées.

Mais je ne trouve pas mon erreur ...... mad sad

Hors ligne

#10 10-01-2010 13:04:21

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : modifier ordre affichage photos

Hum alors une petite remarque en rapport avec ton print_r.

if(strpos('numero_', $sKey) !== false)
Tu recherches "numero_" dans une chaîne qui ne le contient jamais apparemment.

Hors ligne

#11 10-01-2010 17:00:32

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

Merci, mais si je fais :

    $idph = $_POST['idph'];
    $numero = $_POST['numero'];

if(strpos('numero_', $sKey) !== false)
{
$i = 0;
        $idph = $_POST['idph'][$i];
        $numero = $_POST['numero'][$i];
        $i++; ................

C'est pareil .............. hmm
Il doit bien y avoir une solution ..............:mad:

Hors ligne

#12 10-01-2010 17:54:07

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : modifier ordre affichage photos

Je suis pas sûr que tu ais compris mon post...
Tu vais un if sur la recherche de "numero_"...
Mais lorsque tu affiches tes variables tu n'as que des chiffres. Nulle part "numero_" !!!
Donc ton if ne se fait JAMAIS......

J'espère que tu m'auras lu cette fois-ci. neutral

Hors ligne

#13 10-01-2010 18:31:53

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

sad

xTG a écrit :

Je suis pas sûr que tu ais compris mon post...
Tu vais un if sur la recherche de "numero_"...
Mais lorsque tu affiches tes variables tu n'as que des chiffres. Nulle part "numero_" !!!
Donc ton if ne se fait JAMAIS......

J'espère que tu m'auras lu cette fois-ci. neutral

Mais si j'enlève le if, l'ordre doit s'exécuter. Et si j'écris ceci :

$idph = $_POST['idph'];
    $numero = $_POST['numero'];

  foreach ($numero as $numero2 => $result) ;

$i = 0;
        $idph = $_POST['idph'][$i];
        $numero = $_POST['numero'][$i];
        $i++;
    {
    $result=mysql_query("UPDATE photos SET numero WHERE idph='$idph'");

J'ai le même résultat .... C'est à dire le même Array que précédemment, mais la mise à jour dans la base ne se fait pas ! sad
Je pense avoir une erreur de syntax dans ma requête $resutl, mais où ???

Dernière modification par t14 (10-01-2010 18:33:07)

Hors ligne

#14 10-01-2010 21:05:52

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : modifier ordre affichage photos

Euh... J'espère que la dernière version de ton code est un malencontreux copier/coller...
Enfin je trouve qu'il y a bug dans tes explications...

idph = identifiant unique référençant UNE photo non ?
Alors pourquoi un array avec plusieurs numeros ????? Tu ne modifies qu'une seule position.
Auquel autre cas il faut que tu envoies tous les idph à modifier.

Voici un code avec ce que j'ai compris de ton code et organisation bdd. Mais à la vue de certaines de tes réponses j'ai l'impression que tu tests des codes totalement aléatoire sans même les comprendre. neutral

<?php
if( isSet($_POST['liste']) ){
  //Boucle sur les valeurs
  foreach($_POST['liste'] as $idph => $numero){
    //Cast en integer afin de n'avoir que des entiers
    $idph = (int)$idph;
    $numero = (int)$numero;
    //Requête d'update de la photo pointée par idph
    mysql_query("UPDATE photos SET numero='$numero' WHERE idph='$idph'");
  }
}

A savoir donc une variable $_POST['liste'] = array( idph1 => numero1, idph2 => numero2, ect...);

Hors ligne

#15 11-01-2010 18:54:14

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

Merci pour le code ....
Je pensais enfin que ça allait fonctionner, mais rien0. Pas de message d'erreur, pas de mise à jour de la base ....
J'ai recopié tel que ton code .... neutral

Je suppose que le problème, est que je récupère dans mon tableau "Array" que les valeurs des numéros. Pas celles des "idph". Donc je ne peux faire le lien ....

Array
(
    [0] => 1
    [1] => 3
    [2] => 5
    [3] => 7
    [4] => 2
)

Il faudrait que j'arrive à dire que pour chaque valeur se trouvant entre crochet ([x]), je lui associe le numéro suivant => y à enregistrer dans la base. Et là .... je sais pô .... roll

Hors ligne

#16 11-01-2010 19:15:33

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

Il faudrait que les chiffres se trouvant entre [] représentent l'idph, ce qui n'est pas le cas. Il n'y a donc pas notion d'idph .... roll

Hors ligne

#17 11-01-2010 23:19:57

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : modifier ordre affichage photos

echo '<input name="'. $row['idph'] . '" type="text" id="numero_' . $row['idph'] . '" value="'.$row['numero'] .'" size="1" maxlength="3">';

Aussitôt dit, aussitôt fait.

Hors ligne

#18 12-01-2010 16:44:23

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

Merci xTG ! Je commence à y voir clair, mais pas suffisamment pour arriver au bout. (au passage, peux-tu m'expliquer id="numero_' . $row2['idph'] . ')

Je récapitule ; j'affiche les photos avec leur numéro d'ordre dessous :

{
echo '<form action="maj_ordre_photos.php?idph='. $row2['idph'] .' & numero='. $row2['numero'] .'"  method="POST">';  
echo '<td><img border=0 height="50" src="../../images/alb_photos/' . $row2['photo'] . '">
<center><input name="'. $row2['idph'] . '" type="text" id="numero_' . $row2['idph'] . '" value="'.$row2['numero'] .'" size="1" maxlength="3"></center></td>';
}

Je modifie le ou les numéros désirés, je valide pour mise à jour dans la base, et là .......................................................... pas de modification. mad

Suite à la validation, ma variable $numero = $_POST['numero']; est égal à :

[1] => 1
[5] => 3
[6] => 5
[7] => 7
[8] => 9

1,5,6,7,8 correspond aux idph.
1,3,5,7,9 correspond aux numéros à écrire dans la base.

Mon script de mise à jour dans la base :

$numero = $_POST['numero'];

if( isset($_POST['numero']) )
{
    //Boucle sur les valeurs
  foreach($_POST['numero'] as $idph => $numero)
  {
 
    //Cast en integer afin de n'avoir que des entiers
    $idph = (int)$idph;
    $numero = (int)$numero;

    //Requête d'update de la photo pointée par idph
    mysql_query("UPDATE photos SET numero='$numero' WHERE idph='$idph'");
    }
}

En fait, dans ma variable réceptionnée "$numero", j'ai tout ce qu'il me faut .... Mais comment dire d'inscrire dans la base les numéros (=> "y") correspondant aux idph qui se trouvent entre crochets ([x]) ????? neutral

Hors ligne

#19 13-01-2010 06:12:18

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : modifier ordre affichage photos

C'est ce que fait la boucle foreach que tu me demandes. ^^
En fait ces arguments fonctionnent ainsi :

Pour toute valeur de $_POST['numero'] stocker la valeur dans $numero et la clé dans $idph.
PS : $_POST[clé] = valeur

Mets des echo dans la boucle foreach pour vérifier que tu récupères bien les bonnes valeurs et rajoutes un die(mysql_error()) à la requête SQL.

Hors ligne

#20 13-01-2010 09:25:56

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : modifier ordre affichage photos

Salut,

par exemple :

<?php
if( isset($_POST['numero']) )
{
    //Boucle sur les valeurs
  foreach($_POST['numero'] as $idph => $numero)
  {
     //Cast en integer afin de n'avoir que des entiers
    $idph = (int)$idph;
    $numero = (int)$numero;
    $requete = 'UPDATE photos SET numero='.$numero.' WHERE idph='.$idph;
    //Requête d'update de la photo pointée par idph
    $ret = mysql_query($requete);
if ($ret === false) {
  echo 'Erreur SQL : '.mysql_error().'<br />Requete : '.$requete.'<br />";
}
    }
}
?>

tu pourras voir s'il y a des erreurs SQL, si ce n'est pas le cas les valeurs doivent être mise à jour.

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#21 13-01-2010 19:24:44

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

Bonjour à tous,

Moogli, j'ai donc testé ton code :

//Requête d'update de la photo pointée par idph
     $requete = 'UPDATE photos SET numero='.$numero.' WHERE idph='.$idph.';
    $ret = mysql_query($requete);
    if ($ret === false)
    {
      echo '
Erreur SQL : '.mysql_error().'<br />Requete : '.$requete.'<br />';  
      }

Et j'ai comme réponse sur le "echo" :

Parse error: syntax error, unexpected T_STRING

ou

//Requête d'update de la photo pointée par idph
$requete = 'UPDATE photos SET numero='.$numero.' WHERE idph='.$idph.';
$result = mysql_query($requete,$link) or die ('
Erreur : '.mysql_error() );

Et j'ai la même réponse .... sad

Hors ligne

#22 13-01-2010 20:25:19

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : modifier ordre affichage photos

Essayes avec cela ça fonctionnera mieux...

$requete = 'UPDATE photos SET numero='.$numero.' WHERE idph='.$idph;

La fin de chaîne était rouverte mais non refermée.

Edit : tu devrais utiliser un éditeur qui colore la syntaxe tu verrai tout de suite ce genre d'erreurs.

Dernière modification par xTG (13-01-2010 20:25:51)

Hors ligne

#23 14-01-2010 12:12:40

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

xTG a écrit :

Essayes avec cela ça fonctionnera mieux...

$requete = 'UPDATE photos SET numero='.$numero.' WHERE idph='.$idph;

La fin de chaîne était rouverte mais non refermée.

Edit : tu devrais utiliser un éditeur qui colore la syntaxe tu verrai tout de suite ce genre d'erreurs.

Ben je suis désolé, mais ça ne fonctionne pas .... sad

Après :
    $requete = 'UPDATE photos SET numero='.$numero.' WHERE idph='.$idph;
    $result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );

je n'ai même pas de message d'erreur, pas de mise à jour dans la base ! Ce que je souhaitais faire est certainement impossible ...... sad

Dernière modification par t14 (14-01-2010 12:13:17)

Hors ligne

#24 14-01-2010 12:59:49

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : modifier ordre affichage photos

Et si tu fais un echo de ta variable $requete il te l'affiche ?
Cela me paraît bien bizarre ton affaire, j'ai plus l'impression que c'est une étourderie qui s'est glissée quelque part.

Hors ligne

#25 14-01-2010 13:49:32

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : modifier ordre affichage photos

Ben non, le script se déroule mais ne m'affiche rien si je fais un echo de la requête : echo ("<br><u>requete =</u> ".$requete) ;

Une étourderie serait tout à fait possible, mais où .... ???? pffffffffffff............

$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

    $idph = $_POST['idph'];
    $numero = $_POST['numero'];
//echo '<pre>'; print_r($_POST); echo '</pre>'; // test des variables
//exit;

if( isset($_POST['numero']) )
{
    //Boucle sur les valeurs
  foreach($_POST['numero'] as $idph => $numero)
  {
 
    //Cast en integer afin de n'avoir que des entiers
    $idph = (int)$idph;
    $numero = (int)$numero;

    //Requête d'update de la photo pointée par idph
    $requete = 'UPDATE photos SET numero='.$numero.' WHERE idph='.$idph;
    $result = mysql_query($requete,$link) or die ('Erreur : '.mysql_error() );
echo ("<br><u>requete =</u> ".$requete) ;        // test de la requête
 
        }
}    
     mysql_close();
    header("Location: aff_alb_photos.php");
exit;
?>

Hors ligne

Pied de page des forums