Message erreur....

Résolu
Signaler
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009
-
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009
-
Bonjour j'ai ce message et je suis incapable de trouver d'ou ca peut bien venir, est ce que qq'un peut me filer un cuop de main...? :


Fatal error: Call to a member function on a non-object in D:\qualite\test\ref.php on line 26
(Ca correspondrait à la ligne surlignée en rouge...)
Mon code est le suivant :
<?php


error_reporting(E_ALL);



$base="D:\\Qualite\test\References.mdb";
$References="References";


//connection au serveur:
$cnx = odbc_connect( "DSN_References","" ,"") or die ("Impossible de se connecter à la base de donnée") ;



$sql = "SELECT * FROM $References"; // Selectionne une table
$requete = odbc_do($cnx, $sql);


echo "\";
while (!$requete->EOF) // tant que pas le fichier n'est pas terminé
{

$col2 = $requete->Fields[1]; // Ligne contenant le nom recherché
$col3 = $requete->Fields[2];

echo \"Nom : $col2->value
\";
echo \"Photo : $col3->value
\";

$requete->MoveNext(); // enregistrement suivant
}

echo "
";


?>

4 réponses

Messages postés
29
Date d'inscription
jeudi 19 février 2004
Statut
Membre
Dernière intervention
14 février 2007

Je crois que tu à l'impression de lire un fichier texte (à cause de la ligne utilisant EOF (EndOf File))

Or, là, tu attaques une base de données.

A mon avis, tu devrais essayer avec les fonctions 'com_nexen_v2&Itemid=232&lang=FR&nexen_url_type=intern&nexen_path=%25F1%25FD5%25FC%25F1u%2502y%258C%25AA%25E1%25C1%2502%25A7%25EB%25D8%25DB%25F6%250BU%25BE%250F6qE%2525%25E7%25AD%25D2%25EF%2592%25C0o%259C%25F52%25EE%255E%2513y%257E%259C%257F%25EF0%25D5J%25E3%2528e08%25C7%253C%250C%25B0%257Ey_%250EL%2594%2596%252C <tt>odbc_fetch_row</tt>' et '<tt>odbc_result</tt>'.

Je n'ai jamais fait de requêtes ODBC en PHP mais je pense que tu devrais essayer un truc du genre:



<?php
error_reporting(E_ALL);



$base ="D:\\Qualite\test\References.mdb";

$References="References";



//connection au serveur:

$cnx = odbc_connect( "DSN_References","" ,"") or die ("Impossible de se connecter à la base de donnée") ;





$sql = "SELECT * FROM $References"; // Selectionne une table

$requete = odbc_do($cnx, $sql);



echo "\";

while ( <tt>odbc_fetch_row</tt>( $requete, 1)) {

$col2 =
odbc_result( 
$requete, 1); // Ligne contenant le nom recherché

$col3 =
odbc_result( $requete, 2);

echo \"Nom : $col2->value
\";

echo \"Photo : $col3->value
\";

}

echo "
";



?>



De plus, tu utilises une table
sans jamais mettre de ligne...

Au lieu de



echo "Nom : $col2->value
";

echo "Photo : $col3->value
";



Mets plutôt quelque chose comme:



echo "<tr><td>Nom :</td><td>".$col2."</td></tr>";

echo "<tr><td>Photo :</td><td>".$col3."</td></tr>";
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
T'es sûr que MoveNext () existe?
Et t'es sûr que $requete est un objet ? (visiblement oui puisque tu fais $requete -> Fields[1] avant, mais je n'ai jamais utilisé odbc avant en php).
Messages postés
135
Date d'inscription
vendredi 30 décembre 2005
Statut
Membre
Dernière intervention
18 avril 2006

salut,
aucune idée sur l'erreur mais ca peut t'aider :
http://www.php.net/odbc_connect
Messages postés
528
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2009

Merci, finalement, j'ai fait comme cela et ça marche :

<?php


error_reporting(E_ALL);



$base="D:\\Qualite\test\References.mdb";
$References="References";


//connection au serveur:
$cnx = odbc_connect( "DSN_References","" ,"") or die ("Impossible de se connecter à la base de donnée") ;


$resultat = odbc_exec( $cnx, "SELECT Nom,Fonction,Salaire_annuel,Photo FROM $References" );
while( odbc_fetch_row( $resultat ) ) //tant que c pas la fin de la table
{
$nom = odbc_result ( $resultat, 1 );//ici on affiche la valeur du champ1
echo "Nom : $nom ";

echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';

$fonction = odbc_result ( $resultat, 2 );
echo "Fonction : $fonction ";

echo '

' ;

$photo = odbc_result($resultat, 4 );
echo "Trombine : " ;
echo "

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
}


?>