Arthezius

Inscris le 25/11/2008 à 16:22
  • Signature
    Arthezius
  • Site web
  • Nombre de sujets
    2
  • Nombre de messages
    7
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

Arthezius
le 09/05/2009 à 23:15
Problème de requête SQL
Bonjour,
J'ai un petit souci avec une requête SQL pour une recherche.
Je m'explique:
J'ai un <select></select> avec une liste de catégorie. Je valide pour y accéder.

J'ai donc une requête SQL correspondante. Toutefois, celle-ci dépends aussi du fait que je soit connecté ou non. Les résultats étant différent dans les deux cas.
Dans ma table, j'ai donc un champ déterminant si les résultats sont accessible ou non au simple visiteur. Le deuxième champ indique la catégorie.
Vous suivez jusque là ?

Pour le fait que je soit connecté ou non, j'ai placé une condition PHP qui me conduit sur un requête précise.
Voici le code:

<?php
if(isset($_POST['cat']) && !isset($_SESSION['img_login']))
{$sql = 'SELECT count(*) FROM img_liste WHERE visible="non" AND cat="'.$_POST['cat'].'"';}

if(isset($_POST['cat']) && isset($_SESSION['img_login']))
{$sql = 'SELECT count(*) FROM img_liste WHERE cat LIKE "'.$_POST['cat'].'" AND visible="oui" OR visible="non"';}

if(isset($_SESSION['img_login']) && !isset($_POST['cat']))
{$sql = 'SELECT count(*) FROM img_liste WHERE visible="oui" OR visible="non"';}

if(!isset($_POST['cat']) && !isset($_SESSION['img_login'])){$sql = 'SELECT count(*) FROM img_liste WHERE visible="non"';}
?>




Le count est juste là pour déterminer le nombre de réponse.
Ce qui m'ennuie c'est dans le deuxième cas. Quand la recherche est lancé et que je suis connecté.
Le champ visible accepte trois résultat possible:
oui, non et pri.
Le troisièmement rendant l'affichage privé. Donc seul oui et non doivent être pris en compte. Toutefois ça va pas.
Ce que je veux en fait c'est que les résultats correspondent à la recherche
visible = oui ou non et cat étant la catégorie sélectionné dans le <select></select>

Démonstration ici: http://arthezius.fr/up_img/index.php?page=liste
Merci à ceux qui pourront m'aider.
Arthezius
Arthezius
le 18/04/2009 à 08:29
Configuration de Sender ID [Anti spam d'hotmail]
Je suis désolé de relancer ce vieux topic mais je suis tombé dessus par hasard et cela m'intéressait justement.
Peut-être serait-il intéressant de faire un tuto sur le sujet car je pense que ce problème devient récurent maintenant.
Hotmail est très présent et difficile à éviter.
Arthezius
Arthezius
le 01/12/2008 à 05:04
Envoi de mail en html
J'ai l'impression que
Message-Id: <20081129175109.B26F95405@90plan.ovh.net> Date: Sat, 29 Nov 2008 18:51:09 +0100 (CET) X-Ovh-Tracer-Id: 9294866682371045997 X-Ovh-Remote: 213.186.36.178 (8.mail-out.ovh.net) X-Ovh-Local: 213.186.33.73 (mx3.ovh.net) X-Spam-Check: DONE|H 0.5/N X-Ovh-Tracer-Id: 9295429631329499792
est ce qui arrive automatiquement dans le contenu du message à destination au vue de ta citation du premier message et de ton code par la suite.
C'est peut-être un système automatique avec ton hébergeur qui le rajoute automatiquement.
Arthezius
Arthezius
le 30/11/2008 à 01:58
Supprimer une ligne dans la BDD
Je vais aussi me renseigner sur le mysql_escape_string dont tu me parlais.

Merci encore.
Arthezius
Arthezius
le 30/11/2008 à 01:56
Supprimer une ligne dans la BDD
En fait je me suis visiblement mal exprimé dans mes précédement messages ou j'ai oublié d'en faire la précision.
Il s'agissait en fait d'une seule et même page d'ou j'avais extrait les deux morceau de code.
Toutefois, il y avais bien une erreur dans mon code. Une erreur toute bête en fait.
J'avais mis:
while ($data = mysql_fetch_array($list)) 
{echo'<p class="cat"><input type="checkbox" name="cat_'.$data['id'].'" /> '.$data['categorie'].'</p>';}
echo'<p class="admin"><input type="submit" name="suppr" value="Supprimer" /></p></form>';?>

Au lieu de:
while ($data = mysql_fetch_array($list))
{echo'<p class="cat"><input type="checkbox" name="cat" value="'.$data['id'].'" /> '.$data['nom_cat'].'</p>';}
echo'<p class="admin"><input type="submit" name="suppr" value="Supprimer" /></p></form>';?>

Le problème étant au niveau du name="" dans le checkbox ou j'avais oublié de value=""

En tout cas, je vais maintenant me renseigner sur le htmlentities().
Merci pour cette suggestion.
Arthezius
Arthezius
le 29/11/2008 à 19:56
Supprimer une ligne dans la BDD
1) Le $data['id'] est en fait déclaré à l'affichage complet de la page. Autrement dans le formulaire, avant d'envoyer la requète pour la suppression de la ligne. Pour être plus précis, un while me permet d'afficher tout les lignes. A chaque affichage, j'affiche un checkbox pour sélectionner une ligne et j'utilise la variable $data['id'] dans le name pour les différencier.
Toutefois je voudrai le réutiliser pour supprimer la ligne.
http://www.lephpfacile.com/wall/wall-1654.php

2)Je n'en suis qu'a la première version de mon code. La partie sécurisation viendra ensuite. Je ne me suis pas encore penché sur la question. Merci toutefois pour le conseil.

3) Mes identifiants ne son utilisé qu'en local. Ceux utilisé en distant son totalement différent. Donc aucun souci a ce niveau.

Merci pour ton aide en tout cas.
Arthezius
Arthezius
le 29/11/2008 à 17:02
Supprimer une ligne dans la BDD
Bonjour, en fait j'arrive pas a supprimer une ligne dans ma base de donnée.
Enfin je sais le faire mais j'ai un code assez complexe et avec lequel je n'arrive pas a me dépatouiller.

Voici l'extrait du code qui nous interesse:
<?php
if (isset($_POST['suppr']) && $_POST['suppr'] == 'Supprimer')
{$mysql_id = mysql_connect('***', '***', '***');
mysql_select_db('***', $mysql_id) or die(mysql_error());

$sql = 'DELETE INTO blog_categories WHERE id='.$data['id'].'';
if(mysql_query($sql)){$notif='<p class="admin"><strong>Effacement effectué.</strong></p>';}
else{die('Echec. Erreur SQL !'.$sql.'<br />'.mysql_error());}
}
?>

[...]
<?php
$mysql_id = mysql_connect('***', '***', '***');
mysql_select_db('darkent', $mysql_id) or die(mysql_error());
$sql = 'SELECT * FROM blog_categories ORDER BY categorie ASC';
$list = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

/*if($list == ''){echo '<p class="cat"><em>Aucune catégorie</em></p>';}*/
echo'<form method="post" action="categories_art.php">';
while ($data = mysql_fetch_array($list))
{echo'<p class="cat"><input type="checkbox" name="cat_'.$data['id'].'" /> '.$data['categorie'].'</p>';}
echo'<p class="admin"><input type="submit" name="suppr" value="Supprimer" /></p></form>';?>

Bien sur il n'y a pas que ça et si vous voulez je vous met le code complet, mais c'est avec cette partie que j'ai le problème.
Il m'affiche le message suivant:
Echec. Erreur SQL !DELETE INTO blog_categories WHERE id=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTO blog_categories WHERE id=' at line 1

J'ai l'impression qu'il n'arrive pas à récupérer le nom de la ligne que je voudrai supprimer.
Arthezius
LoadingChargement en cours