error: sql_fetch_array

Statut
N'est pas ouverte pour d'autres réponses.

tribal_

Elite
Bon bah voila je debute php.
J'apprend le php sur un super site d'ailleur pas mal de gens connait c'est www.siteduzero.com
Je suis le zero :cool:

J'apprend donc le php et nous aide des truc et apres ce qu'on a vu on creer des ptit truc comme mini chat, livre d'or ex.

Il nous a montrer comment creer un mini chat et un livre d'or.
Et dans les 2 il a une erreur avec sql_fetch_array.
Je voit pas le probleme dans le code mais bon.
Mais on dirais que sql connais pas cette commande.

http://users.rockweb.org/jimmy/livreor.php

Voici le lien ou le livre d'or y est :/

Voici le code qui se trouve dans le livreor.php

entre les balise body a dit:
<body>

<form method="post" action="livreor.php">
<p>Mon site vous plaît ? Laissez-moi un message !</p>

<p>
Pseudo : <input name="pseudo" /><br />
Message :<br />
<textarea name="message" rows="8" cols="35"></textarea> <br />
<input type="submit" value="Envoyer" />
</p>
</form>

<p class="pages">
<?
mysql_connect("localhost", "loginsql", "passesql");
mysql_select_db("coursphp");

// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------

if (isset($_POST['pseudo']) AND isset($_POST['message']))
{

$pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité

$message = htmlentities($_POST['message'], ENT_QUOTES); // De même pour le message
$message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

// On peut enfin enregistrer :eek:)
mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
}

// --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------

// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 20; // Essayez de changer ce nombre pour voir :eek:)

// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];

// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);

// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
}

?>

</p>

<?
// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------

if (isset($_GET['page']))
{
$page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
}

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>




</body>
table sql a dit:
J'ai creer id avec le type INT et j'ai selectrionne INDEX et en auto increment.
J'ai aussi creer pseudo en VARCHAR avec la valeur 255 et message avec le type TEXT

Alors le probleme vient d'ou ?
 

MbK_

Etudjant
quelle est ton erreur?

Edit : dsl j'avais po tout lu :)

Code:
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');

ton erreur vient certainement de ta table.

Extrait la table pour voir exactement comment tu l'as agencée.
 
1er
OP
T

tribal_

Elite
MbK_ a dit:
quelle est ton erreur?

Edit : dsl j'avais po tout lu :)

Code:
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');

ton erreur vient certainement de ta table.

Extrait la table pour voir exactement comment tu l'as agencée.
Hum sa fait depuis hier que j'accede a la base de donnée et c'est vraiment aujourd'hui que je chipotte.
JE doit copier coller le texte qu'il a dans la table ?

Edit ceci que tu veut ?

-- phpMyAdmin SQL Dump
-- version 2.6.2-pl1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Mardi 10 Mai 2005 à 22:08
-- Version du serveur: 4.0.24
-- Version de PHP: 4.3.10-13
--
-- Base de données: `jimmy`
--

-- --------------------------------------------------------

--
-- Structure de la table `livreor`
--

CREATE TABLE `livreor` (
`id` int(11) NOT NULL auto_increment,
`pseudo` varchar(255) NOT NULL default '',
`message` text NOT NULL,
KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

--
-- Contenu de la table `livreor`
--
 

MbK_

Etudjant
En fait tu à copier coller le code du site du zero?

J'ai pas trop le temps de regarder ca mnt. si tu sais attendre, je pourrais p-e passer demain.

En attendant, si qlq1 passe par là, qu'il ne se gène pas :)

EDIT : fait des or die(mysql_error()); à la fin des requetes.

tu auras ton erreur
 

ZyPh0s

Touriste
Juste une question de goût, utilises fetch_object cela rend le code plus lisible :D
 

raka

Fanatique
est tu sur que ta variable $retour recoit bien quelque chose????

Essaye en faisant $donnees= @mysql_fetch_array($retour)

S'il ne t'affiche rien c'est que ta variable réponse est vide. Vérifie bien tes requetes.
 
1er
OP
T

tribal_

Elite
Rofl j'ai appris a faire uen gestion des news et RIEN fonctionne et denouveau a cause de mysql_fetch_array
 

MbK_

Etudjant
Fait afficher l'erreur avec

mysql_error()
 
1er
OP
T

tribal_

Elite
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/users/jimmy/livreor.php on line 51
Page :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/users/jimmy/livreor.php on line 87
 

Ezekiel !

Elite
[PixeL a dit:
]Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/users/jimmy/livreor.php on line 51
Page :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/users/jimmy/livreor.php on line 87
c'est que ta requete est mauvaise... verifie bien ta table
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut