PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » recuperer champ dans un txt » 02-09-2009 10:18:19

Bonjour,

J'ai fianlement trouvé la solution en utilisant la fonction explode, ce qui me permet de lister tous mes champs (je compte les enregistrer dans une DB par la suite).

J'ai egalement changé mon fichier txt car maintenant il affiche :

#test1#champ1#champ2#champ3#champ4   //retour à la ligne
#test2#champA#champB#champC#champD // etc....

<?php
$data = file_get_contents('output.txt');
 list( $prefix, $batchno, $importfile, $doc_date_jour, $doc_date_mois, $doc_date_annee) = explode("#", $data);
 
 echo $prefix =(preg_match (#regex#,$importfile )); // reste a faire
 echo $doc_date_jour;
 echo $doc_date_mois;
 echo $doc_date_annee;
 echo $nom;
 echo $importfile;
?>

Mais maintant je voudais faire un echo sur $prefix (qui est tjrs vide) en extrayant des lettres de $importfile. Mais je n'arrive pas avec une regex.

$importfile est tjrs comme ca (seul les lettres et les numeros qui suivent changent):
c:\program files\dosier1\dosier2\dosier3\ident\AJX-AAG-Q9G-KK_0.169.31.1.201_2009-07-13_10.11.00_(218)_total.png.

Est ce que mon echo $prefix est bien ecrit?

#2 Forum Général PHP » recuperer champ dans un txt » 02-09-2009 10:18:19

cire390
Réponses : 1

Bonjour,

Je reviens vers vous pour récuperer les champ inscrit dans un txt, qui est à la racine

Mon txt est de cette forme "test1","champ1","champ2","champ3","champ4"   //retour à la ligne
                                       "test2","champA","champB","champC","champD" // etc....

Je souhaiterai recuperer la derniere ligne et l'afficher.

j'essaie de le faire avec des Regex mais je ne m'y connais vraiment pas et j'ai bcps de mal. J'ai essayé le code ci-dessous mais ca m'affiche uniquement :    Array()

<?php
preg_match_all("/s\\('([^']*)'\\)/", file_get_contents('output2.txt'),
$matches);
print_r($matches[1]);
?>

Je ne sais pas si c'est la bonne demarche pour faire ca...

Merci d'avance a ceux qui pourront m'aider

#3 Re : Forum Général PHP » [Résolu] Afficher champ blob de la DB » 31-08-2009 11:14:47

Merci bcps pour cette aide précieuse.

Encore une fois je ne sais pas comment mettre mon post en resolu

#4 Re : Forum Général PHP » [Résolu] Afficher champ blob de la DB » 31-08-2009 11:14:47

Merci bcps mcAllan

J'ai teste comme tu m'as dit et j'ai pu trouver l'erreur. J'ai un peu honte mais dans la page-script qui ne sert qu& afficher l'image je laissé l'entete classique d'une page html au lieu de ne laisse que du php.

Je met mon code des fois que ca interresse quelqu'un

page detail.php

<?php
$id = $_GET['id_page'];
$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );
mysql_select_db($nom_base);
$query="SELECT id_pen, form_date, doc_nom, id_page, doc_image FROM pages WHERE id_page='$id'";
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);//donne le nombre de ligne
if($total) {
echo'<table bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row["id_page"].'</a></td>';
echo '<td bgcolor="#CCCCCC"><img src=showimage.php?id_page='.$id.' /td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);
?>

et la page showimage.php

<?php
if ( isset($_GET['id_page']) )
{
$id = intval ($_GET['id_page']);
$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
mysql_select_db($nom_base);
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );
$req = "SELECT id_page, doc_image FROM pages WHERE id_page = '$id'";
$ret = mysql_query ($req) or die (mysql_error ());
$col = mysql_fetch_row ($ret);
if ( !$col[0] )
{echo "Id d'image inconnu";}
else
{
header ("Content-type: doc_image/png");
echo $col[1];
}
}
else
{
echo "Mauvais id d'image";}
?>

J'ai une derniere question, j'aimerais redimensionner mon image. Peut-on le faire directement en melangant html et php au niveau de :
echo '<td bgcolor="#CCCCCC"><img src=showimage.php?id_page='.$id.' /td>';

ou vaut-il le faire dans le script qui recupere l'image

Merci encore

#5 Re : Forum Général PHP » [Résolu] Afficher champ blob de la DB » 31-08-2009 11:14:47

J'ai essayé de remplacer ceci

echo '<td bgcolor="#CCCCCC"><img src=php.php?doc_image='.$id.' /td>'

par

echo '<td bgcolor="#CCCCCC"><img src=php.php?id_page='.$id.' /td>'

mais le résultat est le même.

Lorsque l'on fait un echo (dans detail.php) pour appeller l'image (comme ci-dessus), c'est le nom du champ image de ma DB ou le parametre que je passe dans l'url que je dois afficher ?

#6 Re : Forum Général PHP » [Résolu] Afficher champ blob de la DB » 31-08-2009 11:14:47

Merci pour la réponse. J'ai essayé ceci mais ca ne marche pas.

Ma page index affiche une liste de numéro de pages.
Lorsqu'on clique sur un numéro, je passe en parametre "id_page"
La page detail.php marche (pas le champs blob)

J'ai donc crée une page php.php qui doit en principe recupere l'image voici le code:

if ( isset($_GET['id_page']) )
{
$id = intval ($_GET['id_page']);
$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
//connexion au SGBD Mysql
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );

$req = "SELECT id_page, doc_image FROM pages WHERE id_page = '$id'";
$ret = mysql_query ($req) or die (mysql_error ());
$col = mysql_fetch_row ($ret);
if ( !$col[0] )
{
echo "Id d'image inconnu";
}
else
{
header ("Content-type: doc_image/png");
echo $col[1];
}
}
else
{
echo "Mauvais id d'image";
}

Seulement quand j'essai d'affiche cette image dans ma page detail.php, ca ne marche pas, j'ai une errer http:500
voici ma page detail.php (qui marche bien sauf quand je rajouter l'affichage du champ blob)

<?php
$id = $_GET['id_page'];
echo $id;

$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );

mysql_select_db($nom_base);
$query="SELECT id_pen, form_date, doc_nom, id_page, doc_image FROM pages WHERE id_page='$id'";
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);//donne le nombre de ligne
if($total) {
echo'<table bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row["id_page"].'</a></td>';
echo '<td bgcolor="#CCCCCC">'.$row["form_date"].'</a></td>';
echo '<td bgcolor="#CCCCCC">'.$row["doc_nom"].'</a></td>';

echo '<td bgcolor="#CCCCCC"><img src=php.php?doc_image='.$id.' /td>'

echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);

Faut-il faire appelle a cette image d'une autre facon ?

Merci encore

#7 Forum Général PHP » [Résolu] Afficher champ blob de la DB » 31-08-2009 11:14:47

cire390
Réponses : 8

Bonjour,
Monpost est marqué résolu donc j'ouvre une nouvelle discussion. J'ai trouve la solution à mon précedent pb et j'ai mis le code qui marche, si ce peut aider certains.

Quelqu'un saurait-il comment récupérer et afficher une image qui est déja stockée dans la DB. (je reprend un développement existant ou la personnes a stocké les images dans la DB, je peux malheuresement pas faire autrement).

<?php
$id = $_GET['id_page'];
echo $id;

$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );

mysql_select_db($nom_base);
$query="SELECT form_date, id_page, doc_image FROM pages WHERE id_page='$id'";
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);
if($total) {
echo'<table bgcolor="#FFFFFF">'."\n";  
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><a href=detail.php?id_page='.$row["id_page"].' target=\"_blank\">'.$row["id_page"].'</a></td>';
echo '<td bgcolor="#CCCCCC">'.$row["form_date"].'</a></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);
?>

En rajoutant ceci au milieu,  j'arrive à afficher l'image mais elle est en binaire (serie de chiffres et lettre incompréhensible), comment je peux la "traduire"?

echo '<td bgcolor="#CCCCCC">'.$row["form_date"].'</a></td>';
header('Content-type: image/png');
echo '<td bgcolor="#CCCCCC">'.$row["doc_image"].'</a></td>';
echo '</tr>'."\n";

Ou si une ame charitable a un code pour afficher une image je suis preneur.
Merci encore

#8 Re : Forum Général PHP » [Résolu] variable dans l'url » 20-08-2009 08:21:02

Je réouvre mon post car j'ai enfin reussi à faire marcher ma page qui affiche les détails, je met le code pour ceux que ca pourrait intérréser.
Pourquoi ce code marche est pas l'autre, je sais pas. Peut-être du au fait que je mets les résultats dans du html??
Enfin, ca marche. Mais j'ai une autre question :

<?php
$id = $_GET['id_page'];
echo $id;

$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );

mysql_select_db($nom_base);
$query="SELECT id_pen, form_date, doc_nom, id_page, doc_image FROM pages WHERE id_page='$id'";
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);
if($total) {
echo'<table bgcolor="#FFFFFF">'."\n";  
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><a href=detail.php?id_page='.$row["id_page"].' target=\"_blank\">'.$row["id_page"].'</a></td>';
echo '<td bgcolor="#CCCCCC">'.$row["form_date"].'</a></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);
?>

Quelqu'un saurait-il comment récupérer et afficher une image qui est déja stockée dans la DB. (je reprend un développement existant ou la personnes a stocké les images dans la DB, je peux malheuresement pas faire autrement).

En rajoutant ceci au milieu,  j'arrive à afficher l'image mais elle est en binaire (serie de chiffres et lettre incompréhensible), comment je peux la "traduire"?

echo '<td bgcolor="#CCCCCC">'.$row["form_date"].'</a></td>';
header('Content-type: image/png');
echo '<td bgcolor="#CCCCCC">'.$row["doc_image"].'</a></td>';
echo '</tr>'."\n";

Merci

#9 Re : Forum Général PHP » [Résolu] variable dans l'url » 20-08-2009 08:21:02

Bon merci beaucoup, je vais continuer mes recherches. En essayant par exemple de changer le champs de référence.

En tous cas  merci à tous

(Pour les modo, je suis désolé mais je ne vois pas comment mettre le message en résolu )

#10 Re : Forum Général PHP » [Résolu] variable dans l'url » 20-08-2009 08:21:02

Voici ma page index, qui marche car elle affiche la liste que je veux

<?php
$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );

mysql_select_db($nom_base);
$query='SELECT id_page FROM pages ORDER BY form_date DESC';
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);
if($total) {
 
echo'<table bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><a href=detail.php?id_page='.$row["id_page"].' target=\"_blank\">'.$row["id_page"].'</a></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);
?>

et voici la page detail.php

<?php
$id = $_GET['id_page'];
echo $id;

mysql_connect("localhost", "root", "root");
mysql_select_db("demo");

$req = mysql_query('SELECT id_pen, form_date, doc_nom FROM pages WHERE id_page=' . $_GET['id_page']);
$data = mysql_fetch_array($req);
echo $data['id_pen'];
echo $data['form_date'];

mysql_close();
?>

Merci encore pour le soutien apporté

#11 Re : Forum Général PHP » [Résolu] variable dans l'url » 20-08-2009 08:21:02

Désolé c'est une erreur de ma part.
J'ai rectifié et mis
echo $data['id_pen'];
echo $data['form_date'];

Mais le résultat est pareil.

#12 Re : Forum Général PHP » [Résolu] variable dans l'url » 20-08-2009 08:21:02

Merci beaucoups de l'aide.

Au vu des nombreuses erreurs j'ai réecrit mon code de facon bcps plus simple.

J'arrive grace au echo $id à récupérer ce qui est dans l'url mais c'est tout. Je ne vois pas pourquoi le reste ne marche.

<?php

$id = $_GET['id_page'];
echo $id;

mysql_connect("localhost", "root", "root");
mysql_select_db("demo");
 
$req = mysql_query('SELECT id_pen, form_date, doc_nom FROM pages WHERE id_page=' . $_GET['id_page']);
$data = mysql_fetch_array($req);
echo $data['id_pen'];
echo $data['id_nom'];
mysql_close();

?>

#13 Re : Forum Général PHP » [Résolu] variable dans l'url » 20-08-2009 08:21:02

oui c'est ca, mais j'ai teste en utilisant un "id_page" de ma DB et la page detail.php (en tapant dans l'url http//localhost/demo/detail.php)  s'affiche correctement avec les champs que j'appelle.

A savoir que je viens de trouver une erreur dans mon tableau, lorsque j'affiche mes données. Je pense que c'est $row et non pas $data dans
[c]
echo '<td><b>'.$data['form_date'].'</b></td>';
echo '<td><b>'.$data['form_heure'].'</b></td>';
[/c]

#14 Forum Général PHP » [Résolu] variable dans l'url » 20-08-2009 08:21:02

cire390
Réponses : 11

Bonjour,

Je pense que ce  probleme est basique est souvent abordé mais je seche réellement.

J'ai crée une page index dans laquelle j'affiche des entrées de ma DB, j'y ai inserai un lien de sorte à envoyer un id dans l'url comme ca :

[c]echo '<td bgcolor="#CCCCCC"><a href=detail.php?id_pen='.$row["id_page"].' target=\"_blank\">'.$row["id_page"].'</a></td>'; [/]

Seulement, je n'arrive pas a récupérer les details dans ma page détail, voici mon code:
(l'entrée id_page est ecrite comme ca ex:  169.23.23.1)
Est ce une erreur de syntaxe ou pas, je n'obtient pas de message d'erreur, seulement une page "le site web ne peut ouvrir cette page...

 
<?php
//parametres de connexion
$machine="localhost";
$utilisateur="root";
$mot_passe="root";
$nom_base="demo";
//connexion au SGBD Mysql
$con=mysql_connect($machine,$utilisateur,$mot_passe) or die ('Erreur : '.mysql_error() );

mysql_select_db($nom_base);
//récupère tous les enregistrements
$query='SELECT id_page FROM pages ORDER BY form_date DESC';
$resultat=mysql_query($query,$con) or die (mysql_error());;
$total=mysql_num_rows($resultat);
// si on a récupéré un résultat on l'affiche.
if($total) {
//debut du tableau
echo'<table bgcolor="#FFFFFF">'."\n";  
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats
while($row=mysql_fetch_array($resultat))
{
echo '<tr>';
echo '<td><b>'.$data['form_date'].'</b></td>';
echo '<td><b>'.$data['form_heure'].'</b></td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($resultat);
?>

Voila je sais que c'est un peu long mais je remercie d'avance les personnes qui pourrais m'aider

Pied de page des forums

Propulsé par FluxBB