Petit probleme d'update

Eléphant du PHP | 257 Messages

08 déc. 2005, 17:54

tas pas moyen d'afficher les erreurs sql?
nop ! comment fait-on pour afficher les erreurs sql ?? Donne moi un exemple concret stp..
:oops:

Eléphant du PHP | 257 Messages

08 déc. 2005, 18:01

qu'est-ce que cela signifie :
//On créé la liste des matieres 
$matieres_taille = count($matieres); 
for ($i=0; $i<$matieres_taille; $i++){ 
    $matieres_definies .= $matieres[$i]; 
    $matieres_definies .= ":"; 
ça se trouve dans l'autre script update. Est-ce nécéssaire pour un update ?

:oops:

Eléphant du PHP | 257 Messages

08 déc. 2005, 18:56

mouai merci les gars !!! Chacun vient mettre son grain de sel, mais personne ne trouve la solus apparement ... dommage !

merci qd meme
:cry:

Mammouth du PHP | 19672 Messages

08 déc. 2005, 19:06

Ajoute une ligne pour faire afficher ta requête echo($sql);
Copie la requête affichée et teste la directement dans phpMyAdmin: tu auras le message d'erreur directement et en principe clair et explicite.

Simplement dire "Ça marche pas" ne nous aide pas du tout.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 257 Messages

08 déc. 2005, 19:41

Ajoute une ligne pour faire afficher ta requête echo($sql);
Copie la requête affichée et teste la directement dans phpMyAdmin: tu auras le message d'erreur directement et en principe clair et explicite.

Simplement dire "Ça marche pas" ne nous aide pas du tout.
ben oui mais je ne recois pas de message d'erreur ! donc ke dois je dire d'autre ?
je vais essayer ton conseil merci
:wink:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

09 déc. 2005, 10:21

Bon, prenons les choses en main et reprenons depuis le début.
Dans ton script d'origine, on a déjà relevé des bizareries que tu n'as pas encore expliqué :

En effet, les variables sess_id, actualite et verification n'ont aucune origine connue.
Une variable reste formcement vide si tu ne lui affecte pas une valeur. Dans notre cas les valeurs de sess_id, actualite et verification doivent (je le présume) provenir de sources externes au programme comme $_SESSION si l'origine est la session, $POST ou $_GET si l'origine est un formulaire HTML ou un paramètre passé dans l'URL.

Voici une proposition de correction qui suppose que sess_id et $actualite proviennent de paramètres passés dans l'URL ou d'un formulaire en mode GET.
Quant à la variable $verification, je ne peux me prononcer.

Pour exécuter ce code tapez l'URL : http ://le_site_web/nom_de_la_page.php?sess_id=1&actualite=blabla
C'est à dire qu'on vient de démarrer le programme en lui passant deux valeurs : 1 pour sess_id et "blabla" pour actualite
<? 
session_start(); 

//Récupèrer les valeurs externes (ici elles sont passées par la méthode GET dans l'URL)
$sess_id = $_GET["sess_id"];
$actualite = $_GET["actualite"];

include_once("../../config/conf.inc.php"); 

if  (!isset($sess_id)){ 
    echo "    <script language='JavaScript'> 
                  document.location.replace('$verification'); 
                </script>"; 
} 

//sécurisation du système --> On empeche 
l'insertion de tags html 
$actualite=strip_tags($actualite); 

//construction de la query SQL 
$sql = "UPDATE membres SET actualite='$actualite', last_modif=now() WHERE id='$sess_id' "; 

//echo $sql; 
$base = new class_db($sql); 
$base->free(); 

//redirection sur la loge 
echo     "<script language='JavaScript'> 
                      document.location.replace('./../tableau.php'); 
            </script>"; 
?>
Voici pour les erreurs de formalisme PHP, mais fait attention, si la valeur de $sess_id que tu passe à ton programme ne correspond à aucun enregistrement dans la table membre, le UPDATE ne fait rien. Ce qui est normal.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 257 Messages

10 déc. 2005, 07:22

sadeq merci ... mais avant de trop se poser de question, voici ci dessous le même script php update qui fonctionne très bien sur la même base, la même table :
<? 
session_start(); 
session_register(sess_id); 

include_once("../../config/conf.inc.php"); 

if (!isset($sess_id)){ 
    echo "    <script language='JavaScript'> 
             document.location.replace('$verification'); 
             </script>"; 
} 


//On créé la liste des matieres 
$matieres_taille = count($matieres); 
for ($i=0; $i<$matieres_taille; $i++){ 
    $matieres_definies .= $matieres[$i]; 
    $matieres_definies .= ":"; 
} 


//sécurisation du système --> On empeche l'insertion de tags html 
$theatre=strip_tags($theatre); 
$long_metrage=strip_tags($long_metrage); 
$court_metrage=strip_tags($court_metrage); 
$television=strip_tags($television); 
$chant=strip_tags($chant); 
$danse=strip_tags($danse); 
$cv = addslashes(nl2br($cv)); 


//construction de la query SQL 
$sql = "UPDATE membres SET theatre = '$theatre', long_metrage = '$long_metrage', court_metrage = '$court_metrage', television = '$television', chant = '$chant', danse = '$danse', autre_experience = '$autre_experience', last_modif=now() WHERE id='$sess_id' "; 
$sql2 = "UPDATE cv SET cv_blob='$cv' WHERE id_user='$sess_id'"; 
//echo $sql; 
$base = new class_db($sql); 
$base->query($sql2); 
$base->free(); 


//redirection sur la loge 
echo     "<script language='JavaScript'> 
            document.location.replace('./../tableau.php'); 
           </script>"; 
?> 
ce que je voulais simplement faire c'est l'adapter à un nouvel espace nommé actualités, avec un update actualite. Ainsi il faut enlever certaines données et adapter certaines autres, et apparement c'est là que je me suis trompé.
Par exemple je pense que c'est ceci qui deconne :
//On créé la liste des matieres 
$matieres_taille = count($matieres); 
for ($i=0; $i<$matieres_taille; $i++){ 
    $matieres_definies .= $matieres[$i]; 
    $matieres_definies .= ":"; 
dois je remplacer matières par actualite, etc...
C'est ici à mon avis qu'il y a probleme ...

:cry: