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());
Configuration: Windows Vista
Internet Explorer 7.0

9 réponses

  1. 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
  2. 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
  3. 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
  4. m4rt5
     
    requete2=DELETE FROM calendar WHERE id = 75
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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