Récupération de données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupération de données

Re: Récupération de données

par moogli » 20 juin 2011, 15:13

rien de particulier ça aide pas ... si tu pouvais copier / coller ici le résultat ça aiderais.

d'après ton code je vois pas pourquoi c'est ainsi, on peux t'aider qu'en t’indiquant comme déboguer !

@+

Re: Récupération de données

par damours111 » 20 juin 2011, 12:26

et ça affiche quoi le var_dump ? parce que bon si tu regarde la doc elle résout rien cette fonction ^^
Elle résout tout justement. Car si tu apprends à débeuger, tu pourras résoudre tes problèmes en 2 minutes plutôt que de passer 3 jours à attendre une réponse qui "t'aidera", sans parler que tu auras toujours ce genre de problèmes.
LA var_dump ne me donne rien de particulier.

Alain

Re: Récupération de données

par moogli » 18 juin 2011, 02:15

mwé c'est moi qui lui demande le résultat, et la fonction ne solutionne rien mais aide a déboguer, cette remarque était dans le sens, php c’est pas de la magie ^^

Re: Récupération de données

par devlop78 » 18 juin 2011, 01:51

et ça affiche quoi le var_dump ? parce que bon si tu regarde la doc elle résout rien cette fonction ^^
Elle résout tout justement. Car si tu apprends à débeuger, tu pourras résoudre tes problèmes en 2 minutes plutôt que de passer 3 jours à attendre une réponse qui "t'aidera", sans parler que tu auras toujours ce genre de problèmes.

Re: Récupération de données

par moogli » 18 juin 2011, 00:51

var_dump($selected_auteur); va te donner le type et la valeur de la variable, cela va te permettre de comprendre pourquoi ce n'est pas une ressource mysql.

le mysql_free_result peux être mis juste après la boucle while ligne 57 / 58.


@+

Re: Récupération de données

par damours111 » 17 juin 2011, 23:10

Bonjour,

A priori, il faudrait déplacer le mysql_free_result juste après la boucle de lecture de la requête. Sur le principe on libère la ressource juste après avoir fini de l'utiliser.

Je pense que ce n'est pas le seul problème, ajoute or die(mysql_error()) après chaque mysql_query()
Par exemple :
$x = mysql_query($sql) or die(mysql_error());
Ca permet d’être sur que la requête s’exécute bien.

Pour ce qui est de déplacer mysql_free_result juste après la boucle de lecture de la requête, il est à la fin de la première requête

L'erreur est là depuis le début (Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/ville/public_html/biblio/rechauteurs.php on line 81)

Les autres requêtes ne sont pas exécutées, car le programme arrête là.

Autre idées?

Alain

Re: Récupération de données

par moogli » 17 juin 2011, 21:03

et ça affiche quoi le var_dump ? parce que bon si tu regarde la doc elle résout rien cette fonction ^^

Re: Récupération de données

par Mazarini » 17 juin 2011, 20:45

Bonjour,

A priori, il faudrait déplacer le mysql_free_result juste après la boucle de lecture de la requête. Sur le principe on libère la ressource juste après avoir fini de l'utiliser.

Je pense que ce n'est pas le seul problème, ajoute or die(mysql_error()) après chaque mysql_query()
Par exemple :
$x = mysql_query($sql) or die(mysql_error());
Ca permet d’être sur que la requête s’exécute bien.

Re: Récupération de données

par damours111 » 17 juin 2011, 20:22

Bonjour,

Personne d'autre à une idée? :?:

Alain

Re: Récupération de données

par damours111 » 01 juin 2011, 15:29

salut,

a priori $selected_auteur n'est pas une ressource mysql.

que donne un var_dump($selected_auteur); à la ligne précédent (80) ?


@+
Bonjour et merci de m'aider.

Cela donne la même erreur.

Alain

Re: Récupération de données

par moogli » 01 juin 2011, 01:08

salut,

a priori $selected_auteur n'est pas une ressource mysql.

que donne un var_dump($selected_auteur); à la ligne précédent (80) ?


@+

Récupération de données

par damours111 » 31 mai 2011, 23:43

Bonjour

En septembre 2010, j'avais eu une discussions avec Cyrano au sujet de la façon de récupérée des données. Tout fonctionnait bien, mais la, rien ne vas plus. J’obtiens ce message :
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/ville/public_html/biblio/rechauteurs.php on line 81
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/ville/public_html/biblio/rechauteurs.php on line 81
La ligne 81 est celle-ci :
mysql_free_result($selected_auteur);
Voici le scripts
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin   = "ville_alain";
$mdp     = "guylaine";
$base    = "ville_bibliotheque";
/* On récupère si elle existe la valeur de l'auteur envoyé par le formulaire */
$aut = isset($_POST['auteurs'])?$_POST['auteurs']:null;
$envoi = isset($_POST['fait']);
if ($envoi != false ) { 
include('resultats.php');
 }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Sélectionner un titre selon l'auteur choisie</title>

</head>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 100%">
<h3>Chercher un auteur et un titre</h3>
<br>Comment farie une recherche par auteur?</br>

<br> 1. Choisir l'auteur en faisant dérouler la liste.</br>
<br>2. Placer le curseur su l'auteur choisi.</br>
<br>3. Attendre que la liste des titres apparaisse.</br>
<br>4. Choisir le titre en faisant dérouler la liste</br>
<br>5. Placer le curseur su le titre choisi.</br>
<br>6. Cliquer sur le bouton « Choisir ».</br>
<br>7. Les cases Titre et Auteur sont automatiquement remplies.</br>
<br>8. Si vous voulez réserver, remplir les cases manquées avec un *</br>
<br>9. Cliquer sur le bouton « Envoyer la réservation ».</br>

</h3>
<?php
/* Connexion et stocker l'auteur choisi dans une variable*/
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false){
    $choixbase = mysql_select_db($base, $connexion);
    $sql1 = "SELECT DISTINCT`auteurs`".
    " FROM `nds_bib_`".
    " ORDER BY `auteurs`";
    $selected_auteur = mysql_query($sql1);
	$auteurs = array();
    /* On active un compteur pour les auteurs */
    $nb_auteurs = 0;
    if($selected_auteur != false)
    { 
        while($ligne = mysql_fetch_assoc($selected_auteur))
        {
            array_push($auteurs, $ligne['auteurs']);

            /* On incrémente le compteur */
            $nb_auteurs++;
        }	
    }
    ?>
	

	<?php 
	/* Création du formaulaire contenant la liste des auteurs*/
	?>
	<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgauteur">
	<fieldset style="border: 3px double #880000">
	<select name="auteurs" id="auteurs" onchange="document.forms['chgauteur'].submit();">
	<option value="-1">- - - Choisissez un auteur - - -</option>
	<h3> 
	
    <?php
    for($i = 0; $i < $nb_auteurs; $i++)
    {
		?>
		<option value="<?php echo($auteurs[$i]); ?>"<?php echo((isset($aut) && $aut == $auteurs[$i])?" selected=\"selected\"":null); ?>><?php echo($auteurs[$i]); ?></option>
		<?php
    }
    ?>
	</select>
    <?php
    mysql_free_result($selected_auteur);
    /* On vérifie si l'on a envoyé un auteur */
    if(isset($aut) )
    {
		 /* Si oui, on cré une liste de titre correspondand à l'auteur choisi */
		$sql2 = "SELECT auteurs , titre ".
                "FROM nds_bib_ ".
                "WHERE auteurs = '". mysql_real_escape_string($aut) ."' ".
                "ORDER BY titre";		
       if($connexion != false)
		{
            $selected_titre = mysql_query($sql2, $connexion);
            /* Un  compteur pour les auteurs */
            $nd = 0;
            /* Création de  deux tableaux pour les auteurs et les titres */
            $nom_auteur = array();
            $nom_titre = array();
            /* On va mettre les auteur et les titres dans les deux tableaux */
            while($ligne_titre = mysql_fetch_assoc($selected_titre))
            {
               array_push($nom_auteur, $ligne_titre['auteurs']);
               array_push($nom_titre, $ligne_titre['titre']);
                $nd++;
            }
			    /* Maintenant on peut construire la liste déroulante des titres */
            ?>
			<select name="titre" id="titre">
            <?php  
            for($d = 0; $d<$nd; $d++)
            {
                ?>
				<option value="<?php echo($nom_titre[$d]); ?>"<?php echo((isset($titre_selectionne) && $titre_selectionne == $nom_titre[$d])?" selected=\"selected\"":null); ?>><?php echo ($nom_titre[$d]) ; ?></option>
				<?php
            }
			?>
			</select>
			<?php
        }
        /*Sinon, on Initialiser la variable $selected_titre à NULL; */
        mysql_free_result($selected_titre);
		
    }
	/* On construit le formulaire contenant le titre et l'auteur choisi */
	?>
	<br /><input type="submit" name="ok" id="ok" value="Choisir" />
	</fieldset>
	</form>
	<?php
	if(isset($_POST['ok']) && isset($_POST['auteurs']) && $_POST['auteurs'] != "")
	{
		$auteur_selectionne = $_POST['auteurs'];
		$titre_selectionne = $_POST['titre'];
		include('reservation.php');
	}
	?>
	<?php
    /* Terminer, on ferme la connexion */
    mysql_close($connexion);
}
else
{
    /* Sinon on vérifie les paramètre de connexion
    */
	?>
	<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
	<?php
}
?>
</body>
</html>

Le seul changement est la version PHP qui est 5.27 sur le serveur et 5.28 en local.

J'ai tenté avec 5.20 mais le problème demeure.

Si quelqu’un pourrait m'aider ou si Cyrano est encore au poste, j’apprécierais,

Merci

Alain