Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    eseguire update su articoli senza perdere il loro id

    Buongiorno, ho questo problema: sto realizzando un mio piccolo CMS e non riesco a capire una cosa.

    Sto visualizzando il singolo articolo all'interno della pagina del singolo articolo.


    Codice PHP:
    function get_all_articles($db,$sql,$q) {
            
            
    $sql $db->prepare("SELECT * FROM articoli");
            
    $sql->execute();
            
    $result $sql->fetchAll(PDO::FETCH_ASSOC);
            
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
            
            foreach (
    $result as $value) {
                echo 
    "<a href=../../pagina.php?id=".$value['idarticoli']."><p>".$value['titolo']."</p></a>";
            } 
        } 

    Entro nella pagina del singolo articolo

    Codice PHP:
    function get_single_article($db,$sql,$q) {
            
            if (isset(
    $_GET['id'])) {
                
    $id $_GET['id'];
                
                
    $sql $db->prepare("SELECT * FROM articoli WHERE idarticoli = '".$id."'");
                
    $sql->execute();
                
    $result $sql->fetchAll(PDO::FETCH_ASSOC);
                
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
                
                foreach (
    $result as $value) {
                    echo 
    $value['titolo'];
                    echo 
    "<textarea name='article'>".$value['article']."</textarea>";
                    echo 
    "<script>";
                    echo 
    "CKEDITOR.replace('article');";
                    echo 
    "</script>";
                }
            }
            
            if(isset(
    $_GET['edit_page'])) {
                
                
    $edit $_GET['edit'];
                
    $artic $_GET['artic'];
                
                
    $sql $db->prepare("UPDATE SET article = ':artic' WHERE idarticoli = '".$edit."'");
                
    $sql->execute(array(":artic"=>$_GET['artic']));
                        
            }
        } 
    Ora però in questo modo io ottengo l'id dell'articolo, però quando modifico ho due errori:

    1) Quando clicco su modifica perdo $id ma lo vorrei mantenere, altrimenti come faccio a modificare l'articolo della pagina in cui sto? Se provo a concatenare i due isset $..., nel momento in cui clicco su Modifica non ottengo nulla. Il secondo è che l'update non và perchè mi genera fatal error (hai scritto male la query).

    2) Cosa c'è che non va nella query?

    Grazie!!

  2. #2
    di norma l'id lo ottieni dalla querystring..

    index.php/articoli
    vedo tutti gli articoli

    index.php/articoli/edit/idarticolo
    modifico l'articolo con id "idarticolo"

    un'altra cosa, get_single_article non ha niente a che vedere con l'update.. dovresti avere una funzione update() che usi per aggiornare la riga
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Grazie.

    Poi lo proverò e ti farò sapere

  4. #4
    Ciao Al, allora ho provato a fare come mi hai detto ma c'è qualcosa che continuo a sbagliare e non riesco a capire...

    Al di fuori del nome delle pagine, che poi dovrò mettere a posto, io ho questa situazione:

    http://localhost/ALTRO/Fluxproject/admin/articoli/ tutti gli articoli.

    http://localhost/ALTRO/Fluxproject/pagina.php?id=41 qui è quando entro in uno degli articoli

    prendiamo l'articolo con id 41.

    questa è la funzione che mi esegue su pagina.php dove id è 41

    Codice PHP:
        function get_single_article($db,$sql,$q) {
            
            if (isset(
    $_GET['id'])) {
                
    $id $_GET['id'];
                
                
    $sql $db->prepare("SELECT * FROM articoli WHERE idarticoli = '".$id."'");
                
    $sql->execute();
                
    $result $sql->fetchAll(PDO::FETCH_ASSOC);
                
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);        
                
                foreach (
    $result as $value) {
                    echo 
    $value['titolo'];
                    echo 
    "<textarea name='article'>".$value['article']."</textarea>";
                    echo 
    "<script>";
                    echo 
    "CKEDITOR.replace('article');";
                    echo 
    "</script>";            
                }
                
            }
        } 
    A questo punto viene il problema:

    Se clicco su submit, da questa url

    http://localhost/ALTRO/Fluxproject/pagina.php?id=41

    Entro in questa url

    http://localhost/ALTRO/Fluxproject/p...ifica+articolo

    Il submit richiama questa funzione

    Codice PHP:
        function update_article($db,$sql,$q) {
            
            if (isset(
    $_GET['edit_page'],$_GET['ID'])) {
            
                
    $ID $_GET['ID'];
            
                
    $article $_GET['article'];
            
                
    $sql $db->prepare("SELECT * FROM articoli WHERE idarticoli = '".$ID."'");
                
    $sql->execute();    
            
                
    $sql $db->prepare("UPDATE articoli SET article = :article WHERE idarticoli = '".$ID."'");
                
    $sql->execute(array(':article'=>$_GET['article']));        
            }     
        } 
    Che cosa sbaglio?

    Allora...

    Quando faccio submit non voglio "che l'url cambi", voglio che l'url sia qualcosa come

    http://localhost/ALTRO/Fluxproject/p...ifica+articolo

    E tra l'altro questo deve succedere nella stessa pagina, cosa che non succede perchè al submit mi si apre una pagina bianca dove vedo l'area input di $_GET['article'] e i due pulsanti. Ma questo che vuol dire?

    Mi chiedo questo:

    Nel primo caso $id funziona perchè mi cerca sulla base di $id come array quale id ho selezionato e mi apre il corrispettive, nel secondo io inizializzo $id allo stesso modo e però non mi funziona perchè submit mi porta altrove e quello che non capisco è...perchè?

    Dovrebbe darmi questa url

    http://localhost/ALTRO/Fluxproject/p...ifica+articolo

    E farmi vedere che nella textarea c'è il nuovo testo per articolo che è quello che prende da :article.

    Ah, il mio form html punta a self.

    Mi illumini per favore?

    Ultima modifica di donpelajo; 11-10-2013 a 01:40

  5. #5
    Problema risolto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.