Erreur Resource id #6

Mammouth du PHP | 619 Messages

02 mai 2013, 14:57

Bonjour,

peux ton voir ton formulaire je pense que cela vient de la

AIDE
Invité n'ayant pas de compte PHPfrance

02 mai 2013, 15:05

J'ai pas tellement de formulaire, mais je voulais justement que lorsque je recherche un salarié, que l'information du nom de l'entreprise puisse apparaître également.
Je voulais l'ajouter à ce formulaire là :
<?php
require("connect.php");
// pour oracle: $dsn="oci:dbname=//serveur:1521/mydb
$dsn="mysql:dbname=".BASE.";host=".SERVER;
    try{
      $connexion=new PDO($dsn,USER,PASSWD);
    }
    catch(PDOException $e){
      printf("Échec de la connexion : %s\n", $e->getMessage());
      exit();
    }
$sql="SELECT * from Salarie order by idSalarie";
if(!$connexion->query($sql)) echo "Pb d'accès à la table Salarie";
else{ 
	?>
	<form action="recherchesalarie.php" method="GET">
	<select name="nom">
		<?php
	foreach ($connexion->query($sql) as $row){

           echo "<option value=".$row['idSalarie'].">".$row['nomSalarie']." ".$row['prenomSalarie']."</option>";
           
}
}	
?>
</select>
<input type="submit" value="Rechercher">

</form>

Mammouth du PHP | 619 Messages

02 mai 2013, 15:08

Bonjour,

Votre select

<select name="nom">

a pour non nom et pas idSalarie faut modifie d'un cote sois le select devient
 <select name="idSalarie">

ou le post devient
$_POST['name']

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 mai 2013, 15:17

la méthode du formulaire étant GET
<form action="recherchesalarie.php" method="GET">
il faut utiliser $_GET['nom'] et non pas $_POST['nom'] ...


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 619 Messages

02 mai 2013, 15:20

En effet j'ai pas regarde la method merci moogli :)


formulaire :
<?php
require("connect.php");
// pour oracle: $dsn="oci:dbname=//serveur:1521/mydb
$dsn="mysql:dbname=".BASE.";host=".SERVER;
    try{
      $connexion=new PDO($dsn,USER,PASSWD);
    }
    catch(PDOException $e){
      printf("Échec de la connexion : %s\n", $e->getMessage());
      exit();
    }
$sql="SELECT * from Salarie order by idSalarie";
if(!$connexion->query($sql)) echo "Pb d'accès à la table Salarie";
else{ 
        ?>
        <form action="recherchesalarie.php" method="GET">
        <select name="nom">
                <?php
        foreach ($connexion->query($sql) as $row){

           echo "<option value=".$row['idSalarie'].">".$row['nomSalarie']." ".$row['prenomSalarie']."</option>";
           
}
}       
?>
</select>
<input type="submit" value="Rechercher">

</form>





page recherchesalarie.php
<?php
if (isset($_GET['nom'])) {
    include("connexion.php");
    $req = "SELECT nomEntreprise from Entreprise where idEntreprise = select idEntreprise from Travaille where idSalarie= " . mysql_real_escape_string($_GET['nom']);
    if ($result === false) {
        echo 'Erreur SQL ! ' . $req . '<br/>' . mysql_error();
    } else {
        $ligne = mysql_fetch_assoc($result);
        if ($ligne !== false) { // j'ai un ou plusieurs résultat
            echo "Entreprise : " . $result['nomEntreprise'];
        }
        mysql_free_result($result);
    }
} else {
    echo 'information manquante dans le formulair ou le formulaire non posté !';
}

?>
Modifié en dernier par ghost5922 le 02 mai 2013, 15:30, modifié 2 fois.

AIDE
Invité n'ayant pas de compte PHPfrance

02 mai 2013, 15:28

Merci. J'ai testé. Mais ça m'affiche ceci :

information manquante dans le formulaire ou le formulaire non posté !

Mammouth du PHP | 619 Messages

02 mai 2013, 15:30

petit erreur de ma part j'ai modifie retest :)

AIDE
Invité n'ayant pas de compte PHPfrance

02 mai 2013, 15:37

J'ai des notifications, warning maintenant du genre :
Notice: Undefined variable: result in C: (autant de fois qu'il y a result)

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given in C:

Warning: mysql_free_result() expects parameter 1 to be resource, null given in C:

AIDE
Invité n'ayant pas de compte PHPfrance

02 mai 2013, 15:50

J'ai pu rectifier l'erreur mais j'ai ça :
Erreur SQL ! SELECT nomEntreprise from Entreprise where idEntreprise = select idEntreprise from Travaille where idSalarie= 1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select idEntreprise from Travaille where idSalarie= 1' at line 1

Mammouth du PHP | 619 Messages

02 mai 2013, 15:54

Bonjour,

perso je ferai un left join comme ceci
$req="SELECT E.nomEntreprise from Entreprise as E left join Travaille as T on E.idEntreprise=T.idEntreprise where T.idSalarie=" . mysql_real_escape_string($_GET['nom']);
test le temps que moogli puise voir

AIDE
Invité n'ayant pas de compte PHPfrance

02 mai 2013, 16:03

Ça m'affiche ceci :
Erreur SQL ! SELECT `E.nomEntreprise` from Entreprise as E left join Travaille as T on `E.idEntreprise`=`T.idEntreprise` where `T.idSalarie`=1
Unknown column 'E.nomEntreprise' in 'field list'

J'ai enlevé le E pour E.nomEntreprise ça me donne :

Erreur SQL ! SELECT nomEntreprise from Entreprise as E left join Travaille as T on `E.idEntreprise`=`T.idEntreprise` where `T.idSalarie`=1
Unknown column 'T.idSalarie' in 'where clause'

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 mai 2013, 16:05

avec des parenthèses autour de la sous requête
SELECT nomEntreprise from Entreprise where idEntreprise = (select idEntreprise from Travaille where idSalarie= 1)
pas testé

Les requêtes sont a tester en dehors du code avant ;)

laisse tomber la jointure si tu ne sais pas l'utiliser.

@+
Il en faut peu pour être heureux ......

AIDE
Invité n'ayant pas de compte PHPfrance

02 mai 2013, 16:11

En commande cette requête fonctionne bien mais en une fois insérer dans mon code, le champ est vide, ça ne m'affiche aucun résultat...

Mammouth du PHP | 619 Messages

02 mai 2013, 16:21

Bonjour,

avez vous modifiez le 1 par
mysql_real_escape_string($_GET['nom'])


?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 mai 2013, 16:24

$req = 'SELECT nomEntreprise from Entreprise where idEntreprise = (select idEntreprise from Travaille where idSalarie= ' . mysql_real_escape_string($_GET['nom']).')';
Il en faut peu pour être heureux ......