Php probleme echo

Bonjour,

j ai un fichier php qui me permet de modifier les champs tirés d un menu déroulant tout est ok la modif ok mais il devrait y avoir un echo pour me dire que tout s est bien passé et j obtiens une page blanche ... j ai fiat un echo 'je suis ici'; tout au long de mon script et c est au niveau du if($req3) qu il y a un problème ... p

Pouvez vous l aider

merci

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Catalogue</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body link="#000000" vlink="#FFFFFF" alink="#FFFFFF">
<div id="body">

<?php

include ('config.php');
include ('connexion.php');

//reference

$reference = $_POST["reference"];

$sql = "SELECT reference, artiste, album, format FROM contenu WHERE reference='".$_GET['reference']."'" ;
$req = mysql_query($sql) or die( mysql_error() ) ;
$total = mysql_num_rows($req);

$sql3= "UPDATE contenu SET reference='".$_POST

['reference']."', artiste='".$_POST

['artiste']."',album='".$_POST['album']."',format='".$_POST['format']."' WHERE reference

='".$_POST['reference']."'" ;

$req3= mysql_query($sql3) or die('Erreur SQL !'.$sql3.'<br>'.mysql_error());

if($total!=0)

{
echo '<form method ="post" action="modifier.php">';
echo '<table>'."\n";
echo '<tr>';

echo '<td ><b><u>reference</u></b></td>';
echo '<td><b><u>artiste</u></b></td>';
echo '<td><b><u>album</u></b></td>';
echo '<td><b><u>format</u></b></td>';
echo '</tr>'."\n";

while($row = mysql_fetch_array($req))

{
echo '<tr>';
echo '<td><input type="text" name="reference" value="'.$row["reference"].'"/></td>';
echo '<td><input type="text" name="artiste" value="'.$row["artiste"].'"/></td>';
echo '<td><input type="text" name="album" value="'.$row["album"].'"/></td>';
echo '<td><input type="text" name="format" value="'.$row["format"].'"/></td>';
echo '</tr>'."\n";
}

echo '</table>'."\n";
echo '<input type="submit" name="btOk" value="Modifier"/>';
echo '</form>';
if (isset($_POST['btOk']))
{

echo 'je suis ici'; if($req3)

{
echo ("L'insertion a été correctement effectuée") ;
}

else

{
echo("L'insertion à échouée") ;
}

}

}

?>
</body></html>

<?php
mysql_close();
?>
Configuration: Windows Vista
Firefox 3.0.6

14 réponses

Résumé de la discussion

Un script PHP destiné à modifier les champs issus d'un menu déroulant produit une page blanche et ne retourne pas l'écho de réussite souhaité, malgré des echo répétés dans le code. Le problème semble se focaliser sur la condition if($req3) et sur l'évaluation du résultat de la requête, l'exécution contient aussi des erreurs de syntaxe comme des else mal placés. Plusieurs échanges suggèrent de retirer des blocs else, de corriger la logique et d'afficher l'état via une vérification du succès de la requête, afin d'éviter les pages tronquées. En parallèle, des conseils évoquent l'affichage d'un message de confirmation après validation et la nécessité d'éviter des erreurs de syntaxe qui interrompent l'exécution du script.

Bobot (l’IA à votre service)
  1. Contributeur
    salut!
    Moi je ferai
    {
    echo "L'insertion a été correctement effectuée" ;
    }
    
    else
    
    {
    echo "L'insertion à échouée"  ;
    } 
    
    1. merci pour ta reponse je viens de tester et ca marche po :-( toujours page blanche alors que les données se mettent bien a jour dans ma base ...
  2. Contributeur
    {
    echo 'L\'insertion a été correctement effectuée' ;
    }
    
    else
    
    {
    echo 'L\'insertion à échouée'  ;
    } 
    
    
    1. toujours pas est ce qu il y a un moyen de vérifier si la condition se fait ou pas ?
  3. Contributeur
    essai de virer la condition pour voir!
    1. j ai virer la condition il me met cette erreur ...
      Parse error: syntax error, unexpected T_ELSE in D:\wamp\www\handsandarms\modifier.php on line 84
  4. Contributeur
    normal!un else sans if c'est impossible!Vire(temporairement) la partie traitant le else et on vera s'il affiche!
    1. ouh lalal la fatigue lol j enleve le if et le else je laisse juste {
      echo "L'insertion a été correctement effectuée" ;
      }

      et rien ne s affiche j ai esaye ae cote , parenthese ...
  5. Contributeur
    non,enlève aussi les {}
    met juste echo'blalalalalal';
    1. ca ne s affiche pas non plus ...

      la suggestiond e tokass non plus c ets vraiment bizarre
    2. @stefanelle
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
      <html> 
      <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> 
      <title>Catalogue</title> 
      <link rel="stylesheet" type="text/css" href="style.css"> 
      </head> 
      
      <body link="#000000" vlink="#FFFFFF" alink="#FFFFFF"> 
      <div id="body"> 
      
      <?php 
      echo "coucou";
      ?>
      
      </body>
      </html>
      ça ?
  6. oui c ets bine le fichier modifier.php
    1. Contributeur
      il manque un ' dans ton code après sql error
    2. Contributeur
      @Ricky38Ricky38
      peux tu copier la ligne en question pour qu'elle puisse bien voir! ;-))
  7. Contributeur
    en tout cas bizarre ton echo
    1. oui c est clair la je me tire les cheveux j ai tout essayé avec cote avec guillement avec parentheses ...
    2. Contributeur
      @stefanelle
      $req3= mysql_query($sql3) or die('Erreur SQL !'.$sql3.'<br>'.mysql_error()); 


      ici il te manque un 'tu l'ouvres mets tu le ferme pas
      <br>'.mysql_error());
    3. @Ricky38ça ce n'est pas obligatoire si le code se termine en php
  8. Es-tu sûr qu'il s'agit de $_GET['reference'] et pas $reference dans la première requete ?
    Je demande ça car tu as spécifié
    $reference = $_POST["reference"]; 
    et je ne vois nulle-part son utilisation.
    1. oui c est bien $_GET['reference']

      le $reference j ai oublie de l enlever suite a d autre smodif ...
  9. Contributeur
    ecoute!
    remets ça
    if($req3)
    
    
    {
    echo ("L'insertion a été correctement effectuée") ;
    }
    
    else
    
    {
    echo("L'insertion à échouée") ;
    } 
    

    mais ne test pas le bouton!(j'ai vu un de mes anciens codes et j'ai procédé de la sorte)!
    1. ah interessant j ai enlever le test du bouton et il m affiche le echo comme quoi $req3 est mais ils s affiche tout de suite .... et aps apres la validation
  10. ok, alors je vois que tout ets sensé s'afficher à partir du moment ou le nombre de résultats n'est pas 0 :
    if($total!=0)

    peux-tu ajouter ceci pour voir ?
    echo $total;

    Pas dans le if, mais au-dessus.
    1. rien ne sa ffiche comme si je na vais rien rajouter j ai l impression que le probleme vient des qu on entre un paramatre dans la boucle juste en dessous de la validation du bouton ...
    2. @stefanellebon vous etes peut etre couché je vais regarder ca demain avec la tete froide :-)

      merci en tout cas pour votre aide et patience
  11. Contributeur
    ok bonne nuit!
    je vais essayer de voir ça de plus près avant le dodo!
    1. tu as reussi a trouver une piste :-)