• 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:


  • User Attivo

    Cosa vuoi fare lì? Passare alla pagina app_eye_articolo.php la variabile $messaggio per poi visualizzarlo in quell pagina e avvertire dell'avvenuta cancellazione?

    keiske


  • User Attivo

    no! no! :rollo:

    allora tutto comincia cosi
    ho una pagina dove ci sono delle categorie
    clicco sulla categ e si apre la pagine eye_articoli.php, in base all'id_categ
    che gli ho passato

    localhost/studio/sito_gennaro/gestione/app_eye_articolo.php?id=78
    

    poi quando elimino un articolo
    nella pagina delete_articoli.php, ho la location che richiama la pagina
    la pagina eye_articoli.php
    ma non visualizza + gli articoli xrchè perde l'id_categ
    infatti la pagina si presenta cosi

    localhost/studio/sito_gennaro/gestione/app_eye_articolo.php?
    

    ciao e grazie


  • User Attivo

    Scusa, perchè devi per forza tornare a quella pagina? Dopo il delete di un articolo, torna alla prima dove puoi scegliere le categorie...

    keiske


  • User Attivo

    @Privacy-Impresa said:

    Scusa, perchè devi per forza tornare a quella pagina? Dopo il delete di un articolo, torna alla prima dove puoi scegliere le categorie...

    keiske

    come idea non è male
    ma fare cio che ho appena detto è tropppo difficile

    cmq prendo in considerazione la tua idea

    ciao


  • User Attivo

    Non è che sia difficile... basta che ripassi la variabile in modalita url al redirect... quel valore ce l'hai ancora disponibile dentro $id...

    header('location:'.'../app_eye_articolo.php'.'?msg='.$messaggio.'&id='.$id);

    keiske


  • User Attivo

    si ho fatto

    header('location:'.'../app_eye_articolo.php?id='.$id);

    ho eliminato il mess, tanto lo vede in tempo reale che l'articolo è stato eliminato

    cmq facendo cosi mi da l'id_articolo e non l'id_categ

    infatti la pag è sempre vuota

    come mai?


  • User Attivo

    E c'hai ragione... nella pagina del delete $id è dell'articolo, non della categoria...

    Sai quale è il problema? E' che non sapendo bene la successione logica delle pagine... da dove uno viene, dove va, è anche difficile capire che dati estrarre... perchè tecnicamente potresti anche preparare una query al database da mettere in un'heade da includere in tutte le pagine, magari nel connect... così in ogni pagina certi valori ce li hai sempre... ovviamente la query che metti nell'header deve prendere di volta in volta i valori passati all'url...

    keiske


  • User Attivo

    come faccio a prendere l'id della categ
    comunque lo prendo i eye_articoli.php


  • User Attivo

    quando sei nella pagina per cancellare articoli non hai l'id della categoria... o meglio... come arrivi alla pagine del delete? Per forza dalla pagina dove hai visualizzato tutti gli articoli di una categoria? Se sì devi passare da quella pagina a quella del delete l'id della categoria... però a questo punto devi differenziare le variabili

    $id = id_categ
    $art = id_articolo

    I link cliccabili per andare alla pagina del delete saranno:

    delete.php?id=10&art=20

    poi cambi questo

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

    in:

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

    E nella query sotto cambi $id in $art per cancellare l'articolo

    In fondo a questo punto hai l'id della categoria stavolta salvato in $id e lo passi nel link del redirect

    keiske