Visualizzazione dei risultati da 1 a 3 su 3

Discussione: query con scelta

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    19

    query con scelta

    ciao a tutti
    sono un principiante di php, sto sviluppano un cms e ho trovato un intoppo nella creazione di una query
    spiego meglio
    ho una pagina di gestione nel mio cms dalla quale si inseriscono e si modificano tutte le pagine o meglio, le tabelle di mysql.
    la cosa che voglio fare è avere la possibilità di scegliere se pubblicare una nuova notizia sia nella pagina dedicata alla notizia sia nella Home page. quindi vuol dire popolare due tabelle contemporaneamente.
    quello che vorrei fare e inserire due input type nella pagina gestione e spuntando uno dei due mi da la scelta se la stessa notizia va anche nella tabella HOMEPAGE

    posto anche il codice della pagina che popola le tabelle di mysql

    grazie


    <?php

    include("config.inc.php");
    function ControlloStringhe($valore)
    {
    $valore = trim($valore);
    return (bool) preg_match("/[[:alnum:]\.\,\;\:\!\?\-\_\(\)\[\]'\"\»\«]+$/", $valore);
    }

    $puntatore_db = mysql_connect($host, $user, $password);
    if (!$puntatore_db) die ("Errore nella connessione \n".mysql_error());

    $selezione = mysql_select_db($db, $puntatore_db);
    if(!$selezione) die("Errore:". mysql_error ());

    $data = $_POST['anno']."-".$_POST['mese']."-".$_POST['giorno'];
    $titolo = addslashes($_POST['titolo']);
    $testo = addslashes($_POST['boxtesto']);

    $query = "insert into TABLE1 values (NULL, '$data', '$titolo', '$testo')";

    $esegui = mysql_query($query, $puntatore_db);

    $query = "insert into HOMEPAGE values (NULL, '$data', '$titolo', '$testo')";
    $esegui = mysql_query($query, $puntatore_db);

    if (!$esegui) die ("Errore nella connessione \n".mysql_error());
    echo("la news per TABLE1 è stata inserita correttamente");
    echo("

    ");
    echo("<a href=\"gestione.php\">torna al modulo della gestione</a>");

    mysql_close($puntatore_db);

    ?>

  2. #2
    Non sono sicuro di aver capito cosa vuoi fare, ci provo.

    Nella pagina dove invii le info (-> dove sono indicate dall'utente titolo, boxtesto,...), aggiungi la tua checkbox
    Codice PHP:
    [ <input name="home" type="checkbox" value="aggiungi" /> Aggiungi info anche a homepage 
    E poi cambi il tuo codice così:
    Codice PHP:
    $query "insert into TABLE1 values (NULL, '$data', '$titolo', '$testo')";
    $esegui mysql_query($query$puntatore_db);
    if (!
    $esegui) die ("Errore nella connessione \n".mysql_error());
    echo 
    'la news per TABLE1';

    if(isset(
    $_POST['home']) && $_POST['home'] == 'aggiungi') {
      
    $query "insert into HOMEPAGE values (NULL, '$data', '$titolo', '$testo')";
      
    $esegui mysql_query($query$puntatore_db);
      if (!
    $esegui) die ("Errore nella connessione \n".mysql_error());
      echo 
    ' e HOMEPAGE';
    }

    echo 
    ' è stata inserita correttamente'


    Volendo fare i pignoli: i nomi delle tabelle dovrebbero essere scritti in minuscolo e i comandi SQL in maiuscolo, per rispettare un modo di scrivere codice un po' più standard...

    Qui un codice un po' più in ordine.

    Ah... ControlloStringhe dove ti serve scusa?

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    19

    risolutivo

    grazie dvds

    sei stato risolutivo. ora funziona tutto come avevo pensato.
    ma confrontandomi con amici mi hanno sconsigliato di duplicare le cose su un DB motivando la cosa che lo stesso post su due tabelle diverse ti crea diverse noie di allineamento. però questa non l'ho capita

    la soluzione che mi hai postato mi sembra ottima e ben funzionante.

    grazie ancora

    PS ho corretto anche il codice in maniera più standard.

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.