PHP trouble avec données DBASE ** A L'AIDE **

Fermé
J-Francois Busque - 11 juin 2007 à 01:54
 J-Francois - 18 juin 2007 à 00:40
A L'AIDE .........
BASE DE DONNEE DBASE AVEC LE PHP

Cela ne semble pas fonctionner correctement !

Je Vient tout juste de mettre a jour le PHP a 5.2
pour etre sur que mon autre vesion soie pas trops
vielle , mais ce ne fonctionne toujours pas !

Mon ancienne version (avec EasyPHP 1.8) me laissait
au moins ouvrir la base de donnee et pouvait me dire
le nombre de donnees present dans la base de donnee mais
je ne pouvais pas aller chercher une donnee a l'interrieur !

Jai mis le PHP a jour avec le EasyPHP 2 (PHP 5.2) et la
ce encore pire .... elle ne me laisse meme pas l'ouvrir ..

Je suis capable d ouvrir la le DBF avec Visual Dbase et meme Excel ou World
allors ce nest pas les pilotes OBDC ...

Voici les erreurs :
Warning: dbase_open() [function.dbase-open]: unable to open database /test.dbf in C:\Documents and Settings\jfb\Bureau\test\test_php\dbase.php on line 16

Warning: dbase_numrecords() [function.dbase-numrecords]: Unable to find database for identifier 0 in C:\Documents and Settings\jfb\Bureau\test\test_php\dbase.php on line 17

Warning: dbase_close() [function.dbase-close]: Unable to find database for identifier 0 in C:\Documents and Settings\jfb\Bureau\test\test_php\dbase.php on line 19




Et voici mon code :


<?PHP
$db = dbase_open("/test.dbf", 0);
$record_numbers = dbase_numrecords($db);
echo ''.$record_numbers.'';
dbase_close($db);
?>
A voir également:

4 réponses

Salut,
je pense que ca doit t'ouvrir ta base en ecriture. J'ai eu le meme probleme, je pense qu'il faut juste instancier le type d'ouverture dans une variable $_GET. Si ce n'est pas ca ne m'en veut pas, je suis un novice en php.

<?php
$_GET['acces'] = 0;
$db = dbase_open("/test.dbf", $_GET['acces']);

switch ($_GET['acces'])
{
  case 0:
    echo "Cas 0, lecture seul<br>";
    break;
  case 1:
    echo "Cas 1, ecriture seul<br>";
  	break;
  case 2:
    echo "Cas 2, lecture & ecriture<br>";
  	break;
}

$record_numbers = dbase_numrecords($db);
echo $record_numbers; 
dbase_close($db);
?>
0
J-Francois Busque
15 juin 2007 à 04:06
Jai malgré tout le meme trouble ... la commande : dbase_numrecords($db);
fonctionne bien avec le PHP 4. ??? mais pas avec le PHP 5 sa chie ....
Jai encore le 2 versions dans 2 ordis differante .

quand je vient pour prendre la commande : $donnee = dbase_get_record($db,1);
avec le PHP 4 (c lui qui semble fonctionner le mieux pour le DBASE ..)

je tombe sur une page ,
Internet Explorer ne peut pas afficher cette page Web

Pis le PHP 5 , ben , toujours le meme erreur que le message en haut ...


Les donnees DBASE sont faite avec Visual Dbase 7 .... peux-tu avoir un rapport ..
jai pas trouver rien qui dit qui a des compatibilitr limite a certainne version de DBASE .

Si vous avez une base de donnee qui fonctionne , pourriez-vous me la joindre que je vois
si c ma base de donnee qui chie ou PHP ...

Merci !

Vous pouvez joindre ca sur aide.jfb@hotmail.com
0
 $db = dbase_open("/test.dbf", 0); 


Pourquoi avoir mi un '/' avant le nom de la base ? Si la base est dans le même repertoire que le fichier qui fait appelle a elle, il faudrait plutôt l'ecrire comme ceci :

 $db = dbase_open("test.dbf", 0); 


Personnelement j'utilise EasyPHP 1.8 avec l'extension PHP 'php_dbase', tout marche correctement, dans les limite d'EasyPHP qui ne peut pas utiliser toutes les fonctions dbase ( Voir dans Administration, Extension PHP)

Sinon je ne pense pas qu'il y est une incompatibilité avec ta base, c'est juste que tu doit avoir une erreur quelque part ou bien que ta base est corompu.

Vu que je suis une novice en PHP j'utilise ce lien pour m'aider :
<a href="https://www.php.net/manual/fr/ref.dbase.php">PHP : dBase</a>
0
C la le probleme , c pas que je ne rouvre pas ma base de donne , le EasyPHP 1.8
ouvre tres bien la base de donnee , mais refuse vraiment de me laisse prendre quelque
chose dedant .....

J'ai travailler pres de 10 ans avec le Dbase , clipper et Visual Dbase , mais je doit
suivre l evolution du marche et mettre sur pied des logiciels qui peuvent etre consulter
via Internet !

Dbase peut travailler avec le SQL , il serait facile d exporter en SQL tout la base DBASE
mais le PHP est senser etre en mesure de lire les fichiers DBF et il ne le fait pas ....
Ca sa me fait chier ..

Ce code fonctionne (avec EsayPHP 1.8 pas avec le 2 beta )
et me donne le nombre reel de donnee a linterieur (600 quelques donnees)
<?PHP
$db = dbase_open("/test.dbf", 0);
$record_numbers = dbase_numrecords($db);
echo ''.$record_numbers.'';
dbase_close($db);
?>

mais si je rajoute une seul ligne :

<?PHP
$db = dbase_open("/test.dbf", 0);
$record_numbers = dbase_numrecords($db);
echo ''.$record_numbers.'';

$donnee = dbase_get_record($db,1);

dbase_close($db);
?>

Il serait sense mettre la donnee #1 dans la variable $donnee
qui pourrais etre afficher de differante facon .
Jai meme essayer la commande : DBASE_GET_RECORD_WITH_NAMES
Mais toujours la PUTAIN de meme erreur .....

Internet Explorer ne peut pas afficher cette page Web

La base de donnee nest pas corompu et na pas de fonction special ....
meme le test.dbf posseble un seul champ appeller NOM et a 3 ou 4 donnees ...

Celle Client.dbf possede plus de 600 client et toujours meme erreur ....
0