• User

    Quando visualizzi quel messaggi di solito è perche in una riga di codice usi una variabile che fino a quel momento non è stata inizzializzata : nel tuo caso "id"
    Guardando sul codice questo "id" nel tuo caso dovrebbe corrispondere con
    $_GET['id']
    Quindi sembrerebbe che la pagina chiamata non contenga questa variabile nella querystring:
    app_eye_articolo.php -> dovrebbe mostrarti il messaggio
    app_eye_articolo.php?id=3 -> dovrebbe funzionare
    Poi nel tuo codice io scriverei al posto di
    if($_GET)
    {
    elimina_record();
    }
    Scriverei
    if(isset($_GET['id']))
    {
    elimina_record();
    }
    In quanto cosi come lo hai scritto tu non so se funziona correttamente


  • User Attivo

    @temp said:

    Quando visualizzi quel messaggi di solito è perche in una riga di codice usi una variabile che fino a quel momento non è stata inizzializzata : nel tuo caso "id"
    Guardando sul codice questo "id" nel tuo caso dovrebbe corrispondere con
    $_GET['id']
    Quindi sembrerebbe che la pagina chiamata non contenga questa variabile nella querystring:
    app_eye_articolo.php -> dovrebbe mostrarti il messaggio
    app_eye_articolo.php?id=3 -> dovrebbe funzionare
    Poi nel tuo codice io scriverei al posto di
    if($_GET)
    {
    elimina_record();
    }
    Scriverei
    if(isset($_GET['id']))
    {
    elimina_record();
    }
    In quanto cosi come lo hai scritto tu non so se funziona correttamente

    ciao e grazie
    ma scusa la testa dura
    cmq no ne sono uscito
    potresti aiutarmi di +
    ciao


  • User

    Ciao 😃
    Allora secondo me cè un errore nella chiamata a questa pagina. prova a postare il link che chiama questa pagina e vediamo come è composto 😃


  • User Attivo

    pagine delete_articoli.php
    [php]<?php
    if(isset($_GET['id']))
    {
    elimina_record();
    }

    function elimina_record()
    {
    //richiamo il file di configurazione
    require 'Config.php';
    //richiamo il file di connessione
    require 'Connect.php';

    //$id=trim($_GET['id_articolo']);
    //$categoria=trim($_POST['frm_modifica_categoria']);
    $id=$_GET['id'];
    //preparo la query di eliminazione
    $query="DELETE FROM Articoli
    WHERE id_articolo='$id'";
    //invio query
    if(!mysql_query($query))
    {
    die("errore nella query;".mysql_error());
    }
    $messaggio=urlencode("Articolo eliminato");
    header('location:'.'../app_eye_articolo.php'.'?msg='.$messaggio);
    exit;
    //chiudo la connessione
    mysql_close();
    }
    ?>[/php]

    pagina chiamante eye_artcoli.php
    [php]<?php
    //richiamo il file di configurazione
    require 'Config.php';
    //richiamo il file di connessione
    require 'Connect.php';

    $id=$_GET['id'];
    //'".$_GET['id']."'";
    //creo la SELECT
    $query="SELECT * FROM Articoli WHERE id_categ='$id'";
    //eseguo la query
    $risultato=mysql_query($query);
    if(!$risultato)
    {
    die("errore nella query;".mysql_error());
    }
    mysql_close();
    ?>

    <?php
    while($riga=mysql_fetch_array($risultato,MYSQL_ASSOC))
    {
    print"<tr>";
    print"<td width='5%' height='22' align='center'>
    <font face='Palatino Linotype' size='1'>
    <a href='Articolo/delete_articolo.php?id=$riga[id_articolo]'><img border='0' src='immages/cestino.gif' width='55' height='37'></a></font></td>";
    print"<td width='7%' height='22' align='center'>
    <font face='Palatino Linotype' size='1'>
    <a href='app_frm_modifica_articolo.php?id=$riga[id_articolo]'><img border='0' src='immages/modifica.gif' width='55' height='37'></a></font></td>";
    ?>
    [/php]
    non l'ho scritta tutta xrchè avrei ripetuto ciò che ho postato prima
    ciao e grazie di tutto
    udo lo stesso id sia per eliminare che per modificare, va bene?


  • User

    mm una cosa:
    il tuo errore mi pare sia:
    eye_articoli.php
    Cioè nel primo postdici che è questo l'errore.
    Quindi sembrerebbe che la pagina che chiama eye_articoli.php non gli passa "id" nella query string. Puo' essere?


  • User Attivo
    Notice: Undefined index: id in c:programmieasyphp1-8wwwstudiosito_gennarogestioneArticoloeye_articoli.php on line 9  
    
    

    ciao è come hai pwnsato

    la riga n 9

    [PHP]$query="SELECT * FROM Articoli WHERE id_categ='$id'";[/PHP]

    come uscirne?

    ciao e grazie:ciauz:


  • User Attivo

    Prova così

    <?php
    if(isset($_GET['id']))
    $id=mysql_real_escape_string($_GET['id']);
    else
    $id = "";

    //richiamo il file di configurazione
    require 'Config.php';
    //richiamo il file di connessione
    require 'Connect.php';

    //preparo la query di eliminazione
    $query="DELETE FROM Articoli
    WHERE id_articolo='$id'";
    //invio query
    $result = mysql_query($query)
    or die(mysql_error());
    if(mysql_num_rows($result) == 0)
    {
    echo = "Visualizzi un messaggio che dice che non c'è
    nessun articolo da cancellare o compi altra
    azione a scelta";
    }
    else
    {
    $messaggio=urlencode("Articolo eliminato");
    header('location:'.'../app_eye_articolo.php'.'?msg='.$messaggio);
    exit;
    //chiudo la connessione
    mysql_close();
    }
    ?>


  • User Attivo

    @Privacy-Impresa said:

    Prova così

    ciao ho copiato x intero il tuo codice
    mi da il seguente err

    Parse error: parse error, expecting ','' or ';'' in c:\programmi\easyphp1-8\www\studio\sito_gennaro\gestione\articolo\delete_articolo.php on line 20

    sull'echo

    ciao
    ah, volevo chiederti cosa non andava nel mio?

    ciao e grazie, sperimo di uscirne


  • User Attivo

    Ti dà errore perchè per stare nel layout sono andato a capo due volte... fai in modo che tutto l'echo sia una riga sola anche se va a capo...

    Nel tuo non andava che quando all'inizio chiamo la funzione elimina_record() dovresti passare qualcosa alla funzione... quindi tipo
    if(isset($_GET['id']))
    $record = $_GET['id']
    elimina_record($record)

    e sotto

    function elimina_record($id)

    Ma è un giro inutile... si fa tutto in un'unica funzione, perchè farne una cosa condizionata e se la condizione è vera lanci una funzione...

    Se la condizione è vera svolgi l'algoritmo, se non è vera esci... non serve lanciare una funzione... (a meno che non sia un processo "parziale" di cui il codice può aver bisogno in altre occasioni)

    keiske


  • User Attivo

    ciao scusami del fastidio
    ho provato come hai detto
    il problema gira e rigira, me lo ritrovo sempre, cioè quello
    iniziale

    Undefined index: id in c:\programmi\easyphp1-8\www\studio\sito_gennaro\gestione\Articolo\eye_articoli.php on linea 9

    la pagina eye_articoli.php
    [PHP]<?php
    //richiamo il file di configurazione
    require 'Config.php';
    //richiamo il file di connessione
    require 'Connect.php';

    //creo la SELECT
    $query="SELECT * FROM Articoli WHERE id_categ='".$_GET['id']."'"; NUM.9 riga
    //eseguo la query
    $risultato=mysql_query($query);
    if(!$risultato)
    {
    die("errore nella query;".mysql_error());
    }
    //chiudo la connessione
    mysql_close();
    ?>[/PHP]


  • User Attivo

    Correggi allo stesso modo...

    <?php
    if(isset($_GET['id']))
    $id=mysql_real_escape_string($_GET['id']);
    else
    $id = "";

    //richiamo il file di configurazione
    require 'Config.php';
    //richiamo il file di connessione
    require 'Connect.php';

    //creo la SELECT
    $query="SELECT * FROM Articoli WHERE id_categ='$id'"; NUM.9 riga
    //eseguo la query
    $risultato=mysql_query($query)
    or die(mysql_error());
    if(mysql_num_rows($risultato) == 0)
    {
    echo = "solito messaggio che non c'è niente"
    }
    //chiudo la connessione
    mysql_close();
    ?>


  • User Attivo

    ciao ti posto l'intera pagina
    [PHP]<?php
    //richiamo il file di configurazione
    require 'Config.php';
    //richiamo il file di connessione
    require 'Connect.php';

    //creo la SELECT
    $query="SELECT * FROM Articoli WHERE id_categ='".$_GET['id']."'";
    //eseguo la query
    $risultato=mysql_query($query);
    if(!$risultato)
    {
    die("errore nella query;".mysql_error());
    }
    //chiudo la connessione
    mysql_close();
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Language" content="it">
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nuova pagina 1</title>
    </head>
    <body>
    <div align="left">
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="882" height="33" id="AutoNumber1">
    <tr>
    <td width="19" height="33" rowspan="11"> 
    </td>
    <td width="866" height="20" valign="top" colspan="2">
    <img border="0" src="immages/active_linea.gif" width="857" height="11">
    </td>
    <td width="24" height="33" rowspan="11" valign="top"> 

        </td>
     </tr>
     <tr>
        <td width="866" height="1" valign="top" colspan="2">
        </td>
       </tr>
     <tr>
        <td width="866" height="1" valign="top" colspan="2">
      
    <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="100%" id="AutoNumber2" height="46">
           <tr>
              <td width="23%" height="21" valign="top" style="border-left-style: solid; border-left-width: 1; border-right-style: none; border-right-width: medium; border-top-style: solid; border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1">
             
       <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3" height="54">
                 <tr>
                    <td width="6%" height="28" align="center" bgcolor="#FF9933"><b>
                     <font face="Bookman Old Style" size="1" color="#FFFFFF">Elimina</font></b>
         </td>
                    <td width="6%" height="28" align="center" bgcolor="#FF9933"><b>
                     <font face="Bookman Old Style" size="1" color="#FFFFFF">Modifica</font></b>
         </td>
                    <td width="14%" height="28" align="center" bgcolor="#FF9933"><p><b>
                     <font face="Bookman Old Style" size="1" color="#FFFFFF">Codice Articolo</font></b>
         </td>
                    <td width="30%" height="28" align="center" bgcolor="#FF9933"><p align="left"><b>
                     <font face="Bookman Old Style" size="1" color="#FFFFFF">Descrizione Prodotto</font></b>
         </td>
                    <td width="12%" height="28" align="center" bgcolor="#FF9933"><b>
                     <font face="Bookman Old Style" size="1" color="#FFFFFF">Categoria</font></b>
         </td>
                    <td width="8%" height="28" align="center" bgcolor="#FF9933"><b>
                     <font face="Bookman Old Style" size="1" color="#FFFFFF">Prezzo</font></b>
         </td>
                    <td width="6%" height="28" align="center" bgcolor="#FF9933"><b>
                     <font face="Bookman Old Style" size="1" color="#FFFFFF">Disp</font></b>
         </td>
                    <td width="6%" height="28" align="center" bgcolor="#FF9933"><b>
                     <font face="Bookman Old Style" size="1" color="#FFFFFF">Off</font></b>
         </td>
                    <td width="6%" height="28" align="center" bgcolor="#FF9933"><b>
                     <font face="Bookman Old Style" size="1" color="#FFFFFF">Nov</font></b>
         </td>
                    <td width="6%" height="28" align="center" bgcolor="#FF9933"><b>
                     <font face="Bookman Old Style" size="1" color="#FFFFFF">Rich</font></b>
         </td>
        </tr>
    

    <?php
    while($riga=mysql_fetch_array($risultato,MYSQL_ASSOC))
    {
    print"<tr>";
    print"<td width='5%' height='22' align='center'>
    <font face='Palatino Linotype' size='1'>
    <a href='Articolo/delete_articolo.php?id=$riga[id_articolo]'><img border='0' src='immages/cestino.gif' width='55' height='37'></a></font></td>";
    print"<td width='7%' height='22' align='center'>
    <font face='Palatino Linotype' size='1'>
    <a href='app_frm_modifica_articolo.php?id=$riga[id_articolo]'><img border='0' src='immages/modifica.gif' width='55' height='37'></a></font></td>";
    print"<td width='14%' height='22' align='center'>
    <font face='Bookman Old Style' size='1'>$riga[codice]</font></td>";
    print"<td width='30%' height='22' align='center'>
    <p align='left'><font face='Bookman Old Style' size='1'>$riga[descrizione]</font></td>";
    print"<td width='12%' height='22' align='center'>
    <font face='Bookman Old Style' size='1'>$riga[id_categ]</font></td>";
    print"<td width='8%' height='22' align='center'>
    <font face='Bookman Old Style' size='1'>$riga[prezzo]</font></td>";
    print"<td width='6%' height='22' align='center'>
    <font face='Bookman Old Style' size='1'>$riga[disponibile]</font></td>";
    print"<td width='6%' height='22' align='center'>
    <font face='Bookman Old Style' size='1'>$riga[offerta]</font></td>";
    print"<td width='4%' height='22' align='center'>
    <font face='Bookman Old Style' size='1'>$riga[novita]</font></td>";
    print"<td width='7%' height='22' align='center'>
    <font face='Bookman Old Style' size='1'>$riga[richiesto]</font></td>";
    print"</tr>";
    }
    ?>
    </table>
    </td>
    </tr>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td width="866" height="8" valign="bottom" colspan="2" align="center">
    </td>
    </tr>
    <tr>
    <td width="866" height="1" valign="top" colspan="2">
    </td>
    </tr>
    <tr>
    <td width="866" height="12" valign="top" colspan="2">
    <img border="0" src="immages/active_linea.gif" width="857" height="11">
    </td>
    </tr>
    <tr>
    <td width="866" height="1" valign="bottom" colspan="2" align="center">
    <font face="Palatino Linotype" size="2">Pagina</font>
    </td>
    </tr>
    </table>
    </div>
    </body>
    </html>[/PHP]

    mi da sempre lo stesso errore
    l'articolo lo cancella ma mi notifica sempre lo stesso errore
    ho provato anche a mettere ciò cmi hai chiesto

    la pagina delete invece con i tuo suggerimenti lo fatta così
    [PHP]<?php
    if(isset($_GET['id']))
    $record = $_GET['id'];
    elimina_record($record);

    function elimina_record($id)
    {
    //richiamo il file di configurazione
    require 'Config.php';
    //richiamo il file di connessione
    require 'Connect.php';

    //$id=trim($_GET['id_articolo']);
    //$categoria=trim($_POST['frm_modifica_categoria']);
    //$id=$_GET['id'];
    //preparo la query di eliminazione
    $query="DELETE FROM Articoli
    WHERE id_articolo='".$_GET['id']."'";
    //invio query
    if(!mysql_query($query))
    {
    die("errore nella query;".mysql_error());
    }
    //$messaggio=urlencode("Articolo eliminato");
    //header('location:'.'../app_eye_articolo.php'.'?msg='.$messaggio);
    header('location:'.'../app_eye_articolo.php');
    exit;
    //chiudo la connessione
    mysql_close();
    }
    ?>[/PHP]

    sto uscendo pazzo
    ma che errore è questo!

    grazie del tuo aiuto


  • Bannato User Attivo

    ho paura che tu faccia apposta...

    $query="SELECT * FROM Articoli WHERE id_categ='".$_GET['id']."'";> $query="DELETE FROM Articoli
    WHERE id_articolo='".$_GET['id']."'";

    NON devi usare $_GET['id']! SCORDATELO!

    devi usare $id e prima di usare $id lo devi valorizzare con $_GET['id'] così:
    [php]$id = isset($_GET['id']) ? $_GET['id'] : "";[/php]


  • User Attivo

    Il fatto è che in cima è già valorizzato... poi però viene inserito cmq nella query $_GET['id']

    Poi see usi l'isset nell'if iniziale e poi richiami la funzione e poi apri la funzione, anche se gli dai un valore da passare, non è logicamente corretto... ti avevo preparato il codice alternativo...

    Oltretutto adesso il tuo if iniziale ha due righe, quindi devi mettere tutto dentro { } o la seconda istruzione è fuori if e parte comunque, quindi chiami la funzione elimina_record anche se $record non ha valori... e ti dà errore ancora...

    keiske


  • User Attivo

    Ciao poi mi spiegherai il xrchè
    adesso mi da

    errore nella query;Errore di sintassi nella query SQL vicino a '' linea 1

    ho scritto cosi come hai detto tu

    $query="SELECT * FROM Articoli WHERE id_categ = $id";
    la cancellazione la fa ma mi da quella notizia

    ciao e grazie


  • User Attivo

    id categ = '$id'

    Ma quella query sleeziona gli articoli... è l'altra query che cancella le notizie...

    keiske


  • User Attivo

    privacy non riesco a starti dietro
    scusatemi
    io faccio una query di selezione x tirare fuori dei risultati
    e cosi facendo visualizzo a video cio che ho nella tabella
    poi ho un tasto che dovrebbe eliminare e href=delete_articolo.php
    dove è il problema?

    Quando risolverò sto problema
    comprerò delle paste
    ciao da danny


  • User Attivo

    Allora, ragioniamo con ordine... tu hai due pagine... in una selezioni un record dalla tabella a seconda di cosa viene passato all'url del browser come $id, ok?

    Una cosa del tipo: pagina.php?id=22

    Selezioni tutti i campi del record dove id = '22'

    Ora, il tuo primo errore è che ad inizio pagina NON controlli se è stato effettivamente passato all'url un link con ?id=xx

    Se non lo controlli quando parte la query ad id_categ viene assegnato il nulla e ti dice che la variabile è indefinita...

    Il secondo errore è che cerchi di passare alla query direttamente la variabile $_GET['id'] invece di "filtrare" il valore e passarlo alla variabile $id

    Entrambe queste cose le fai in cima con questa funzione:

    if(isset($_GET['id'])) {
    $id = mysql_real_escape_string($_GET['id']);
    else
    $id = "";

    Questa funzione dice: "Se esiste un valore in $_GET['id'], associa a $id il valore di $_GET['id'], ma prima aggiungi un carattere \ prima di ogni carattere potenzialmente pericoloso"

    Adesso ti trovi che hai una variabile $id che esiste e che ha un valore se è stato passato un valore nell'url del browser, mentre è uguale a "" se non è stato passato nulla...

    Adesso possiamo fare la query al database per agire sul record che è associato al tuo $id

    $query="SELECT * FROM Articoli WHERE id_categ = '$id'";

    Seleziona tutti i campi dalla tabella articoli per il record dove id_categ è uguale a $id... $id va messo tra apici singoli... tutta la query tra apici doppi.

    Adesso lanci la query
    $risultato=mysql_query($query);

    Adesso analizzi il risultato della query e decidi che fare...

    Allora, nel tuo codice succede che dopo aver lanciato la query scrivi che se non c'è un $risultato lanci un die();

    Scusa ma se non c'è un risultato significa solo che non esiste nessun id_categ con l'id passato al browser, mica che c'è un errore di mysql.

    Poi basta. Col risultato della query non fai nulla per ora, salvo poi verso la fine ciclare intorno con un while e stampare tutti i dettagli dell'articolo... e va bene

    Quindi per chiudere questa pagina bisogna sapere cosa vuoi fare se il $risultato non c'è... ovviamente non lanciare un die() ma magari ricarichi la pagina senza valori e memorizzi dentro una varabile un messaggio di avvertimento...

    if(!$risultato) {
    {
    header("Location: altra_pagina.php");
    exit();
    }

    In questo modo se uno prova a caricare la pagina che dovrebbe mostrare un articolo senza però passare all'url l'id valida di un articolo, torni in automatico alla pagina prima

    E con questa pagina i conti dovrebbero essere saldati...



  • User Attivo

    La pagina del delete, la copi pari pari così intanto, senza quel doppio richiamo di funzioni che non ha molto senso:

    <?php
    //controllo se è statpo passato un id al browser e se no setto $id=""
    if(isset($_GET['id']))
    $id=mysql_real_escape_string($_GET['id']);
    else
    $id = "";

    //richiamo il file di configurazione
    require 'Config.php';
    //richiamo il file di connessione
    require 'Connect.php';

    //preparo la query di eliminazione
    $query="DELETE FROM Articoli WHERE id_articolo='$id'";
    //invio query
    $result = mysql_query($query)
    or die(mysql_error());
    //controllo se ci sono risultati. Se non ce ne sono torno alla pagina prima
    if(mysql_num_rows($result) == 0)
    {
    header("Location: altra_pagina.php");
    exit();
    }
    else
    {
    $messaggio=urlencode("Articolo eliminato");
    header('location:'.'../app_eye_articolo.php'.'?msg='.$messaggio);
    exit;
    //chiudo la connessione
    mysql_close();
    }
    ?>


  • User Attivo

    non so come ringraziarvi
    non lo facevo apposta
    solo che in altri script avevo usati
    quel tipo di codi e andava bene
    comunque ho imparato, prima effettuare il controllo
    comunque il codice, va bene, se foste i caserta vi offrirei un caffè

    ah, volevo chiedervi
    a questa parte di codice

    header('location:'.'../app_eye_articolo.php');
    

    come faccio a passargli l'id_categ

    perchè quando faccio elimina gli articolo scompaiono, perche
    perdono l'id_categ

    ciao e grazie di nuovo da danny1975 :ciauz::vai::arrabbiato: