Gros probleme avec php

Résolu
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009 - 15 févr. 2007 à 19:19
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009 - 18 oct. 2007 à 02:40
Bonjour,

J'ai un gros problème avec la programation en php.

mon but est d'afficher juste une enregistrement je m'explique.

quand je tape http://nico20011caus.dyndns.org/amis/index.php?id=1 alors c'est juste la premiere enregistrement qui s'affiche.

je fait

<?
//connection à la base de donnée

$titre = mysql_query('SELECT * FROM amis');
?>

le code ici
et plus vers le bas
<?
while($aff = mysql_fetch_assoc($titre))

{

echo $aff['nom'];

}

?>
Tout fonctionne sauf qu'il marque : Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in index.php

aidez moi s.v.p mon mon serveur mysql c'est une vrai tête de cochon.

27 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
15 févr. 2007 à 23:14
j'ai vu que quand je mettait un 1 a la place du $id ben il marchait mais quand je met $id il marque  Warning:

$_GET['id'] !!!

Bon sang, c'est la base de PHP ca !

http://fr2.php.net/manual/fr/reserved.variables.php
3
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
16 févr. 2007 à 21:44
C'est normal.
C'est à cause du typage.

Ton champ 'id' en mysql est de type INTEGER... hors $_GET['id'] est de type STRING.
Donc y'a un ptit bug tu crois pas ? ;)

Il faut que tu fasses ce qu'on appèle du transtypage. Ex :

mysql_query('SELECT un_champ_parmi_tant_d_autre FROM une_table WHERE id = '. (int) $_GET['id']);

Et voila c'est tout simple, le transtypage c'est le (int).
Je convertis donc ma chaine en entier.

A savoir qu'on peut transtyper un peu n'importe quoi :)
(int)
(string)
(array)
(object)
(bool)
etc... :)
3
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
15 févr. 2007 à 19:59
Salut, t'es sûr qu'il est connecté à la base de données ?
0
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 20:22
Heum oui il est ben connecter a la base de donnée g réussi d'afficher plusieurs table
0

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

Posez votre question
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 20:42
a non dsl c'est   $titre = mysql_query('SELECT * FROM amis WHERE id=$id'); qui me pose problèmes j'ai totu essayer mais sans succes
0
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
15 févr. 2007 à 20:44
Salut,
Vérifies que tu n'utilises pas une autre variable "$titre" après "$titre = mysql_query('SELECT * FROM amis');".

For every choice, a consequence (Fable)
0
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 20:48
non je n'utilise pas un autre variable ben le prob il vien qand je rajoute  WHERE id=$id
0
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
15 févr. 2007 à 20:51
Tu pourrais montrer la requete qui ne fonctionne pas stp.

For every choice, a consequence (Fable)
0
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 20:55
ben en fait c sa <?php

$link = mysql_connect(host,nom);

mysql_select_db(personne);

$titre = mysql_query('SELECT * FROM amis');

?>

<?

while($aff= mysql_fetch_assoc($titre))

{

echo $aff['nom'];

}

?>
0
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 20:58
ben sa marche pas quand on rajoute WHERE id=$id
0
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
15 févr. 2007 à 21:01
N'oublies pas le mot de passe pour "mysql_connect" et utilises "<?php" pour à la place de "<?".
Sinon n'utilises pas "mysql_query('SELECT * FROM amis');" mais plutôt "mysql_query('SELECT `nom` FROM `amis` WHERE id='.$id.'');"

For every choice, a consequence (Fable)
0
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 21:08
je vais me refferer a mon phpmyadmin pour la requete jte redonnera des nouvelles
sa marche pas plus mais regarde mon script:

<?php

$link = mysql_connect(host,

user,password);mysql_select_db(personne);

$nom = mysql_query('SELECT * FROM amis');

$titre = mysql_query('SELECT `nom` FROM `amis` WHERE id='.$id.'');

?>

 

<html>

<head>

<title>Mon album photo</title>

<link href="logo.ico" rel="shortcut icon">

</head>

<table style="WIDTH: 802px; HEIGHT: 68px" cellspacing="0"

cellpadding="0" width="802"

background="images\backlogo.jpg" border="0">

----,

</td>

<table style="WIDTH: 802px; HEIGHT: 27px" cellspacing="0"

cellpadding="0" width="802"

align="0"

background="images\back_m.jpg"

border="0">

----, Acceuil

</td>

Amis

l'escale&nbsp;,

Livre

d'or,

Nouveauté,

Skate,

&nbsp;Snow,

&nbsp;Membres,

&nbsp;,

&nbsp;,

&nbsp;

Nombre

de personne inscrit : 0 | Nombre de visiteurs : 0 |

Nombre de message dans le livre d'or : 0

</td>

</tr>

<tr>

<td style="HEIGHT: 395px">

&nbsp;

<table style="WIDTH: 300px; HEIGHT: 28px"

cellspacing="0"

cellpadding="0"

width="300"

border="0">

----, Amis de l'escale

</td>

----

<? while($data = mysql_fetch_assoc($nom))

{

echo ''.$data['nom'].'
';

}

?>

</td>

<td>

<?

while($data = mysql_fetch_assoc($titre))

{

echo $data['nom'];

}

?>,

----

photo

amis

Commentaire,

----

Commentaire ici

Messages,

----

message

ici

Envoyé

un message,

----

<table cellspacing="0" cellpadding="0"

width="300"

border="0">

----, Nom

</td>

,

----

Message,

<textarea

style="WIDTH: 227px; HEIGHT: 94px"

name="message"></textarea>,

----

Avatar,

Choisir

un avatar,

----

,

</td>

</tr>

</tbody>

</table>

</td>

</tr>

</tbody>

</table>

&nbsp;

</td>

</tr>

</tbody>

</table>

&nbsp;

</td>

</tr>

</tbody>

</table>

Createur

du site web : Nicolas

Lamarre

Design

par: Nicolas Lamarre

v1.0

</html>
0
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 21:28
puis il me marque   Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /usr/local/www/monalbumphoto/amis/index.php on line 125
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 févr. 2007 à 21:33
Sont passés où les while ?
Ton problème, à la base, était un problème de quotes :

<?php
$a = 'hello';
echo 'I said : '.$a; // affiche : I said hello
echo "I said $a"; // affiche : I said hello
echo 'I said $a'; // affiche : I said $a
?>
Bref : mysql_query 'SELECT bla FROM bli WHERE id = '.$var;
Mais pas : mysql_query 'SELECT bla FROM bli WHERE id = $var';

Ensuite, deux requêtes de type select à la suite font que tu vas perdre la 1ère (je parle du code que tu montres juste au-dessus).
0
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 21:50
ok ressu je vais essayer a javais oblier de dire que jétait sur php 5
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 févr. 2007 à 21:55
Raison de plus pour coder proprement ;-)
0
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 21:57
ben le mysql_fetch_assoc aurait t-il un rapport avec pcq il dise que c sa l'erreur
0
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 22:01
voici l'url pour savir de koi je parle http://nico20011caus.dyndns.org/amis/index.php?id=1
0
nico20011caus Messages postés 37 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 14 février 2009
15 févr. 2007 à 22:38
j'ai vu que quand je mettait un 1 a la place du $id ben il marchait mais quand je met $id il marque  Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
0
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
15 févr. 2007 à 22:58
Il ya deux cas de figure :
- l'erreur que tu obtient, signifit tout simplement que la requette à retourner 0 resultat.
- un soucis dans ta requette SQL (syntaxe) / Probleme coté base de données.

Pour être sûr et ne plus te caser la tete la prochaine fois (en meme temps faire du code propre) :

1) Verifie que la requette à bien passer, sinon debug les erreurs;
$result = mysql_query('TA REQUETTE SQL');
if (!$result) {
echo "Impossible d'exécuter la requête : " . mysql_error();
exit; // <-- beurk, super la doc php.net !
}
http://fr.php.net/manual/fr/function.mysql-fetch-assoc.php
http://fr.php.net/manual/fr/function.mysql-error.php

2) Verifier a chaque fois (si possible) qu'une requette de type SELECT renvoie toujours quelques chose > 0.
http://fr.php.net/manual/fr/function.mysql-num-rows.php
0
Rejoignez-nous