jeff

Inscris le 11/11/2007 à 16:21
  • Signature
    Je suis pour le monde du libre
  • Nombre de sujets
    4
  • Nombre de messages
    16
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

jeff
le 17/12/2007 à 18:22
problème UPDATE SET
Bonjour,

J'ai un autre problème sur un code PDO, qui sort de mon livre PHP 5 Avancé, c'est un UPDATE SET. (page, 471, pour ceux qui ont ce livre)

Un coup, il bloc mon serveur "WAMP", un autre coup il m'envoi un message d'erreur :

Warning: PDOStatement::execute() [function.PDOStatement-execute]: SQLSTATE[HY093]: Invalid parameter number in H:\www\www.commanderies-net\edit_article_2.php on line 14

Warning: PDOStatement::execute() [function.PDOStatement-execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in H:\www\www.commanderies-net\edit_article_2.php on line 15


<?php
include ('./_require/function_connect.php');

$titre = $_POST['titre'];
$texte = $_POST['texte'];

$id_article = (int) $_POST['id_article'];

$sql = "UPDATE article SET titre=':titre, texte=':texte WHERE id_article = :id_article";
$stmt = $dbh->prepare($sql);

$valeurs = array(':titre'=>$titre, ':texte'=>$texte, ':id_article'=>$id_article);

ligne 14 - $stmt->execute($valeurs);
ligne 15 - $stmt->execute();

$stmt = NULL;
?>


Mon code d'édition et mon formulaire de modifications :

<?php
include ('./_require/function_connect.php');

$id_ar = (int) $_GET['id_article'];

$sql = "SELECT id_article,titre,texte FROM article WHERE id_article =$id_ar ";

$sth = $dbh->query($sql);
$result = $sth->fetchALL();

$row = $result[0];

$titre = $row['titre'];
$texte = $row['texte'];

$jour = substr($date_pud, 8, 2);
$mois = substr($date_pub, 5, 2);
$annee = substr($date_pub, 0, 4);
$date = $jour. '-' .$mois. '-' .$annee;

$dbh = NULL;
?>

<form method="post" action="edit_article_2.php">
<input type="text" name="titre" size="50" value="<?php echo $titre; ?> "/><br />
<textarea name="texte" rows="8" cols="30"><?php echo $texte; ?></textarea><br />
<input type="hidden" name="id_article" value="<?php $id_ar; ?>" />
<input type="submit" value="Modiffier" />
</form>


Merci de votre aide

Jeff
Je suis pour le monde du libre
jeff
le 17/12/2007 à 18:10
Contrôle sur deux champs
Bonjour,

Ca fonctionne, je l'ai mis juste après INSERT, et je suis bien redirigé.

Je le plaçais tout en bas, après les message d'erreurs.

Jeff
Je suis pour le monde du libre
jeff
le 17/12/2007 à 16:51
Contrôle sur deux champs
Bonjour,

J'ai essayé de placer ce header, rien a faire, ou il me renvoie directement sur ma page index là où sont visible les nouveaux enregistrement ou, j'ai une erreur et rien ne s'affiche.

Cette page est : ajout.php, et, je veux une fois que le nouvel enregistrement est inscrit dans la table, être dirigé sur la page index.php, et voir la nouvelle entrée affichée.

Jeff
Je suis pour le monde du libre
jeff
le 17/12/2007 à 15:53
Contrôle sur deux champs
Bonjour,

Quelqu'un peut me dire comment je peux placer un header('location: index.php'); sur le code :

<?php
if (isset($_POST['go']) && $_POST['go']=='add_commanderies') {
if ((isset($_POST['url']) && !empty($_POST['url'])) && (isset($_POST['nom']) && !empty($_POST['nom'])) && (isset($_POST['dep']) && !empty($_POST['dep'])) && (isset($_POST['news']) && !empty($_POST['news']))) {

function db_connect()
{
$result = new mysqli('localhost', 'jackbocar', 'XXXXXXXXX', 'ma_base');
if (!$result)
throw new Exception('Connexion impossible au serveur');
else
return $result;
}

$conn = db_connect();
$result = $conn->query('SELECT count(*) FROM commanderies WHERE nom="'.mysql_escape_string($_POST['nom']).'" AND dep="'.mysql_escape_string($_POST['dep']).'"');
$data = $result->fetch_array(MYSQLI_NUM);

if ($data[0] == 0) {
$result = $conn->query('INSERT INTO commanderies VALUES("", "'.mysql_escape_string($_POST['url']).'", "'.mysql_escape_string($_POST['nom']).'", "'.mysql_escape_string($_POST['dep']).'", "'.mysql_escape_string($_POST['news']).'")');
}
else {
$erreur = 'Le couple <span class="R">NOM et DEPARTEMENT</span> existe deja dans la table.<br /><br />';
}
}

else {
$erreur = 'Au moins un des champs est vide.<br /><br />';
}
}

?>


Meci de votre aide

Jeff
Je suis pour le monde du libre
jeff
le 12/12/2007 à 18:31
Contrôle sur deux champs
J'ai refait mon code, je n'arrive pas à gérer les exceptions. Je me suis servi d'un code plus classique. Ca fonctionne très bien, il trouve le couple NOM et DEPARTEMENT, et il arrête le script si un champ est vide.

La seule chose que je n'arrive pas à faire, c'est le retour avec un
header('location: index.php');

voir le Wall : http://www.lephpfacile.com/wall/wall-1337.php

Merci de votre aide

Jeff
Je suis pour le monde du libre
jeff
le 12/12/2007 à 11:35
Contrôle sur deux champs
Bonjour,

Comment écrire la syntaxe ou le code pour contrôler si un NOM et le N° de département est déjà dans la table Exemple : Paris -> 75 ?

Je sais faire pour un contrôle, mais pour deux, je ne vois pas…

Si je fais comme ceci, ça ne fonctionne pas ?

<?php
function db_connect()
{
$result = new mysqli('localhost', 'jackbocar', 'XXXXXXXXXXXXXXXXX', 'ma_Table');
if (!$result)
throw new Exception('Connexion impossible au serveur');
else
return $result;
}

function register($nom, $dep)
{

$conn = db_connect();
$result = $conn->query("SELECT * FROM ma_table WHERE nom='$nom' AND dep='$dep' ");
if (!$result)
throw new Exception('Impossible executer la requete');
if ($result->num_rows>0)
throw new Exception('Ce nom et ce departement sont deja dans la table.');

//Si tout est bon, enregistrement dans la base
$conn = db_connect();
$result = $conn->query("insert into ma_table values ('$nom', '$dep')");
if (!$result)
throw new Exception('Il y a un problème, il faut recommencer.');
return true;
}

?>



Merci de votre aide.

Jeff
Je suis pour le monde du libre
jeff
le 11/12/2007 à 17:57
REMOTE_ADDR
Bonjour,

Merci de ta réponse.

Mais, je ne sais pas ce que ça veut dire "handler", et surtout pas comment réaliser un code.

Où, puis-je me renseigner pour avoir un tutoriel et surtout un modèle.

Merci de ta réponse.

Jack Bocar
Je suis pour le monde du libre
jeff
le 11/12/2007 à 10:55
REMOTE_ADDR
Bonjour,

Personne pour me dire si c'est correct !!!

Jeff
Je suis pour le monde du libre
jeff
le 09/12/2007 à 15:11
function mail()
Keika

Non, le PHP est là simplement pour que le code se voie.

Personnellement, je m'en sers sur mon site ça fonctionne parfaitement bien, et l'avantage, c'est que tu ne vois pas l'adresse Email dans la barre des statuts celle du bas.

/------------------------------------/

Mon Email est pour le webmaster et les éventuelles erreurs, et l'osque tu passes la souris dessus, tu ne vois que l'adresse de cette page.

Le code tel qui est :

/-----------------------------------/

L'appel au javascript :

<script src="./_content/fluide.js" type="text/javascript"></script>

/------------------------------------/
Le javascript :

function alaposte(debut,suite,tiret,fin,objet) {
location.href = 'mailto:'+debut+suite+tiret+fin+'@yahoo.fr?subject='+objet;return false
}

/------------------------------------/


Mon texte avec du HTML là où tu veux sur la page :

/-------------------------------------/

<p>
<a href="#" onclick="javascript:return alaposte('temp','liers','_','net','[Templiers net - ERREUR SITE]')" class="Lnav">Webmaster</a> : Envoyer un message suite à une erreur sur le site.
</p>

Tu peux aller voir la page des contacts sur mon site : http://www.templiers.net/index.php?page=contact


Test le, et dis-moi si ce code ne fonctionne pas.

Jeff
Je suis pour le monde du libre
jeff
le 08/12/2007 à 16:03
function mail()
L'as-tu essayé ?
Je suis pour le monde du libre
LoadingChargement en cours