Vraiment au secours!!!!

Messages postés
21
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2010
- - Dernière réponse : kohntark
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
- 10 nov. 2009 à 17:15
j'ai un gros probleme,cela fait pratiquement 2 ans je ai arrete de programmer.je viens de reprendre pour la creation d'iun site internet.
je ne reussis plus a faire des pages de recherches et de resultats.
dans ma page de recherche,jai un input text que j'utilise je le nomme avoir
et dans mon page resultat je fais une requete tel que
$req=mysql_query(" SELECT * FROM Product WHERE idavoir = "$avoir"");
je precise avant j'utilisais EasyPHP 1.6 mais maintenant j'utilise EasyPhp 1.8 a cause des bugs que j'ai eu lorsque je l'ai installe.
Merci de votre reponse je suis .
repondez moi merci
je ne comprends plus rien.
Afficher la suite 

15 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
BONJOUR

j'ai un gros probleme

En l'occurrence ton plus gros problème pour le moment et de ne pas le préciser :
- où est le code ?
- y a t il une erreur générée ?
- etc ...

Dans l'état actuel il est impossible de te répondre.


Kohntark -
Commenter la réponse de kohntark
Messages postés
21
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2010
0
Merci
merci.
j'utilise PHP 4 maintenant.
l'idée est de faire une recherche dans ma base de données sur une page et obtenir le résultat dans une autre frame.
la page de recherche a le formulaire suivant et code:
<form action= "Trackok2.php" enctype="multipart/form-data" name="formtrack1" target="_blank" id="formtrack1">


le nom du champ est seektrack.
dans le formulaire de résultat je veux tout d'abord avoir en titre le texte écrit et a la suite le listage des elements trouves dans la base de donnees.
voila
<?
$req mysql_query( " SELECT * FROM Product WHERE idtrack"$seektrack"");
if(!$req) die ("erreur");
$seektrack=mysql_result($req,0,"idtrack");
$Item=mysql_result($req,0,"item");
echo(" $Item
");
?>
Country |
Item |
Description |
Weight |
Arrival Time |
Departure Time |
Remarks |

<?

$req1 =mysql_query(\"select * from product where idtrack=\\"$seektrack\\"\");
$i=0;
$nb1=mysql_num_rows($req1);
while($nb1>$i)
{
$ITEM=mysql_result($req1,$i,\"item\");
$DESCRIPTION=mysql_result($req1,$i,\"description\");
$WEIGHT=mysql_result($req1,$i,\"weight\");
$IDTRACK=mysql_result($req1,$i,\"idtrack\");
$req2=mysql_query(\"select * from tracker where idtrack=\\"$IDTRACK\\"\");
$j=0;
$nb2=mysql_num_rows($req2);
while($nb2>$j)
{
$IDCOUNTRY=mysql_result($req2,$j,\"idcountry\");
$DESCRIPTION=mysql_result($req2,$j,\"description\");
$ARIVTIME=mysql_result($req2,$j,\"arivtime\");
$DEPARTIME=mysql_result($req2,$j,\"departime\");
$REMARKS=mysql_result($req2,$j,\"remarks\");
$req3=mysql_query(\"select * from country where idcountry=\\"$IDCOUNTRY\\"\");
$j=0;
$nb3=mysql_num_rows($req3);
while($nb3>$k)
{
$COUNTRYNAME=mysql_result($req3,$k,\"countryname\");
$k++;
}
$j++;
}
echo(\"----

$COUNTRYNAME,
$ITEM,
$DESCRIPTION,
$WEIGHT,
$ARIVTIME,
$DEPARTIME,
$REMARKS,
\");
$i++;
}
?>


Voila le code et merci encore
Commenter la réponse de shakyk
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
j'utilise PHP 4 maintenant.

Tu as quelques décennies de retard

Qu'est ce qui ne fonctionne pas au juste ? (tableau vide, cellules vides, ...)

Je me répète :
- y a t il une erreur générée ?

Oui, sans doute, ici par exemple :
$req mysql_query( " SELECT * FROM Product WHERE idtrack \ "$seektrack"");

Le tag d'ouverture php s'écrit <?php (et non <?)

Il faudrait que tu revois ta structure au niveau des 3 while imbriqués : c'est très lent, c'est source de bugs et c'est pas bô

Tu devrais n'avoir qu'une seule requête SQL et par conséquent qu'un seul while.
A voir : http://dev.mysql.com/doc/refman/5.0/fr/join.html

Tu gagnerai en lisibilité en supprimant les mysql_result :

while($result  = mysql_fetch_array($req1)) {
   $IDCOUNTRY = $result[2];
   [...]



Cordialement,

NB : pense à indenter ton code et à utiliser l'icône de la textbox, ça n'en sera que plus lisible

Kohntark -
Commenter la réponse de kohntark
Messages postés
21
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2010
0
Merci
effectivement,il y a une erreur générée,surtout sur la ligne suivante

$req mysql_query( " SELECT * FROM Product WHERE idtrack"$seektrack"");

l'erreur est:undefined variable seektrack.
Commenter la réponse de shakyk
Messages postés
88
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
23 mars 2011
0
Merci
slt
essai d'utiliser ca
select nomtable.* from nomtable where champs=".$identificateur.";
Commenter la réponse de ensto28
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
undefined variable seektrack.

Soit, in French : la variable $seektrack n'est pas définie

Nous ne sommes plus, depuis des lustres, en PHP3, et la directive register_globals est à off par défaut depuis longtemps.
Je t'invite à lire http://fr2.php.net/manual/fr/security.globals.php pour une meilleure compréhension et à ajouter :
$seektrack = mysql_real_escape_string($_POST['seektrack']);


Cordialement,


Kohntark -
Commenter la réponse de kohntark
Messages postés
21
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2010
0
Merci
ooooooooooohhhhhhhhhhhhhhhhhhh
voila le code aue j'ai pu concote avec un copier/coller avec ce que j'ai recu de toi:
$seektrack=mysql_real_escape_string($_POST['seektrack']);
$req=mysql_query("SELECT product.* FROM product where idtrack = ".$seektrack."");

maintenant l'erreur est devenue
Notice: Undefined index: seektrack in c:\easyphp1-8\www\romeo\...php on line...
Commenter la réponse de shakyk
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Notice: Undefined index: seektrack in c:\easyphp1-8\www\romeo\...php on line...

heu, on line ... quelle ligne ?
Pour le coup je crois savoir mais pense à l'indiquer en surbrillance dans le code qui va bien.

Soit, in French : l'index seektrack du tableau $_POST n'est pas défini.
En l'occurrence il est fort probable qu'il y ait un problème au niveau du formulaire.
Pour t'en assurer fais un :
print_r($_POST);

avant la définition de $seektrack. Cela te permettra de voir toutes les données qui ont été postées au script, l'index seektrack doit s'y trouver.

A voir également :
http://fr2.php.net/manual/fr/reserved.variables.post.php
http://fr2.php.net/manual/fr/language.variables.external.php

Et remplace ta requête par :
if (false $req mysql_query("SELECT * FROM Product WHERE idtrack ='$seektrack'")) die ('erreur lors de la requête : '.mysql_error()); 



Cordialement,

Kohntark -
Commenter la réponse de kohntark
Messages postés
21
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2010
0
Merci
je crois que ca avance mais avec ce code je crois qu'il ne ressort pas le contenu de $req avec ce code,mais il'affiche plutot Erreur qui se trouve dans le code suivant:
$seektrack= mysql_real_escape_string($_POST['seektrack']);
$req=mysql_query("SELECT product.* FROM product where idtrack = ".$seektrack."");
if(!$req) die (" Erreur ");
$seektrack =mysql_result($req,0,"idtrack");
$item=mysql_result($req,0,"item");

ca veut dire que si $req est bien ecrit alors il ne retrouve aucune similitude dans la base de donnees.
Merci de me repondre pour finir aussi.
Second probleme comment afficher les attributs de la table c'est a dire(idtrack et item)?

Merci
Commenter la réponse de shakyk
Messages postés
21
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2010
0
Merci
lorsque je saisis la commande
print_r($_POST)
resultat:
Array ( [seektrack] => AEL0000001 [Submit] => Track ) Erreur
ca veut dire que la variable arrive vraiment au formulaire de résultat mais l'erreur y est toujours presente
Commenter la réponse de shakyk
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Je me répète :

Et remplace ta requête par :
Code PHP :

if (false $req mysql_query("SELECT * FROM Product WHERE idtrack ='$seektrack'")) die ('erreur lors de la requête : '.mysql_error());


Quelle est l'erreur exacte ?



Kohntark -
Commenter la réponse de kohntark
Messages postés
21
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2010
0
Merci
message suivant:
erreur lors de la requête : No database selected

la je ne comprends plus rien.il n'arrive pas a entrer dans la base de donnees
Commenter la réponse de shakyk
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
soit in French : pas de base de données sélectionnée
"php No database selected" dans google donne 159 000 000 résultats, les premiers donnant sans doute la réponse.
... juste pour te dire qu'il serait bien que tu cherches un peu toi aussi !!
n'oublie pas que ce problème te concerne.

Regarde donc du côté de la connexion que tu fais à la DB (mysql_connect, mysql_select_DB)


Cordialement,


Kohntark -
Commenter la réponse de kohntark
Messages postés
21
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
13 juin 2010
0
Merci
c'est l'erreur je crois la plus stupide que j'etais entrain de faire.
jai utilise le nom de la connexion comme base de donnees.
merci beaucoup pour ton aide je te tiens informer pour d'autres precisions.
Commenter la réponse de shakyk
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
heureux de voir que je ne suis pas le seul à faire des erreurs stupides.

Bon courage,


Kohntark -
Commenter la réponse de kohntark