LupusMic

  • Signature
    Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
  • Site web
  • Nombre de sujets
    26
  • Nombre de messages
    1 684
  • Nombre de commentaires
    4
  • Nombre de news
    Aucune
  • Niveau en PHP
    Gourou

Ses derniers messages sur les forums

LupusMic
le 19/07/2013 à 18:25
mes codes php modifier et supprimer ne marchent pas
var_dump, pas var-dump. Fais attention aux détails, c'est important quand on programme.

J'ai expliqué en détail comment utiliser (ceci est un lien). Est-ce que tu comprends l'erreur que te donne PHP ? Parce que c'est un classique qu'il faut que tu comprennes.

C'est normal puisque $_POST est vide, scrogneugneux. Utilises $_GET.
Je te décourage d'utiliser $_REQUEST parce que ce tableau mélange $_GET, $_POST et $_COOKIE, dans un ordre dépendant de la configuration de PHP.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 19/07/2013 à 15:26
mes codes php modifier et supprimer ne marchent pas
Si tu ne peux pas utiliser le bbcode, c'est mal barré. Regarde en-dessous du contrôle de saisie de la réponse, il y a un lien qui ouvre l'aide concernant le bbcode.

Pour en revenir à ton problème, var_dump n'a rien à voir avec MySQL. var_dump est une fonction de PHP qui permet d'inscepter le contenu d'une variable. C'est pour comprendre ce qui se passe.

Dire que ça fait une erreur ne sert à rien. Si tu as une erreur, il faut l'utiliser. Quand tu viens demander de l'aide, fournis là.

N'utilise pas $_REQUEST, cette variable confond trois autres variables, ce qui peut rendre le comportement incompréhensible. Reste sur $_GET et $_POST.

C'est normal que les données ne soient pas modifiées, tu n'appliques pas ta requête d'update via mysql_query. Tu as vu enlever le nom de la fonction par inadvertance ;)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 18/07/2013 à 17:18
mes codes php modifier et supprimer ne marchent pas
Je ne sais pas utiliser WampServer. Mais d'après la description qui en est faite sur le site, il est possible d'accéder directement aux logs depuis le TrayIcon.

var_dump

C'est bien ce que je craignais, la requête initiale vient d'un autre fichier : c'est important ici, puisque ça veut dire qu'effectivement, ton fichier a un HTTP POST qui lui est fournit.

Regardes ce que ton fichier HTML envoie avec var_dump :
<?php
var_dump($_POST);


Ceci dit, tu parles d'insérer. Or, ton script ne permet que la mise à jour d'une entrée existante (update dans MySQL). Il faut faire un insert dans MySQL d'abord.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 17/07/2013 à 19:40
mes codes php modifier et supprimer ne marchent pas
Je vais faire un résumé, ça devrait au moins te débloquer pour ce coup ci.

PHP supporte nativement deux méthodes HTTP : GET et POST. Les autres, c'est un peu plus velu et mal supporté, mais ce n'est pas très utile pour toi pour l'instant.

HTTP GET signifie que tu veux accéder une ressource.
HTTP POST signifie que tu soumets une ressource.

Une ressource est désignée par une URL. Il y a plusieurs compréhension de ce qu'est une ressource, et de nombreuses chapelles de ce que doit, est ou devrait être une ressource.

Dans ton cas, tu nous montre que ton formulaire est destiné à modifier la ressource updateClient.php
Par contre, je ne sais pas comment s'appelle le fichier qui contient le formulaire : est-ce le même nom de fichier ?

Dans tous les cas, la consultation de ton formulaire est une HTTP GET. Parce que tu demande à consulter la ressource en l'affichant de manière à pouvoir proposer une modification. Il faut donc bien comprendre que, au moment où tu affiche (au moins la première fois) ton formulaire, tu es en HTTP GET.

Les tableaux $_POST et $_GET sont des tableaux fournissant un accès simple à la plupart des paramètres HTTP fournits par le client (ton navigateur web, typiquement).

Dans le cas d'une HTTP GET, $_POST est toujours vide. $_GET contient les paramètres passés dans la search part de ton URI. C'est ce qui se situe après le point d'intérrogation dans ton URL.
Typiquement : updateClient.php?IdClient=1234

Dans le cas qui nous concerne, la requête SQL ne retournera rien, plusque la requête SQL créée sera
SELECT * FROM client WHERE IdClient=''


En général, pour comprendre pourquoi une requête ne retourne rien, tu l'affiche (avec var_dump par exemple), tu vérifie auprès de ton serveur que la requête à bien été exécutée (il faut activer le service de log de MySQL pour celà), et tu essaye la requête dans MySQL si jamais tu ne comprends pas pourquoi elle ne marche pas.

Bref, ça devrait déjà te débloquer un peu.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 17/07/2013 à 12:26
mes codes php modifier et supprimer ne marchent pas
Pour le BBCode, je te laisse relire les conditions d'utilisation du forum où s'y est indiqué.

En ce qui concerne ton problème, ça peut venir de beaucoup de choses. Il faut que tu vérifie. Mais en première lecture, ton formulaire est vide certainement parce que ta requête SQL ne renvoie rien. Mon petit doigt me dit que c'est parce que tu essaye de consulter des données HTTP POST alors que tu visualise ton formulaire en HTTP GET.

Si tu ne sais pas ce que sont HTTP GEt et HTTP POST, tu devrais lire un document qui explique ce qu'est une requête HTTP (demande à Google pour voir, si tu ne trouver pas de ressource abordable, on t'aidera).
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 16/07/2013 à 23:45
mes codes php modifier et supprimer ne marchent pas
N'oublie pas d'utiliser le bbcode pour rendre ton code plus lisible.

Que veut dire « ça ne marche pas » ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 07/07/2013 à 19:48
probleme avec php
Tout d'abord : quand on dit « bonjour » on le fait sans faute d'orthographe. Ça montrerait que tu te relise un minimum et que donc tu nous considères. Ensuite, lire la charte du forum, qui demande à utiliser le bbcode pour afficher le code, qui pourrait nous aider.

En ce qui concerne ton code, plusieurs remarques :
→ $_POST est un superglobal, accessible depuis n'importe quel portion de code. Ce n'est donc pas la peine d'utiliser global $_POST.
→ ton code est trop compliqué. Les conditions dans tes if sont trop longues.
→ il y a un mélange des genres dans la gestion des erreurs qui n'est pas génial.

Pour la gestion des erreurs, j'utilise en général un tableau. Chaque clé du tableau représente un paramètre HTTP, auquel j'associe un tableau d'erreurs. Ça permet de simplifier la gestion des erreurs.

<?php

$errors = array();

if(/* condition d'erreur */)
$errors['nom'] = 'Nom incorrect';

if(0 < count($errors))
/* Puisqu'on a des erreurs, on peut gérer */;
else
/* il n'y a pas d'erreur, on prépare et insère les données */;
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 06/07/2013 à 01:39
Requête SQL > SELECT
Tu as plusieurs solutions possibles.

La première, c'est de faire un order by rand(). Ça marche, mais si ta table de produits est grande, ou bien que tu as de nombreuses requêtes faisant appel à cette fonctionnalité, de sérieux problèmes de performance peuvent survenir (création d'une table temporaire, et appels systèmes liés à l'aléatoire).

La seconde, c'est de ne pas récupérer tout le résultat lors de l'exécution de la requête. Tout d'abord, mysql_query ne doit plus être utilisé. Il faut utiliser l'extension mysqli ou pdo_mysql pour utiliser MySQL dans PHP.
Donc, tu peux utiliser mysqli::result_data_seek pour te balader dans le result set de ta requête, et donc prendre un offset au hasard.

On peut imaginer d'autres manières de faire, mais c'est déjà deux bonnes pistes.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 05/07/2013 à 17:50
Recherches avec FULLTEXT
La fonction htmlentities retourne une chaîne vide si elle rencontre un encodage erroné.

Je ne sais pas comment tu gère l'encoding, mais c'est un truc qui peut poser problème s'il n'est pas correctement géré.

Tu as mon email, il faudrait que je regardes plus en profondeur ton code et les données en base pour vraiment comprendre ce qui se passe.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 04/07/2013 à 20:05
Recherches avec FULLTEXT
Tu vois, ça c'est le genre de question que tu devrais te poser ;)

Bon, l'ordinateur ne sait pas ce qu'est une ville, il faut donc lui dire. Donc il faut que tu prévois une liste de villes.

Mon code n'est pas plus académique, il est juste plus généraliste.

Bref, il faut que tu considères une liste de villes, et que tu l'utilises pour générer le tableau de traduction.

<style>
.highlight
{
font-weight: bolder;
color: #ff0000;
}
</style>
<?php
function highlight($text, $words)
{
$tr_table = array();
foreach($words as $word)
$tr_table[$word] = sprintf('<span class=\'highlight\'>%s</span>'
, htmlentities($word, ENT_NOQUOTES)
);

return strtr($text, $tr_table);
}


$cities = array('Paris', 'Londres', 'Berlin', 'Rome', 'Dublin');

$out = array();

// XXX insère ton code de connexion à la BD et de préparation de la requête
$result = $dbh->query($sql);
if($result)
{
$out[] = '<table>';
foreach ($result as $row)
{
$out[] = '<tr>';
$out[] = '<td>'.htmlentities($row['locomotion'], ENT_NOQUOTES).'</td>';
$out[] = '<td>'.htmlentities($row['date'], ENT_NOQUOTES).'</td>';
$out[] = '<td>'.highlight(htmlentities($row['resumer'], ENT_NOQUOTES), $cities).'</td>';
$out[] = '<td>'.htmlentities($row['impressions'], ENT_NOQUOTES).'</td>';
$out[] = '</tr>';
}
$out[] = '</table>';
}

print implode("\n", $out);
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LoadingChargement en cours