Erreur pour compter les entrées d'une base de donné, donc duplication des élémen

Résolu
djangoboy Messages postés 54 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 25 septembre 2007 - 14 mai 2005 à 16:35
djangoboy Messages postés 54 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 25 septembre 2007 - 10 oct. 2005 à 10:30
Bonjour,



Alors je suis en train de réaliser un scipt et j'ai besoin de ma base de données.

Je pense qu'il vaut mieux que je vous balance mon script et que je vous explique après :



<?

mysql_connect("sql.free.fr","dj.boy","xavqyqz1");

mysql_select_db("dj_boy");

$i = "0";

while($i < 5)

{

$i = $i + 1;

$retour = "";

if($i "1"){$numero "En ce moment";}

else{$numero = $heure[$i];}

$retour = mysql_query("SELECT
*FROM radio WHERE auteur='$auteur[$i]', titre='$titre[$i]'");

$nbr = mysql_num_rows($retour);

if ($nbr ==0)

{


mysql_query("INSERT INTO radio VALUES ('','$auteur[$i]',
'$titre[$i]','$album[$i]',
'$sortie[$i]','$label[$i]','$pochette[$i]')");

}

else

{

echo "déjà dans la base" ;

}



?>

<? echo $numero; ?>



">


<? echo $auteur[$i]; ?>


<? echo $titre[$i]; ?>


<? echo $album[$i]; ?>


<? echo $sortie[$i]; ?>


<? echo $label[$i]; ?>




<?

}

mysql_close();

?>



cette erreur apparait : Warning : mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/3/1/dj.boy/enregistrement.php on line 177
La ligne 177 correspond à : $nbr = mysql_num_rows($retour);
Les variables $auteur[$i] et les autres sont définie avant dans le script.

Je
verifie la presence dans la base de donnée des info si c'est le casje
ne fais rien, dans le cas contraire je les insert dans la base.

Cependant il me le rajoute a chaque fois que j'actualise.

J'ai essayer d'autre methode.

A la place de



$retour = mysql_query("SELECT
*FROM radio WHERE auteur='$auteur[$i]', titre='$titre[$i]'");

$nbr = mysql_num_rows($retour);

if ($nbr ==0)

j'ai essayer

$retour =mysql_query("SELECT * FROM radio WHERE auteur='$auteur[$i]',titre='$titre[$i]'");

;

if (mysql_num_rows($retour) ==0)

ou

$retour = mysql_query("SELECT
*FROM radio WHERE auteur='$auteur[$i]', titre='$titre[$i]'");

;

if (mysql_num_rows($retour) =="0")



aucun ne marche.



j'ai aussi utiliser une autre fonction ca na marche pas non plus.

$retour[$i] = mysql_query("SELECT COUNT(*) ASentrees
FROM radio WHERE auteur='$auteur[$i]', titre='$titre[$i]'");

$nombre_entrees[$i] = mysql_fetch_array($retour[$i]);

if ($nombre_entrees[$i] >="1")





Voila mon gros soucis. Alors si vous avez une manère de m'aider... Ecrivez là.

Merci d'avance à tout les fidèles.





.: Dj.Boy :.

6 réponses

djangoboy Messages postés 54 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 25 septembre 2007
10 oct. 2005 à 10:30
En fait j'ai trouver la solution a mon probleme,
$requete = mysql_query("SELECT*FROM radio WHERE auteur='$auteur[$i]', titre='$titre[$i]'");

mysql_num_rows($requete)

Voila merci pr votre aide.

.: Dj.Boy :.
3
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
14 mai 2005 à 17:45
Salut!

mysql_query retourne des "informations base de données" en cas de
succès de la requête ou FALSE en cas d'erreur. Ton erreur se produit
lorsque mysql_query retourne FALSE, ainsi mysql_num_rows, ou bien
encore mysql_fetch_array renvoient une erreur car elles ne peuvent
travailler sur un FALSE.



Il faut TOUJOURS vérifier le retour de mysql_query avant de faire qqch d'autre, genre:

$retour =mysql_query("SELECT * FROM radio WHERE auteur='$auteur[$i]',titre='$titre[$i]'") or die('Erreur MySQL');

Ci-dessus, si une erreur se produit, le message "Erreur MySQL" est affiché et le script est interrompu.



Si tu es en cours de debugage, tu peux faire afficher le message d'erreur mysql:

$retour =mysql_query("SELECT * FROM radio WHERE
auteur='$auteur[$i]',titre='$titre[$i]'") or die('Erreur MySQL:
' . mysql_error());



Autrement, tu peux gérer le tout toi-même:

$retour =mysql_query("SELECT * FROM radio WHERE auteur='$auteur[$i]',titre='$titre[$i]'");

if( !$retour )

{

header("location: erreur.php");

exit;

}



Voila, en affichant l'erreur mysql, tu pourras surement découvrir ton erreur, ;)

Si tu as d'autres questions, hésites pas



@++



R@f


www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 mai 2005 à 17:47
LOL



On voit ton mot de passe, tout bref sur ton compte free....



Je te conseille de changer de mot de passe vite fait....



Bref je viens de me connecter à ta base de données, change-moi ça vite fait...


Bref pour ton erreur elle vient de la requête SELECT ....



vérifie la syntaxe de ta requête



je vois que ta variable $titre[] n'est apparemment pas définie...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
14 mai 2005 à 17:50
J'en profite pour te dire de mettre un htaccess dans ton répertoire sessions aussi tant que t'y es ^^



Remplace aussi le début de ton code par <?php au lieu de <?



les balises XHTML se mettent en minuscules



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
djangoboy Messages postés 54 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 25 septembre 2007
15 mai 2005 à 08:52
Merci les gars,



J'ai trop était con pour mon compte je n'ai pas fais gaffe, ca fait
chier maintenant ya un con qui me la piké alors SVP la personne
concerné donner moi les coordonées de mon compte. Envoyé les à
django@adorire.com

Sinon le compte seras bloquer de toutes facon car un mail et déja parti chez les webmaster de free. Fait pas les *******.



Merci d'avance et je vais tester les données.

.: Dj.Boy :.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
15 mai 2005 à 09:06
Pffff, quelle attitude lamentable, y'en a qu'on vraiment que ça à fouttre...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous