Undefined offset: 1

m4rt5 -  
CaPiT Messages postés 622 Statut Membre -
Bonjour,
je recois un erreur Undefined offset: 1 lors de l'execution de ma page delete.php
- Je récupere le id de l'événement a supprimer.
- Je récupère la date de cet événement.
...
- Je supprime cet événement.

+ Le but est d'avoir un lien qui renvoit au jour de cet événement...

Il semblerait que si j'enleve ma requete qui supprime, tout est ok... du moment ou je la remet... j'obtiens 3 erreurs Undefined offset ($month, $m, $day).

Merci!!
Martin

voici le code:
// Recuperation de l'ID a supprimer
$id = $_GET['id'];

/* Selection de la date */
$req = 'SELECT * FROM calendar WHERE id = '.$id;
$query = mysql_query($req) or die('MY_SQL ERROR<br/>'.$req.'<br/>'.mysql_error());
$data = mysql_fetch_assoc($query);

$date = $data['date'];

$tmp = explode('-',$date);
$year = $tmp[0];
$month = floor($tmp[1]);
$m = $tmp[1];
$day = floor($tmp[2]);
$date_fr = $day.' '.mois($m).' '.$year;

...

/* Effacement de l'événement
$req2 = 'DELETE FROM calendar WHERE id = '.$id;
$query2 = mysql_query($req2) or die('MY_SQL ERROR<br/>'.$req2.'<br/>'.mysql_error());

9 réponses

CaPiT Messages postés 622 Statut Membre 51
 
Bonjour,

As tu fait un echo de la variable $id, pour vérifier la présence du paramètre?

CaPiT
0
m4rt5
 
ouais je recois mon ID correctement...

on dirait que la requete DELETE sexecue avant mon select, du coup je ne recois auune valeur...
0
CaPiT Messages postés 622 Statut Membre 51
 
Tu peux me faire un echo $req2 après:

$req2 = 'DELETE FROM calendar WHERE id = '.$id;

et me copier/coller ce qu'il y a d'écrit?
0
m4rt5
 
requete2=DELETE FROM calendar WHERE id = 75
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
m4rt5
 
ID = 75
SELECT * FROM calendar WHERE id = 75
date:
tmp:Array
year:

Notice: Undefined offset: 1 in D:\projets\web\CCCM\_admin\calendrier\delete.php on line 56
month:0

Notice: Undefined offset: 1 in D:\projets\web\CCCM\_admin\calendrier\delete.php on line 58
m:

Notice: Undefined offset: 2 in D:\projets\web\CCCM\_admin\calendrier\delete.php on line 60
day:0
date_fr:0
0
CaPiT Messages postés 622 Statut Membre 51
 
Ok donc la requête n'a aucun problème.

Si tu exécutes cette requête directement dans Phpmyadmin ou autre base de données, tu n'sa pas d'erreur Sql ? ( on sait jamais un enregistrement non présent, double ou encore une table male nommée).

Si la requêtes fonctionne, fais un copier/coller complet de ton fichier Php, ou met le quelques part pour que je puisse le consulter.
0
m4rt5
 
<?php
// securité
include("../_includes/session.php");
include('../_includes/connexion.php');
include("../_includes/verif.php");
// calendrier
include('../_includes/fonc.php');
include('_includes/vars.php');
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="robots" content="noindex, nofollow" />
<title>CCCM - Supprimer un événement</title>
<link href="../_style/style.css" rel="stylesheet" type="text/css" />
<!--[if IE]>
<style type="text/css">@import url(_style/ie.css);</style>
<![endif]-->
</head>
<body>

<div id="logo">
<img src="../_images/logo.jpg" width="600" height="200" border="0" alt="Logo" />
</div>

<div id="menu">
<div id="menubox">
<?php include("../_includes/menu.php"); ?>
</div>
<div id="menubox">
<?php include("../_includes/menu2.php"); ?>
</div>
</div>

<div id="main">

<?php
// Recuperation de l'ID a supprimer
$id = $_GET['id']."<br>";
echo "ID = ".$id."";
/* Selection de la date */
$req = 'SELECT * FROM calendar WHERE id = '.$id;
echo $req."<br>";
$query = mysql_query($req) or die('MY_SQL ERROR<br/>'.$req.'<br/>'.mysql_error());

$data = mysql_fetch_assoc($query);

$date = $data['date'];
echo "date:".$date."<br>"; // RENVOIT RIEN
$type = $data['type'];
echo "type:".$type."<br>"; // RENVOIT RIEN

$tmp = explode('-',$date);
echo "tmp:".$tmp."<br>";
$year = $tmp[0];
echo "year:".$year."<br>";
$month = floor($tmp[1]); // Undefined offset: 1
echo "month:".$month."<br>"; // RENVOIT 0
$m = $tmp[1]; // Undefined offset: 1
echo "m:".$m."<br>"; // NE RENVOIT RIEN
$day = floor($tmp[2]); // Undefined offset: 2
echo "day:".$day."<br>"; // RENVOIT 0
$date_fr = $day.' '.mois($m).' '.$year;
echo "date_fr:".$date_fr."<br>"; //RENVOIT 0

// Free resultset
mysql_free_result($query);

?>

<table border="0" class="formtable" align="center" cellpadding="5">
<tr>
<td>
<h1 class="title">Événement(s)</h1>
</td>
</tr>
<tr>
<td class="formtext">
L'événement à bien été supprimé.
</td>
</tr>
</table>

<table border="0" class="formtable" align="center" cellpadding="5">
<tr>
<td>
<?php echo '<a href="view.php?m='.$month.'&d='.$day.'&y='.$year.'"><input type="button" name="back" value="Retour" class="formbtn100" /></a>'; ?>
</td>
</tr>
</table>

</div>

<?php include("../_includes/credits.php"); ?>
<?php
// Requete
$req2 = 'DELETE FROM calendar WHERE id = '.$id;
echo "requete2=".$req2.""; // requete2=DELETE FROM calendar WHERE id = 76
$query2 = mysql_query($req2) or die('MY_SQL ERROR<br/>'.$req2.'<br/>'.mysql_error());
?>
</body>
</html>
0
m4rt5
 
Bon bin ca marche... j'ai aucune idée de ce que j'ai fait, j'ai juste re-copier mon code de mon autre fichier qui avait sensiblement la mm chose et changer mes variables et ca marche... donc tant pis, merci pour l'effort :P!

cya
0
CaPiT Messages postés 622 Statut Membre 51
 
Je pense que ça venait de $id qui devait être définie plusieurs fois ou quelque chose dans ce style là.

Bonne continuation.

CaPiT
0