Kniva

Inscris le 28/05/2010 à 14:51
  • Nombre de sujets
    2
  • Nombre de messages
    31
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

Kniva
le 03/06/2010 à 10:17
Problème de formulaire msyql
J'ai toujours la même erreur.

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /mnt/web9/31/99/52403599/htdocs/login.php on line 14
Requête en échec 1.

J'ai modifié mes requêtes comme tu me l'as montré

<?php
/*Programme: Login.php
Description: Programme de login pour la section à accès réservé de la boutique.
Il propose 2 options: s'identifier
créer un nouveau compte.*/

session_start();
include("inf.php");//on définit la base de données, identifiant
switch (@$_POST['do'])
{
case "login":
$cxn=mysql_connect(SERVER,LOGIN,MDP,BDD) or die("Connexion impossible au serveur dans case login.");
$sql="SELECT loginName FROM member WHERE loginName='".mysql_real_escape_string($_POST['fusername'])."'";
$result=mysql_query($cxn,$sql) or die ("Requête en échec 1.");
$num=mysql_num_rows($result);
if($num>0)//loginName non trouvé
{
$sql="SELECT loginName FROM member WHERE loginName='$_POST[fusername]' AND password=md5'".mysql_real_escape_string($_POST['fpassword'])."'";
$result2=mysql_query($cxn,$sql) or die ("Requête en échec2.");
$num2=mysql_num_rows($result2);

if($num2>0) // mot de passe OK
{
$_SESSION['auth']="yes";
$logname=$_POST['fusername'];
$_SESSION['logname']=$logname;
$today=date("y-m-d h:i:s");
$sql="INSERT INTO Login(loginName,loginTime) VALUES ('$logname', '$today')";
$result=mysql_query($cxn,$sql) or die ("INSERT en échec.");
header("Location: membres.php");
}
else // mot de passe incorrect
{
$message="Le nom de Login '$_POST[fusername]' existe, mais le mot de passe ne correspond pas! Réessayez.<br>";
include("login_form.inc");
}
}
elseif($num==0)//Nom de longin introuvable
{
$message="Le nom de Login que vous avez saisi n'existe pas. Essayez une nouvelle fois.<br>";
include("login_form.inc");
}
break;
?>
Kniva
le 02/06/2010 à 18:00
Problème de formulaire msyql
Bonjour, ou rebonjour.
Voila, un autre souci sur une autre page. J'ai fait une page identification. Sur cette page, soit on s'identifie, soit on s'enregistre. J'ai passé pas mal de temps dessus, mais je stagne sur cette faute

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /mnt/web9/31/99/52403599/htdocs/login.php on line 14
Requête en échec 1.

Je sais qu'un argument n'est pas valide, mais je n'arrive pas à savoir quoi
Voici la partie du code

<?php
/*Programme: Login.php
Description: Programme de login pour la section à accès réservé de la boutique.
Il propose 2 options: s'identifier
créer un nouveau compte.*/

session_start();
include("inf.php");//on définit la base de données, identifiant
switch (@$_POST['do'])
{
case "login":
$cxn=mysql_connect(SERVER,LOGIN,MDP,BDD) or die("Connexion impossible au serveur dans case login.");
$sql="SELECT loginName FROM member WHERE loginName='$_POST[fusername]'";
$result=mysql_query($cxn,$sql) or die ("Requête en échec 1.");
$num=mysql_num_rows($result);
if($num>0)//loginName non trouvé
{
$sql="SELECT loginName FROM member WHERE loginName='$_POST[fusername]' AND password=md5('$_POST[fpassword]')";
$result2=mysql_query($cxn,$sql) or die ("Requête en échec2.");
$num2=mysql_num_rows($result2);

if($num2>0) // mot de passe OK
{
$_SESSION['auth']="yes";
$logname=$_POST['fusername'];
$_SESSION['logname']=$logname;
$today=date("y-m-d h:i:s");
$sql="INSERT INTO Login(loginName,loginTime) VALUES ('$logname', '$today')";
$result=mysql_query($cxn,$sql) or die ("INSERT en échec.");
header("Location: membres.php");
}
else // mot de passe incorrect
{
$message="Le nom de Login '$_POST[fusername]' existe, mais le mot de passe ne correspond pas! Réessayez.<br>";
include("login_form.inc");
}
}
elseif($num==0)//Nom de longin introuvable
{
$message="Le nom de Login que vous avez saisi n'existe pas. Essayez une nouvelle fois.<br>";
include("login_form.inc");
}
break;
?>
Kniva
le 02/06/2010 à 17:55
problème pagination ( mysql)
J'ai remodifié le code, et je suis allé voir sur différents site comment il faisait, et ça marche enfin. J'ai même réussi a régler mon problème, tout fonctionne correctement.
Merci pour l'aide apportée
Kniva
le 31/05/2010 à 15:48
problème pagination ( mysql)
Pardon pour la virgule, j'ai du faire une faute de frappe.

Je sais que mon niveau de php est très faible, j'ai compris le code. La seule seule chose que je ne comprends pas c'est pourquoi ma barre de navigation ne s'affiche pas. J'ai déjà lu plusieurs tutaux sur la pagination
Kniva
le 31/05/2010 à 14:15
problème pagination ( mysql)
J'ai des données de ma base qui s'affiche, mais sinon, je n'ai pas la barre de navigation.

Si je veux que ma pagination fonctionne, il faut que je dise que $_GET['debut'] existe, c'est cela??
Kniva
le 31/05/2010 à 13:04
problème pagination ( mysql)
Je vous redonne tout le code

<?php
function barre_naviguation($nb_total, $nb_affichage_par_page, $debut, $nb_liens_ds_la_barre)
{
$barre='';
/*on récupère l'URL courante munie de ses paramètres auxquels on ajoute le paramètre 'début' qui jouera le rôle du premier élément
de notre LIMIT*/
if(htmlentities($_SERVER['QUERY_STRING'])== "")
{
$query=htmlentities($_SERVER['PHP_SELF']).'?debut=';
}
else
{
$tableau=explode("debut=", htmlentities($_SERVER['QUERY_STRING']));
$nb_element=count($tableau);
if($nb_element==1)
{
$query=htmlentities($_SERVER['PHP_SELF']).'?'.htmlentities($_SERVER['QUERY_STRING']).'&debut=';
}
else
{
if($tableau[0]=="")
{
$query=htmlentities($_SERVER['PHP_SELF']).'?debut=';
}
else
{
$query=htmlentities($_SERVER['PHP_SELF']).'?'.$tableau[0].'debut=';
}
}
}
//on calcule le numéro de la page active
$page_active=floor(($debut/$nb_affichage_par_page)+1);
//on calcule le nombre de pages totales que va prendre notre affichage
$nb_pages_tolal=ceil($nb_total/$nb_affichage_par_page);
//on calcule le premier numero qui va s'afficher, ainsi que le dernier($cpt_deb et $cpt_fin)
if($nb_liens_ds_la_barre%2==0)
{
$cpt_deb1=$page_active-($nb_liens_ds_la_barre/2)+1;
$cpt_fin1=$page_active+($nb_liens_ds_la_barre/2);
}
else
{
$cpt_deb1=$page_active-floor(($nb_liens_ds_la_barre/2));
$cpt_fin1=$page_active+floor(($nb_liens_ds_la_barre/2));
}
if($cpt_deb1<=1)
{
$cpt_deb=1;
$cpt_fin=$nb_liens_ds_la_barre;
}
elseif($cpt_deb1>1 && $cpt_fin1<$nb_pages_total)
{
$cpt_deb=$cpt_deb1;
$cpt_fin=$cpt_fin1;
}
else
{
$cpt_deb=($nb_pages_total-$nb_liens_ds_la_barre)+1;
$cpt_fin=$nb_pages_total;
}
if($nb_pages_total<=$nb_liens_ds_la_barre)
{
$cpt_deb=1;
$cpt_fin=$nb_pages_total;
}
//si les premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
if($cpt_deb!=1)
{
$cible=$query.(0);
$lien='<a href=" ' .$cible. ' ">&lt;&lt;</a>&nbsp;&nbsp;';
}
else
{
$lien='';
}
$barre .=$lien;
//on affiche ts les liens ds notre barre, tt en vérifiant de ne pas mettre de lien pr la page active
for($cpt=$cpt_deb;$cpt_fin;$cpt++)
{
if($cpt==$page_active)
{
if($cpt==$nb_pages_total)
{
$barre .=$cpt;
}
else
{
$barre .=$cpt.'&nbsp;&nbsp';
}
}
else
{
if($cpt==$cpt_fin)
{
$barre .="<a href=' ".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .="'>".$cpt."</a>&nbsp;-&nbsp;";
}
}
}
$fin=($nb_total-($nb_total%$nb_affichage_par_page));
if(($nb_total%$nb_affichage_par_page)==0)
{
$fin=$fin-$nb_affichage_par_page;
}
/*si $cpt_fin ne vaut pas la dernière page de la barre de naviguation, on affiche un >> qui sera un lien vers la dernière page
de naviguation.*/
if($cpt_fin!=$nb_pages_total)
{
$cible=$query.$fin;
$lien='&nbsp;&nbsp;<a href="' .$cible. '">&gt;&gt;</a>';
}
else
{
$lien='';
}
$barre .=$lien;
return $barre;
}
?>

<?php
include("page.inc");
include("inf.php");
//on se connecte à notre base
$base=mysql_connect(SERVER,LOGIN,MDP);
mysql_select_db(BDD,$base);
/*on prépare une requête permettant de calculer le nbre total d'éléments qu'il faudra afficher sur
nos différentes pages*/
$sql='SELECT count(*) FROM DVD';
//on exécute cette requête
$resultat=mysql_query($sql,$base) or die ('Erreur SQL!<br/>'.$sql.'<br/>'.mysql_error());
//on récupère le nombre d'élements à afficher
$nb_total=mysql_fetch_array($resultat);
//on teste si ce nombre ne vaut pas 0
if(($nb_total=$nb_total[0])==0)
{
echo"Aucune réponse trouvée";
}
else
{
// echo'<center><table border="1" width="600">
// <tr><td>dvdTitre</td><td rowspan="4">dvdImage</td></tr>
// <tr><td>dvdDate</td></tr>
// <tr><td>dvdEditeur</td></tr>
// <tr><td>dvdDescription</td></tr>
// </table></center>';
}
/*sinon, on regarde si la variable $debut ( le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on
l'initialise à 0.*/
if(!isset ($_GET['debut']))
{
$_GET['debut']=0;
$nb_affichage_par_page=2;
//preparation de la requete avec le LIMIT
$sql='SELECT dvdTitre, dvdDate, dvdEditeur, dvdDescription, dvdImage FROM DVD ORDER BY dvdDate DESC LIMIT '
. $_GET['debut'] . ','. $nb_affichage_par_page;
//on exécute la requete
$req=mysql_query($sql) or die ('Erreur SQL!<br/>' .$sql. '<br/>'. mysql_error());
//on va scanner tous les tuples un par un
while($data=mysql_fetch_array($req))
{
//on affiche les résultats ds la <table>
echo'<center><table border="1" width="600"><tr><td>'. htmlentities(trim($data['dvdTitre'])).'</td>';
echo'<td rowspan="5">'. htmlentities(trim($data['dvdImage'])).'</td></tr>';
echo'<tr><td>' . htmlentities(trim($data['dvdDate'])) .'</td></tr>';
echo'<tr><td>' . htmlentities(trim($data['dvdEditeur'])). '</td></tr>';
echo'<tr><td>' . htmlentities(trim($data['dvdDescription'])). '</td></tr>';
}
//on libere l'espace memoire alloué pour cette requete
mysql_free_result($req);
echo'</table></center><br><br>';
//on affiche enfin notre barre
echo'<span class="gras">' . barre_naviguation($nb_total,$nb_affichage_par_page, $_GET['debut'], 5,) . '</span>';
}
//on libère l'espace memoire alloué pour cette reuqête
mysql_free_result($resultat);
echo'</table><br/>';
?>



Je pensais que dans la ligne
<?php
echo'<span class="gras">' . barre_naviguation($nb_total,$nb_affichage_par_page, $_GET['debut'], 5,) . '</span>';
?>

la barre de naviguation( soit la fonction avant) allait apparaitre
Kniva
le 31/05/2010 à 12:08
problème pagination ( mysql)
Mais la ligne
<?php
echo'<span class="gras">' . barre_naviguation($nb_total,$nb_affichage_par_page, $_GET['debut'], 5,) . '</span>';
?>

appelle la fonction barre_naviguation, non?
Kniva
le 31/05/2010 à 11:39
problème pagination ( mysql)
Si je ne remets pas le code aussi que j'ai fait pour cette partie, ça ne va pas aller, enfin, y a pas un gros changement, j'ai mis le echo, mais surement à la mauvaise place:

<?php
function barre_naviguation($nb_total, $nb_affichage_par_page, $debut, $nb_liens_ds_la_barre)
{
$barre='';
/*on récupère l'URL courante munie de ses paramètres auxquels on ajoute le paramètre 'début' qui jouera le rôle du premier élément
de notre LIMIT*/
if(htmlentities($_SERVER['QUERY_STRING'])== "")
{
$query=htmlentities($_SERVER['PHP_SELF']).'?debut=';
}
else
{
$tableau=explode("debut=", htmlentities($_SERVER['QUERY_STRING']));
$nb_element=count($tableau);
if($nb_element==1)
{
$query=htmlentities($_SERVER['PHP_SELF']).'?'.htmlentities($_SERVER['QUERY_STRING']).'&debut=';
}
else
{
if($tableau[0]=="")
{
$query=htmlentities($_SERVER['PHP_SELF']).'?debut=';
}
else
{
$query=htmlentities($_SERVER['PHP_SELF']).'?'.$tableau[0].'debut=';
}
}
}
//on calcule le numéro de la page active
$page_active=floor(($debut/$nb_affichage_par_page)+1);
//on calcule le nombre de pages totales que va prendre notre affichage
$nb_pages_tolal=ceil($nb_total/$nb_affichage_par_page);
//on calcule le premier numero qui va s'afficher, ainsi que le dernier($cpt_deb et $cpt_fin)
if($nb_liens_ds_la_barre%2==0)
{
$cpt_deb1=$page_active-($nb_liens_ds_la_barre/2)+1;
$cpt_fin1=$page_active+($nb_liens_ds_la_barre/2);
}
else
{
$cpt_deb1=$page_active-floor(($nb_liens_ds_la_barre/2));
$cpt_fin1=$page_active+floor(($nb_liens_ds_la_barre/2));
}
if($cpt_deb1<=1)
{
$cpt_deb=1;
$cpt_fin=$nb_liens_ds_la_barre;
}
elseif($cpt_deb1>1 && $cpt_fin1<$nb_pages_total)
{
$cpt_deb=$cpt_deb1;
$cpt_fin=$cpt_fin1;
}
else
{
$cpt_deb=($nb_pages_total-$nb_liens_ds_la_barre)+1;
$cpt_fin=$nb_pages_total;
}
if($nb_pages_total<=$nb_liens_ds_la_barre)
{
$cpt_deb=1;
$cpt_fin=$nb_pages_total;
}
//si les premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
if($cpt_deb!=1)
{
$cible=$query.(0);
$lien='<a href=" ' .$cible. ' ">&lt;&lt;</a>&nbsp;&nbsp;';
}
else
{
$lien='';
}
$barre .=$lien;
//on affiche ts les liens ds notre barre, tt en vérifiant de ne pas mettre de lien pr la page active
for($cpt=$cpt_deb;$cpt_fin;$cpt++)
{
if($cpt==$page_active)
{
if($cpt==$nb_pages_total)
{
$barre .=$cpt;
}
else
{
$barre .=$cpt.'&nbsp;&nbsp';
}
}
else
{
if($cpt==$cpt_fin)
{
$barre .="<a href=' ".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .="'>".$cpt."</a>&nbsp;-&nbsp;";
}
}
}
$fin=($nb_total-($nb_total%$nb_affichage_par_page));
if(($nb_total%$nb_affichage_par_page)==0)
{
$fin=$fin-$nb_affichage_par_page;
}
/*si $cpt_fin ne vaut pas la dernière page de la barre de naviguation, on affiche un >> qui sera un lien vers la dernière page
de naviguation.*/
if($cpt_fin!=$nb_pages_total)
{
$cible=$query.$fin;
$lien='&nbsp;&nbsp;<a href="' .$cible. '">&gt;&gt;</a>';
}
else
{
$lien='';
}
$barre .=$lien;
return $barre;
echo "$barre";
}
?>
Kniva
le 31/05/2010 à 10:33
problème pagination ( mysql)
J'ai essayé de voir ce qui clochait dans mon code, mais je ne vois pas pourquoi la première partie du code gérant plus ou moins la pagination ( passer d'une page à une autre) ne s'affiche pas, ou ne fonctionne pas sur ma page.
Kniva
le 29/05/2010 à 15:02
problème pagination ( mysql)
Tout d'abord merci beaucoup pour toutes ses réponses et de passer du temps sur mon problème. Je débute, enfin, ça fait un moment que j'apprends le php, mais on va dire que j'ai le niveau d'un débutant.

J'ai corrigé cette faute de frappe, suivi tes conseils, tout s'affiche normalement ( enfin, j'ai encore le détail de l'image a régler). J'ai mes tableaux et mes informations qui s'affichent, mais je n'ai pas mes onglets pour passer à la page suivante, et il n'y a pas de ligne d'erreur qui s'affiche
LoadingChargement en cours