mouhsine.saoud
Messages postés14Date d'inscriptionjeudi 21 mai 2015StatutMembreDernière intervention17 janvier 2016
-
8 janv. 2016 à 01:53
mouhsine.saoud
Messages postés14Date d'inscriptionjeudi 21 mai 2015StatutMembreDernière intervention17 janvier 2016
-
9 janv. 2016 à 00:04
Bonjour,
J'ai mis un code en utilisant $mysqli_affected_rows, pour chercher du duplicate avant l insertion mais j ai quelques errors :
Tel : Notice: Trying to get property of non-object
et : Notice: Undefined variable: datas
if ($datas['task_name']->mysqli_affected_rows == 0) { print "<br>Error! <p></p>"; echo "" .$datas['task_name']. " already exists in the Database"; print "<p></p>Please check the Name and try again"; unset($_POST); unset($datas); include 'index.php'; $page_template = 'task_add.php'; }
jordane45
Messages postés37730Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention30 septembre 2023342 Modifié par jordane45 le 8/01/2016 à 02:02
Bonjour,
Pour commencer .... il nous faudrait les messages d'erreur EXACT (avec le numéro de ligne par exemple....)
Et puis....
$datas['task_name']->mysqli_affected_rows
->mysqli_affected_rows s'applique sur un "objet" ... suite à une requête !
Retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE, REPLACE ou DELETE associée au paramètre link.
Je doute que $datas['task_name'] soit cet objet !
Et puis.. je ne vois pas la requête en question .... ni même la connexion à ta BDD dans le bout de code que tu nous as donné.
Cordialement,
Jordane
mouhsine.saoud
Messages postés14Date d'inscriptionjeudi 21 mai 2015StatutMembreDernière intervention17 janvier 20161 8 janv. 2016 à 02:42
Les erreurs :
Notice: Trying to get property of non-object in C:\wamp\www\modules\Task\actions\index.php on line 41
Notice: Undefined variable: datas in C:\wamp\www\modules\Task\actions\index.php on line 52
Le code tt entier :-)
<?php $action = 'display';
if (isset($_REQUEST['action'])) { $action = $_REQUEST['action']; }
switch($action) { default: case 'display': // Affichage global de tout les logiciels enregistré $request = 'select id, task_name from tasks';
$request_result = $dbObjectMysqli->query($request); while ($line = $request_result->fetch_assoc()) { $datas[] = $line; } $page_template = 'display_task.php'; break; case 'add': // Ajout d'un matériel
if (isset($_POST['add'])) { $act = 'valid'; } else { $act = 'display'; } switch ($act) { case 'display': $page_template = 'form_task_add.php'; break; case 'valid': $datas['task_name'] = $dbObjectMysqli->real_escape_string($_POST['name']);
// debut de chercher du duplicate
if ($datas['task_name']->mysqli_affected_rows == 0) { print "<br>Error! <p></p>"; echo "" .$datas['task_name']. " already exists in the Database"; print "<p></p>Please check the Name and try again"; unset($_POST); unset($datas); include 'modules/task/actions/index.php'; $page_template = 'form_task_add.php'; } //fin de chercher du duplicate
if ($datas['task_name'] != '') { $msg[] = 'Retrieve the data: OK'; $request_insert = ' insert into tasks( id, task_name) values(null,\''.$datas['task_name'].'\');'; if ($request_insert_query = $dbObjectMysqli->query($request_insert)) { $msg[] = 'Database Update: OK'; $page_template= 'display_success.php'; } } else { // En cas de champs non renseignés, les différentes variables sont détruites et le module est à nouveau intégré $message_err = 'All fields with * mark are mandatory'; unset($_POST); unset($datas); include 'modules/task/actions/index.php';
$page_template = 'form_task_add.php'; }
break; }
break; case 'modify': // Ajout d'un matériel if (isset($_POST['valid'])) { $act = 'valid'; } else { $act = 'display'; } $id = intval($_REQUEST['id']);
switch ($act) { case 'display':
$datas['id'] = intval($_REQUEST['id']); $request = 'select id, task_name from tasks where id = '.$datas['id'];
$datas['task_name'] = $dbObjectMysqli->real_escape_string($_POST['name']); $datas['id'] = intval($_POST['id']); if ($datas['task_name'] != '') { $msg[] = 'Retrieving data: OK'; $request_insert = 'update tasks set task_name = \''.$datas['task_name'].'\' where id='.$datas['id']; if ($request_insert_query = $dbObjectMysqli->query($request_insert)) { $msg[] = 'Database Update: OK'; $page_template= 'display_success.php'; } } else { // En cas de champs non renseignés, les différentes variables sont détruites et le module est à nouveau intégré $message_err = 'Veuillez remplir tous les champs marqués par une étoile.'; unset($_POST); unset($datas); $action = 'modify'; include 'modules/task/actions/index.php';
$page_template = 'form_task_modify.php'; }
break; }
break; case 'delete': // Suppression d'un logiciel et des informations qui lui sont liées if (isset($_REQUEST['id'])) { // Suppression des entrées $id = intval($_REQUEST['id']); $request_delete_query = 'delete from tasks where id = '.$id; if ($request_delete_result = $dbObjectMysqli->query($request_delete_query)) { $msg[] = 'Delete the category: OK';
} else { $msg[] = 'Delete the category: KO. Please verify if the category is linked to a Device.'; } } else { $msg[] = 'ID not Found.'; } $page_template = 'display_success.php'; break; }
jordane45
Messages postés37730Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention30 septembre 2023342 8 janv. 2016 à 10:03
C'est bien ce que je te disais .....
$datas['task_name'] n'est pas un "objet" mysqli .... l'objet c'est $dbObjectMysqli
Et puis... dans le CASE dans lequel tu te trouves .. tu n'exécutes aucune requête.....
mouhsine.saoud
Messages postés14Date d'inscriptionjeudi 21 mai 2015StatutMembreDernière intervention17 janvier 20161
>
jordane45
Messages postés37730Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention30 septembre 2023 Modifié par mouhsine.saoud le 9/01/2016 à 00:05
8 janv. 2016 à 02:42
Notice: Trying to get property of non-object in C:\wamp\www\modules\Task\actions\index.php on line 41
Notice: Undefined variable: datas in C:\wamp\www\modules\Task\actions\index.php on line 52
Le code tt entier :-)
8 janv. 2016 à 10:03
$datas['task_name'] n'est pas un "objet" mysqli .... l'objet c'est $dbObjectMysqli
Et puis... dans le CASE dans lequel tu te trouves .. tu n'exécutes aucune requête.....
Modifié par mouhsine.saoud le 9/01/2016 à 00:05
J'ai changé mysqli_affected_rows au num_rows
et a marché