Petite explication pour un débutant...

Petite explication pour un débutant... - PHP - Programmation

Marsh Posté le 30-06-2004 à 14:59:47    

Code :
  1. $query = "SELECT * FROM albums WHERE idcat = $cat";
  2. $result = mysql_query($query);
  3. // tant qu'il y a des résultats
  4. while ($val = mysql_fetch_array($result)) {     //ligne 66
  5. echo $val["artist"];
  6. }


 
me génère :
 


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/free.fr/f/6/rafffff/index.php on line 66


 
je comprend pas trop l'erreur ni la démarche du while, quelqu'un pourrait t'il prendre un peu de temps pour m'expliquer svp ?
 
ps : jme suis aider de ça : http://www.asp-php.net/tutorial/asp-php/listing.php

Reply

Marsh Posté le 30-06-2004 à 14:59:47   

Reply

Marsh Posté le 30-06-2004 à 15:00:48    

ta requete ne doit pas etre bonne :)
 
a tu une table albums?

Reply

Marsh Posté le 30-06-2004 à 15:02:26    

oops enfaite ca marche ct juste une erreur dans le nom de la table :/
 
parcontre je ne comprend pas :
 

while ($val = mysql_fetch_array($result))


 
 
 
 
ps : je migre de ASP vers PHP


Message édité par Dr Raf le 30-06-2004 à 15:02:46
Reply

Marsh Posté le 30-06-2004 à 15:04:23    

tant que tu a des reponse correspondant a la requete, ca te stoque les données correspondantes dans le tableau $val

Reply

Marsh Posté le 30-06-2004 à 15:05:16    

$val est un tableau (array) qui va être alimenté de valeurs différentes par le while à chaque tour de boucle


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 30-06-2004 à 15:07:45    

oké merci les gars ! :)
 
le PHP à l'air plus approprié à des aplications web/bdd que l'ASP non ?

Reply

Marsh Posté le 30-06-2004 à 15:30:37    

non tu peux faire strictement la même chose avec l'un qu'avec l'autre. c'est une question d'habitude, de philosophie et de coût


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 30-06-2004 à 17:30:27    

JagStang a écrit :

non tu peux faire strictement la même chose avec l'un qu'avec l'autre. c'est une question d'habitude, de philosophie et de coût


 
et de temps passé à solutionner des problèmes débiles pour l'asp :D

Reply

Marsh Posté le 30-06-2004 à 18:06:27    

lol... bah je sais pas, ya quelques détails qui sont relous avec l'ASP quand on peut rajouter aucun composants par exemple...
 
Sinon j'ai un autre truc la pendant qu'on y est, un login tout simple :
 

Code :
  1. <? include("_cnx.php" );
  2. $query = "SELECT login FROM user WHERE login = $login";
  3. $result = mysql_query($query);
  4. if (empty($result)) {
  5. echo "Erreur : Utilisateur inconnu";
  6. } else {
  7. $query = "SELECT * FROM user WHERE pass = $pass";
  8. $result = mysql_query($query);
  9. if (empty($result)) {
  10.  echo "Erreur : Mot de passe incorrect";
  11. } else {
  12.  session_register("loggedIN" );
  13.  $loggedIN = mysql_result($result,0,"login" );
  14.  header("Location: index.php" );
  15. }
  16. }
  17. mysql_close(); ?>


 
Quoi que j'entre la première condition est toujours vraie...


Message édité par Dr Raf le 30-06-2004 à 18:07:19
Reply

Marsh Posté le 30-06-2004 à 18:12:28    

A moins que ton login soit numérique, il y a une erreur dans la requête non ?

Reply

Marsh Posté le 30-06-2004 à 18:12:28   

Reply

Marsh Posté le 30-06-2004 à 18:18:51    

c'est :
 

Code :
  1. $query = "SELECT login FROM user WHERE login = '$login'";


 
???
 
 
now la condition est tout le temps fausse  :??:

Reply

Marsh Posté le 30-06-2004 à 18:32:44    

j'ai vu ici que l'on peut utiliser une condition avec un while et un if on peut pas faire avec une seule structure ?  
 
http://www.asp-php.net/scripts/asp [...] =07&page=2

Reply

Marsh Posté le 30-06-2004 à 18:33:54    

Oui donc j'ai signalé l'erreur dans la requête et je suis pas aller plus loin :D
 
Donc, là, tu dois lire le résultat de la requête (ou vérifier si le nombre de résultat est non nul) avant de faire un test :)

Reply

Marsh Posté le 30-06-2004 à 18:56:44    


<form action="login.php" method="post" enctype="application/x-www-form-urlencoded">
     <input name="login" type="text" size="10">
     <input name="pass" type="password" size="10">
     <input type="submit" value="Connection!">
</form>


 
 

Code :
  1. <? include("_cnx.php" );
  2. $query = "SELECT * FROM user WHERE login = '$login'";
  3. $val = mysql_fetch_array(mysql_query($query));
  4. if ($val["login"]=="" ) {
  5. echo "Erreur : Utilisateur inconnu";
  6. } else {
  7. $query = "SELECT * FROM user WHERE pass = '$pass'";
  8. $val = mysql_fetch_array(mysql_query($query));
  9. if ($val["pass"]=="" ) {
  10.  echo "Erreur : Mot de passe incorrect";
  11. } else {
  12.  // session_register("loggedIN" );
  13.  // $loggedIN = mysql_result($result,0,"login" );
  14.  header("Location: index.php" );
  15. }
  16. }
  17. mysql_close(); ?>


 
pour l'instant j'ai fait ça ca marche mais ya un truc bien bizarre  :heink: quand j'affiche la 2e requete $pass est égale à un de mes mot de passe enregistré dans ie qui n'as rien a voir...

Reply

Marsh Posté le 30-06-2004 à 19:06:45    

bon bah c bon avec $_POST[pass] ca marche merci pour ton aide naceroth :jap:

Reply

Marsh Posté le 30-06-2004 à 19:43:09    

Une autre petite question  :whistle:  
 
mon site actuellement est hebergé sur free (qui supporte le php4) est ceque l'on peut utiliser des variables de session? si oui comment ?
 
dès que j'essaye de démarer une session :
 


Warning: session_start(): open(/var/www/free.fr/f/6/*******/sessions/.sess_d53188d089a25c022bfb9c5b16ee3fa8, O_RDWR) failed: No such file or directory (2) in /var/www/free.fr/f/6/*******/login.php on line 23


Message édité par Dr Raf le 30-06-2004 à 19:44:25
Reply

Marsh Posté le 30-06-2004 à 19:48:06    

tu doit créer un répertoire à la racine de ton site (voir l'aide sur free)


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 30-06-2004 à 19:48:35    

c'est fou, j'ai jamais eu de compte free, mais j'ai déjà répondu 10 fois à cette question :sweat:


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 30-06-2004 à 20:57:47    

merki  [:twixy]  
 

Aller plus loin avec PHP4 sur Free  
 
Les sessions  
 
Les sessions sont un moyen pour conserver des informations pendant une visite. PHP4 inclue un 'gestionnaire de session' simplifiant le mécanisme.  
 
Le gestionnaire de session est activé sur Free. Par défaut, il s'agit des sessions 'fichiers' mais vous pouvez bien sûr développer votre propre systême.  
 
Afin de permettre une gestion transparente des sessions, l'option --enable-trans-sid est activée. Elle permet une réécriture des URLs ou l'envoi de cookies permettant de suivre votre visiteur.  
 
important : Pour que vos sessions 'fichiers' (mode par défaut) fonctionnent, vous devez créer un répertoire "sessions" (en minuscules sans les guillemets) à la racine de votre site Web (ou du cas échéant, de votre site Web secondaire). Sinon un message d'erreur vous signalant l'impossibilite de sauvegarder les sessions apparaitra.

Reply

Sujets relatifs:

Leave a Replay

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