Petit prob de fonction !

Répondre
Lefounard
le 06/02/2005 à 22:00
Lefounard
Bonjour,
Voila j'ai un script avec suppression de news , et kan l'admin supprime la news ca enleve 1 au nombre de news posté par les posteur. Or j'execute : j'ai aucun message d'erreur, la news est bien supprimer mais le nombre de post reste le meme !
voila le code qui appelle la fonction incre_hit :
<?php
//fonction d'incrémentation du nombre de news du posteur !
function incre_hit($rub,$pseudo,$do)
{
connect($t2);
$sql= 'SELECT '.$rub.' FROM site_membres WHERE pseudo="'.$pseudo.'"';
$req= mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data= mysql_fetch_array($req);
if($do==plus){$nb=$data[''.$rub.'']+1;}
if($do==moins){$nb=$data[''.$rub.'']-1;}
disconnect($req);

connect($t2);
$sql = 'UPDATE site_membres SET
'.$rub.'="'.$nb.'"
WHERE pseudo="'.$pseudo.'"';

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close ();
}
?>


Et voici le script qui appelle la fonction :
<?php
elseif($_GET['do']==dl)
{
if($_SESSION['statut']==1 || $_SESSION['statut']==2)
{
supp($nw,$_GET['id']);

connect($nwc);
$sql ='DELETE from site_news_comentr WHERE Id_news="'.$_GET['id'].'"';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close();


connect($nw);
$sql2 = "SELECT * FROM site_news WHERE id='".$_GET['id']."'";
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
$data = mysql_fetch_array($req2);
$pseudo=$data['auteur'];
mysql_close();
incre_hit("nb_news",$pseudo,"moins");


echo "<meta http-equiv='refresh' content='0; url=admin_news.php?debut=yes'>";
}
else
{
echo "Vous n'avez pas les droits de suppression de cet new !";
}
}

?>


Merci de votre aide !
Ciao,
I am singing in the rain , I am happy again !!
celionor
le 06/02/2005 à 22:12
celionor
<?php

@mysql_query("UPDATE `table_news` SET `nb_news` = (nb_news - 1) WHERE pseudo = "$pseudo" LIMIT 1");

?>


Voila la requete de base pour enlever 1 du nombre de news poster.

A toi de le mettre en place dans ton script.
bibi
le 06/02/2005 à 22:42
bibi
celionor un conseil
il vaut mieux mettre un or die et voir l'erreur pour la corriger plutot que de mettre un @ devant et de ne pas comprendre prkoi ca ne fonctionne pas :)
commit suicide
Lefounard
le 06/02/2005 à 23:15
Lefounard
celionor, ton truc n'est pas car il fait pas l'incrémentation !
Merci de votre aide,
I am singing in the rain , I am happy again !!
celionor
le 07/02/2005 à 08:40
celionor
Lefounard > A toi de l'adapter a ta sauce..
Pour l'incrémentation, tu fais +1, tout simplement.

Bibi : ta réponse est judicieuse :)
vengeur002
le 07/02/2005 à 08:46
vengeur002
essai comme ca
<?php     
if($do==plus){$nb=$data[''.$rub.'']+1;}
elseif($do==moins){$nb=$data[''.$rub.'']-1;}
disconnect($req);
?>
Lefounard
le 07/02/2005 à 14:29
Lefounard
C'est super tu m'apprends un truc ! J'ai deja fait mon incrementation ,as-tu lu mon premier message ?! non !
Ca marche toujours po !
Ciao,
I am singing in the rain , I am happy again !!
LA GLOBULE
le 07/02/2005 à 14:36
LA GLOBULE
Et si tu changeais ton :

if($do==plus){$nb=$data[''.$rub.'']+1;}
if($do==moins){$nb=$data[''.$rub.'']-1;}

En :

if($do=='plus'){$nb=$data[$rub]+1;}
if($do=='moins'){$nb=$data[$rub]-1;}

PS : quand tu utilises plein de fonctions qui ne sont pas de bases dans PHP, donne nous leur code, sinon, on ne peut pas imaginer ce qu'elles font.
Lefounard
le 07/02/2005 à 17:12
Lefounard
Salut,
J'ai quand meme fais les modifs préconiser par LA_GLOB or toujours comme avant j'ai ma fonction qui ne fonctionne pas en décrementation , elle marche bien en incrémentation !
Ca doit venir du morceau de code donner dans le premier message !
J'arrive pas trop a trouver la source du prob !
Quand je supprime une news aussi ca appelle la fonction avec pseudo du posteur de la news et ca devrait enlever 1 au nb de news poster deja par ce membre !

Ciao,
I am singing in the rain , I am happy again !!
LA GLOBULE
le 07/02/2005 à 17:19
LA GLOBULE
As tu essayé de debugger un peu ?

Fais des print_r($data), print_r($nb) dans ta fonction, avant et aprés l'incrémentation / décrémentation.
Et voit ce qu'il se passe.
Répondre
LoadingChargement en cours