Recherche d'un champ sur une base de données Oracle

Recherche d'un champ sur une base de données Oracle - PHP - Programmation

Marsh Posté le 11-05-2004 à 16:04:05    

Bonjour à tous
 
J'ai un petit souci: voilà j'ai une base de données Oracle dans laquelle j'ai 4 champs: nom, prénom, age, adresse ainsi que des données. Mon but est d'avoir à faire une recherche suivant un des 4 champs au choix ou plus d'un champ.  
Code:
<?
 
$conn = ociLogon("belkhir","belkhir",'BTEST');
 
$requete = ociparse($conn,"SELECT nom, prenon, age, adresse FROM essai WHERE " );
 
if (isset($_POST['nom_formulaire']) && $_POST['nom_formulaire'] <> "" )
{
   $requete .= " nom LIKE \"".$POST['nom_formulaire']."%\" and ";
}
if (isset($_POST['prenom_formulaire']) && $_POST['prenom_formulaire'] <> "" )
{
   $requete .= " prenom LIKE \"".$POST['nom_formulaire']."%\" and ";
}
if (isset($_POST['age_formulaire']) && $_POST['age_formulaire'] <> "" )
{
   $requete .= " age = ".$POST['nom_formulaire']."%\" and ";
}
if (isset($_POST['adresse_formulaire']) && $_POST['adresse_formulaire'] <> "" )
{
   $requete .= " adresse LIKE \"".$POST['nom_formulaire']."%\" and ";
}
 
$requete .= ";";
 
echo $requete;
 
$result = ociexecute($requete);
 
while ($row = ociFetch($result))
{
  $nom = $row[0];
  $prenom = $row[1];
  $age = $row[2];
  $adresse = $row[3];
  echo "<table><tr><td>$nom</td><td>$prenom</td><td>$age</td><td>$adresse</td>";
}
?>
 
L'erreur est la suivante:
Resource id #5;
Warning: ociexecute(): supplied argument is not a valid OCI8-Statement resource  
Warning: ocifetch(): supplied argument is not a valid OCI8-Statement resource  
$requete .= " nom LIKE \"".$POST['nom_formulaire']."%\" and "  
 
Je désespère.... ;-((( Si vous avez une idée serait possible de me la communiquer svp, merci d'avance....

Reply

Marsh Posté le 11-05-2004 à 16:04:05   

Reply

Marsh Posté le 11-05-2004 à 16:07:31    

avec ton truc, la requête fini toujours par AND ;
 
génial. pense à afficher ta requête...

Reply

Marsh Posté le 11-05-2004 à 16:12:38    

Elle est affichée ma requête par le echo $requete; et au lieu d'afficher il me met la synatxe $requete .= " nom LIKE \"".$POST['nom_formulaire']."%\" and " ...  Le fait de mettre un and permet justement de lier les contraintes.....

Reply

Marsh Posté le 11-05-2004 à 16:13:54    

oui mais, la dernière tu y a pensé ? y'a pas de AND après...

Reply

Marsh Posté le 11-05-2004 à 16:18:20    

Oui je l'ai enlevé mais sans succès....

Reply

Marsh Posté le 11-05-2004 à 16:21:19    

modifies tes quotes \" par '
 
$requete .= " nom LIKE \"".$POST['nom_formulaire']."%\" and ";  
 
par
 
$requete .= " nom LIKE '".$POST['nom_formulaire']."%' and ";  
 
partout ça va de soit


Message édité par jagstang le 11-05-2004 à 16:21:36
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed