Page 1 sur 1

Le formulaire ne met pas à jour les données

Posté : 10 juil. 2016, 20:54
par Agent5acad27
Bonjour, pouvez-vous s'il vous plait me dire pourquoi il ne veut pas réagir ?

FORMULAIRE
<?php
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
include_once 'include/admin_processes.php';
include('db.php');
$Admin_Process = new Admin_Process;
$Admin_Process->check_status($_SERVER['SCRIPT_NAME']);
$edit = $Admin_Process->edit_item_inventory($_POST, $_POST['edit']);
$id=$_GET['id'];

$sql=mysql_query("select * from inventory WHERE id='".$id."'");
while($row=mysql_fetch_array($sql))
{
$company=$row['company'];
$item=$row['item'];
$sku=$row['sku'];
$glcode=$row['glcode'];
$qtyalert=$row['qtyalert'];
$notes=$row['notes'];
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']."?id=".$_GET['id']; ?>" enctype="multipart/form-data">
								<div class="form-group">
									<label for="company">Company</label>
									<input name="company" type="text" class="form-control" value="<?php echo $company; ?>" id="company" />
								</div>
								<div class="form-group">
									<label for="item">Item</label>
									<input name="item" type="text" class="form-control" value="<?php echo $item; ?>" id="item" />
								</div>
								<div class="form-group">
									<label for="image">Image</label>
									<input type="file" name="image" id="image" />
								</div>
								<div class="form-group">
									<label for="sku">Part# | SKU</label>
									<input name="sku" type="text" value="<?php echo $sku; ?>" class="form-control" id="sku" />
								</div>
								<div class="form-group">
									<label for="glcode">GL-Code</label>
									<input name="glcode" type="text" value="<?php echo $glcode; ?>" class="form-control" id="glcode" />
								</div>
								<div class="form-group">
									<label for="qtyalert">Alert (Remaining)</label>
									<input name="qtyalert" type="text" value="<?php echo $qtyalert; ?>" class="form-control" id="qtyalert" />
								</div>
								<div class="form-group">
									<label for="notes">Notes</label>
									<textarea class="form-control" rows="2" id="notes"><?php echo $notes; ?></textarea>
								</div>
								<button name="edit" type="submit" class="btn btn-default">Update</button>
							</form>
PHP
function edit_item_inventory($post, $process) {

		if(isset($process)) {

		$company = $post['company'];
		$item = $post['item'];
		$image = $post['image'];
		$sku  = $post['sku'];
		$glcode = $post['glcode'];
		$qtyalert  = $post['qtyalert'];
		$notes  = $post['notes'];
		
		if((!$company) || (!$item) || (!$sku) || (!$glcode) || (!$qtyalert)) {
		return "<div class=\"alert alert-danger\">All field is <strong>required</strong>.</div>";
		}
		$query = $this->query("SELECT item FROM inventory WHERE item = '$item'");
		if($query['num_rows'] > 0){
		return "<div class=\"alert alert-danger\">The <strong>item</strong> already exist.</div>";
		}
		$query = $this->query("SELECT sku FROM inventory WHERE sku = '$sku'");
		if($query['num_rows'] > 0){
		return "<div class=\"alert alert-danger\">The <strong>Part# | SKU</strong> is already atribute to a other item.</div>";
		}
		$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
		$image_name = addslashes($_FILES['image']['name']);
		
		$this->query("UPDATE inventory SET (company, item, sku, glcode, qtyalert, qty, notes, image_name, image) VALUES ('$company', '$item', '$sku', '$glcode', '$qtyalert', '$qtyalert', '$notes', '{$image_name}', '{$image}') WHERE id='".$id."'");
				
		return '<div class="alert alert-success">The item have been successfully <strong>updated</strong>.</div>';
		}
		}

Re: Le PHP c'est retourné contre moi !

Posté : 10 juil. 2016, 22:55
par @rthur
Si tu nous indiquais exactement quel problème tu rencontres avec une question précise et un titre qui sert à quelque chose, ça serait + simple pour t'aider...

Qu'est-ce qui ne marche pas ?
Quels sont les messages d'erreur ? As-tu regardé dans les logs ?
Qu'as tu essayé ?

Re: Le formulaire ne met pas à jour les données

Posté : 10 juil. 2016, 23:25
par Agent5acad27
Bonjour, je n'ai aucun message d'erreur, il est supposé mettre à jour les données dans la base de donnée, met on dirait qu'il ne détecte même pas le php de include/admin_processes.php

J'ai essayé plein de chose, mais il y a eu aucun changement, alors je vous ait mis la version qui se rapprochait le plus de la réussite, en espérant qu'une personne puisses trouver la fameuse erreur.

P.S. Où sont les logs ?

Cordialement,
Agent5acad27

Re: Le formulaire ne met pas à jour les données

Posté : 10 juil. 2016, 23:38
par or 1
avec
<input name="edit" type="submit" class="btn btn-default" value="Update" />
???

Re: Le formulaire ne met pas à jour les données

Posté : 10 juil. 2016, 23:47
par Agent5acad27
Cela ne change rien.

Mais merci quand même de la proposition,
Agent5acad27

Re: Le formulaire ne met pas à jour les données

Posté : 10 juil. 2016, 23:56
par @rthur
Bonjour, je n'ai aucun message d'erreur, il est supposé mettre à jour les données dans la base de donnée, met on dirait qu'il ne détecte même pas le php de include/admin_processes.php
Bah il faut que tu fasses ton debug, teste chaque partie de code avec des points d'arrêt ou des die() en affichant tes variables au fur et à mesure pour savoir comment ton code se comporte.

Si tu penses que c'est un pb de requête SQL, fait un echo de ta requête et teste là avec phpmyadmin
P.S. Où sont les logs ?
Fait un phpinfo() et ce sera indiqué

Re: Le formulaire ne met pas à jour les données

Posté : 11 juil. 2016, 00:07
par Agent5acad27
J'ai essayé tout ce que vous avez dit, mais je ne trouve rien. D'après moi, il est simplement pas connecté au fichier PHP, mais je ne vois pas où est l'erreur. Pouvez-vous m'aider SVP ?

Agent5acad27

Re: Le formulaire ne met pas à jour les données

Posté : 11 juil. 2016, 00:43
par @rthur
J'ai essayé tout ce que vous avez dit, mais je ne trouve rien.
Non, ce n'est pas possible que tu aies essayé car sinon tu aurais fait ton debug.
Met un die() ligne par ligne et suit la progression dans le cheminement de ton code.

Si tu penses qu'un require sur un fichier ne fonctionne pas, met un die("test") au début du fichier et regarde si il est appelé.
Si tu ne vois pas le die() alors c'est qu'il n'est effectivement pas appelé donc il faut que tu remontes au niveau de ton require pour savoir pourquoi il n'est pas appelé, et ainsi de suite...

Re: Le formulaire ne met pas à jour les données

Posté : 11 juil. 2016, 01:10
par Agent5acad27
Met un die() ligne par ligne et suit la progression dans le cheminement de ton code.
Je vous remercie, je n'avais jamais fait une telle chose, maintenant je vais pouvoir le refaire. Maintenant j'ai réussis à faire afficher les erreurs, mais je ne suis pas capable de faire enregistrer le contenu dans la base de donnée. Est-ce qu'il y a une erreur:
function edit_item_inventory($post, $process) {

		if(isset($process)) {
	 
		$company = $post['company']; 
		$item = $post['item'];
		$image = $post['image']; 
		$sku  = $post['sku']; 
		$glcode = $post['glcode']; 
		$qtyalert  = $post['qtyalert']; 
		$notes  = $post['notes'];
		$id = $post['id'];

		if((!$company) || (!$item) || (!$sku) || (!$glcode) || (!$qtyalert)) { 
		return "<div class=\"alert alert-danger\">All field is <strong>required</strong>.</div>";
		}
		$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!
		$image_name = addslashes($_FILES['image']['name']);
		
		$this->query("UPDATE inventory SET (company, item, sku, glcode, qtyalert, qty, notes, image_name, image) VALUES ('$company', '$item', '$sku', '$glcode', '$qtyalert', '$qtyalert', '$notes', '{$image_name}', '{$image}') WHERE id='".$id."'");
				
		return '<div class="alert alert-success">The item have been successfully <strong>updated</strong>.</div>';
		}
		}

Re: Le formulaire ne met pas à jour les données

Posté : 11 juil. 2016, 01:11
par @rthur
Maintenant j'ai réussis à faire afficher les erreurs, mais je ne suis pas capable de faire enregistrer le contenu dans la base de donnée. Est-ce qu'il y a une erreur
A toi de debuguer ton code et de nous dire quelle partie précisément de ton code ne fonctionne pas.

Re: Le formulaire ne met pas à jour les données

Posté : 11 juil. 2016, 01:29
par Agent5acad27
... Merci de votre patience, ça a marché, j'ai pas trouvé l'erreur, j'ai seulement eu à retaper la ligne:
$this->query("UPDATE inventory SET (company, item, sku, glcode, qtyalert, notes, image_name, image) VALUES ('$company', '$item', '$sku', '$glcode', '$qtyalert', '$notes', '{$image_name}', '{$image}') WHERE id='".$id."'");
pour
$this->query("UPDATE inventory SET company='$company', item='$item', sku='$sku', glcode='$glcode', qtyalert='$qtyalert', notes='$notes', image_name='{$image_name}', image='{$image}' WHERE id='".$id."'");
Par contre, j'aimerais bien qu'une personne m'explique l'erreur :?

Cordialement,
Agent5acad27

Re: Le formulaire ne met pas à jour les données

Posté : 11 juil. 2016, 01:37
par @rthur
Comme je te l'ai dit plus haut, fait un echo de ta requête SQL et teste là avec phpmyadmin, si elle est incorrecte, tu va avoir le message d'erreur directement affiché.

Re: Le formulaire ne met pas à jour les données

Posté : 11 juil. 2016, 01:40
par Agent5acad27
Okay, merci !