Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323

    etichette inserimento/modifica - query SQL

    salve, sto provano ad fare l'inserimento e l'update delle mie etichette cloud tag(in inglese)..
    ora l'inserimento e ok ecco il codice:

    codice:
    $lastId = $db->lastInsertId();            
                if(!empty($_POST['check_list'])) {
                foreach($_POST['check_list'] as $check) {            
                $query = "INSERT INTO post_tags (id_tags,id_news,data_reg)VALUES(:id_tags,:id_news,:data_reg)";
                $stmt = $db->prepare($query);
                $stmt->bindParam(':id_tags', $check, PDO::PARAM_INT);
                $stmt->bindParam(':id_news', $lastId, PDO::PARAM_INT);
                $stmt->bindParam(':data_reg', $unisci_data, PDO::PARAM_STR);
                $stmt->execute();
                    }
                }
    Da questa riga prendo l'ultimo inserimento che faccio per inserire le news:
    $lastId = $db->lastInsertId();
    e qui non ci sono problemi.

    ora il form e composto cosi:
    codice:
    <tr>
                <td>Tags</td>
                <td><?php 
                    $stmt = $db->prepare('SELECT * FROM tags'); 
                    $stmt->execute(); 
                    while(($row_tags = $stmt->fetch()) !== false)
                    {
                    ?>
                    <input type="checkbox" name="check_list[]" value="<?php echo $row_tags["id"]; ?>"><?php echo $row_tags["name"]; ?>
                    <?php
                    }
                ?></td>
                
                </tr>
    e ok.

    Ora la parte del modifica non mi riesce ansi lo fatto ma non capisco bene..

    io vorrei fare il modo che quando uno modifica la notizia e modifica i tag i tag vengono cambiati.

    ecco la parte del codice di update:
    codice:
        if(!empty($_POST['check_list'])) {
                foreach($_POST['check_list'] as $check) {            
                $query_delete = "DELETE FROM post_tags WHERE id=:id";
                $stmt = $db->prepare($query_delete);
                $stmt->bindParam(':id', $lastId, PDO::PARAM_INT);
                $stmt->execute();
                $query = "UPDATE post_tags set id_tags=:id_tags,id_news=:id_news,data_reg=:data_reg WHERE id=:id";
                $stmt = $db->prepare($query);
                $stmt->bindParam(':id_tags', $check, PDO::PARAM_INT);
                $stmt->bindParam(':id_news', $lastId, PDO::PARAM_INT);
                $stmt->bindParam(':data_reg', $unisci_data, PDO::PARAM_STR);
                $stmt->bindParam(':id', $_POST['id'], PDO::PARAM_INT);
                $stmt->execute();
                
                }
            }
    ma se provo non cancella e aggiorna..

    come posso fare?

    grazie mille e l'unica cosa che mi manca poi il sito che sto facendo a mia zia e finito.

    grazie mille di nuovo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    il db è cosi:
    codice:
    CREATE TABLE `post_tags` (  `id` bigint(11) NOT NULL auto_increment,
      `id_tags` bigint,
      `id_news` bigint,
      `data_reg` datetime,
      `_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
       PRIMARY KEY  (`id`))  ENGINE = MyISAM DEFAULT CHARSET=utf8;
     
      CREATE TABLE `tags` (
      `id` bigint(11) NOT NULL auto_increment,
      `name` varchar(255) unique,
      `data_reg` datetime,
      `_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
       PRIMARY KEY  (`id`))  ENGINE = MyISAM DEFAULT CHARSET=utf8;
       
       INSERT INTO `tags` (name,data_reg)VALUES('gatti', Now());
       INSERT INTO `tags` (name,data_reg)VALUES('cani',Now());
       INSERT INTO `tags` (name,data_reg)VALUES('uccelli',Now());
       INSERT INTO `tags` (name,data_reg)VALUES('rettili',Now());
    grazie mille

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Comunque se funzionasse... cancelli tutti i record per un id e poi vuoi modificarli ? Non funzionerà.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    si hai ragione..e come dici tu, come posso fare?.. grazie mille.

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Se cancelli prima devi creare ( insert ) dopo.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    ok, cosi ha funzionato.. ora faccio qualche prova.. ti ringrazio molto..

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 © 2025 vBulletin Solutions, Inc. All rights reserved.