MRW.it Forum
  • Home
  • Forum
  • Fare Web
  • PHP

[PHP] cancellare/aggiornare record DB

  • Creatore Discussione Creatore Discussione ste80
  • Data di inizio Data di inizio 5 Lug 2017
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
ste80

ste80

Nuovo Utente
25 Feb 2012
38
0
6
44
Brescia
  • 8 Lug 2017
  • #21
provato il tuo suggerimento ma ancora niente, non so dove sbaglio o non so per quale arcano motivo non mi estrae i dati (in quell'arco di date ho inserito tre record....):
Immagine.png
be pazienza, ho risolto in un modo molto spartano, ogni fine mese elimino la tabella e la ricreo perdendo i dati passati.... o meglio, li salvo in formato testo ma non sono più presenti nel mio programma, così facendo non uso la query con funzione between... e che ti devo dire.... :(
Grazie comunque per avermi seguito e date dritte molto utili.
 
Ad
marino51

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 9 Lug 2017
  • #22
mi rincresce che tu abbandoni ed io non ho snobbato il to script riscrivendolo,
ma consentimi una spiegazione un po' più approfondita,

----------
dimenticando per un momento lo script, iniziamo dalla logica,

si devono compiere 3 attività distinte
1) raccogliere le date per estrarre i record dal db con un form
2) ottenute e verificate le date, calcolare i parametri della paginazione e gestire la prima pagina
3) gestire la paginazione

così ho letto nello script che hai pubblicato, riprendendo lo stesso, ho semplificato,
1) raccogliere le date per estrarre i record dal db con un form
2) ottenute e verificate le date, calcolare i parametri della paginazione
3) gestire la paginazione

queste attività ci dicono che dovremmo creare 3 script semplificando la logica di controllo
oppure ne possiamo creare 1 solo però gestendo correttamente la sequenza delle attività

PHP:
if ( empty($_POST['cerca']) and empty($_GET['pag']) )
{
    // ho appena avviato lo script php, devo visualizzare il form -----------------------
    .....
}
else
{
    if ( !empty($_POST['cerca']) )
    {
        // ho cliccato il bottone "cerca" -----------------------------------------------
        .....
    }
    else
    {
        // sto rientrando dalla pagina precedente ---------------------------------------
        .....
    }
}


----------
quando uno script (html, php, asp.net, ....) viene eseguito, produce un output HTML
questo HTML viene inviato al client ed il server "DIMENTICA TUTTO", non trattiene nessun valore ....

quindi se bisogna far "dialogare" degli script, (semplificando) lo si può fare con le variabili
$_POST e $_GET che ritornano i valori del form e inseriti nel URL,
$_SESSION impostando i valori nello script che li genera in modo da mantenerli disponibili alla sessione di lavoro specifica

questa situazione vale sia nel caso di 3 script, sia nel caso di uno script unico con le 3 attività


----------
perchè non ho cercato l'errore nello script che hai pubblicato ?
perchè mi sembra manchi la logica di controllo
quindi ho ripreso lo script pubblicato e con copia incolla ho strutturato la logica
(non curandomi di qualche errore "ortografico")


----------
gli effetti visivi nel funzionamento dello script unico come lo hai / l' ho impostato,

quando viene eseguito per la prima volta, si ottiene il form,

cliccando il bottone (con o senza date) la seconda attività non produce risultato visivo ma richiama

la paginazione che gestisce la visualizzazione dei records



inserendo delle date, viene ristretto il campo di azione della ricerca

come vedi lo script funziona, ed i valori vengono passati alle diverse attività con $_SESSION

prova a leggere lo script e cerca di capire la logica ed il funzionamento, è un buon esempio per costruirne altri
in particolare creando uno script unico, si può riutilizzare parte del codice (vedi function VisualizzaForm )

se hai dubbi, domande o ti servano chiarimenti, chiedi !
at salut

PHP:
<?php
session_start();

if ( empty($_POST['cerca']) and empty($_GET['pag']) )
{
    // ho appena avviato lo script php, devo visualizzare il form -----------------

    VisualizzaForm();
}
else
{
    if ( !empty($_POST['cerca']) )
    {
        // ho cliccato il bottone "cerca" -----------------------------------------------

        $da = $_POST['da'];  if ( empty($da) ) $da="1970-01-01";
        $a  = $_POST['a'];   if ( empty($a)  ) $a ="9999-01-01";

        include ("connessione.php");

        // conto le righe presenti all'interno della tabella
        $all_rows = mysql_num_rows(mysql_query( "SELECT * FROM `".$tabella."` WHERE data BETWEEN '".$da."' AND '".$a."'" );

        // Creo una variabile dove imposto il numero di record da mostrare in ogni pagina
        $x_pag = 5;

        // definisco il numero totale di pagine
        $all_pages = ceil($all_rows / $x_pag);

        // salvo le variabili per il prossimo giro
        $_SESSION['da']        = $da;
        $_SESSION['a']         = $a;
        $_SESSION['all_rows']  = $all_rows;
        $_SESSION['x_pag']     = $x_pag;
        $_SESSION['all_pages'] = $all_pages;

        // avvio il primo giro
        header( 'Location: '.basename($_SERVER['PHP_SELF'])."?pag=1" );
        die;
    }
    else
    {
        // sto rientrando dalla pagina precedente ---------------------------------------

        // Recupero il numero della pagina corrente
        $pag = $_GET['pag'];

        // riprendo le variabili salvate
        $da        = $_SESSION['da'];
        $a         = $_SESSION['a'];
        $all_rows  = $_SESSION['all_rows'];
        $x_pag     = $_SESSION['x_pag'];
        $all_pages = $_SESSION['all_pages'];

        // Calcolo da quale record iniziare
        $first = ($pag - 1) * $x_pag;

        include ("connessione.php");

        //Utilizzando LIMIT per partire da $first e contare fino a $x_pag
        $query = mysql_query( "SELECT * FROM `".$tabella."` WHERE data BETWEEN '".$da."' AND '".$a."' LIMIT ".$first.", ".$x_pag );

        VisualizzaForm();

        echo "<br />"
           . "I giorni lavorati tra il <b>$da</b> e il <b>$a</b> "
           . "sono <b>$all_rows</b> visibili in <b>$all_pages</b> pagine"
           . "<br /> <br />";

        //creo la parte della tabella con l'intestazione
        echo "<table border=1 cellpadding=0 cellspacing=0 width=50%>"
           . "<tr><th>Data</th><th>Quando</th><th>Ore</th><th>Ore straor.</th><th>Permesso</th><th>Ore permesso</th>";

        //intabello i dati che estraggo alternando i colori
        $flag_colore=0;

        while ($riga = $query->fetch())
        {
            if($flag_colore==0)
            {
                echo "<tr bgcolor=\"CCFFFF\">";
                $flag_colore=1;
            }
            else
            {
                echo "<tr bgcolor=\"E4E4E4\">";
                $flag_colore=0;
            }

            echo "<td ALIGN='center'>$riga[1]</td>"
               . "<td ALIGN='center'>$riga[2]</td>"
               . "<td ALIGN='center'>$riga[3]</td>"
               . "<td ALIGN='center'>$riga[4]</td>"
               . "<td ALIGN='center'>$riga[5]</td>"
               . "<td ALIGN='center'>$riga[6]</td>";
        }
 
        echo "</table>";
        echo "<br />";

        //visualizzo i link per andare avanti e indietro tra le diverse pagine
        if ($all_pages > 1)
        {
            if ($pag > 1)
            {
                echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . ($pag - 1) . "\">";
                echo "<-- Indietro</a>&nbsp";
            }

            echo " $pag di $all_pages ";

            if ($all_pages > $pag)
            {
                echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pag=" . ($pag + 1) . "\">";
                echo " Avanti --></a>";
            }
        }
    }
}

function VisualizzaForm()
{
?>

<html>
<head>
    <title>Cerca</title>
<body>
    <strong>Ricerca per data:</strong>

    <form method="post" action="cerca.php">
        <td>Da: </td>
        <input type="date" name="da" size="40" maxlength="300">
        <td>A: </td>
        <input type="date" name="a" size="40" maxlength="300">
 
        <input type="submit" name="cerca" value="Cerca" />

    </form>
</body>
</head>
</html>

<?php
}
?>

ps
ho usato una tabella esistente nel mio db per le prove,
quindi i dati visualizzati non corrispondono ai tuoi ma non mi sembra fondamentale

quando usi "select *" e fai riferimento al dato con "$riga[1]" ricorda che se una persona dovesse cambiare la struttura della tabella (cosa possibile in un'organizzazione), i tuoi script perdono il posizionamento, con visualizzazioni errate
 

Allegati

  • upload_2017-7-9_11-39-54.png
    11,8 KB · Visite: 260
Ultima modifica: 9 Lug 2017

ste80

Nuovo Utente
25 Feb 2012
38
0
6
44
Brescia
  • 9 Lug 2017
  • #23
aaaaaaaaaaaaaaaaaa..... sei un grande!!!!!!!!!!!!!!
i dati mi pare che li estragga!!!!!!! hai ragione, mai mollare
ho dovuto sistemare
PHP:
//intabello i dati che estraggo alternando i colori
        $flag_colore=0;

        while ($riga = mysql_fetch_row($query))
perchè mi dava un errore ma poco importa, adesso voglio far apparire i risultati e sistemare il tutto! vedo una luce..... (e detto così....) oggi sul tardi o al massimo domani sistemo il tutto.
Per adesso grazie infinite, sei stato una manna dal celo!
 

marino51

Utente Attivo
28 Feb 2013
3.205
207
63
Lombardia
  • 9 Lug 2017
  • #24
ma ho dedicato il tempo per le conoscenze .... non per lo script !!!!!!
 

ste80

Nuovo Utente
25 Feb 2012
38
0
6
44
Brescia
  • 9 Lug 2017
  • #25
Ottimo funziona tutto alla grande!!! grazie mille per il tempo dedicatomi!!!!
 
Prec.
  • 1
  • 2
Primo Prec. 2 di 2
Devi accedere o registrarti per poter rispondere.

Discussioni simili

[PHP] Cancellare una riga da un file di testo in base al nome
  • Cosina
  • 27 Mag 2019
  • PHP
Risposte
2
Visite
4K
PHP 27 Mag 2019
Cosina
[PHP] Cancellare una riga da un file txt in base alla data
  • Cosina
  • 27 Mag 2019
  • PHP
Risposte
1
Visite
2K
PHP 27 Mag 2019
macus_adi
L
  • Bloccata
conferma prima di cancellare con javascript e php
  • luigi777
  • 8 Feb 2019
  • PHP
Risposte
16
Visite
5K
PHP 13 Feb 2019
Max 1
H
cancellare avatar in codice PHP
  • halla
  • 15 Nov 2018
  • PHP
Risposte
2
Visite
2K
PHP 15 Nov 2018
halla
H
M
[PHP] Cancellare singolo file da cartella su server
  • Max61
  • 20 Ago 2018
  • PHP
Risposte
3
Visite
2K
PHP 21 Ago 2018
alankanz
A
[PHP] Cancellare riga database a scelta dell'utente
  • antonio15198
  • 9 Ago 2018
  • PHP
Risposte
2
Visite
4K
PHP 9 Ago 2018
Max 1
[PHP] sql aggiungere dato in una tabella senza cancellare contenuto
  • trattorino
  • 20 Giu 2018
  • PHP
Risposte
6
Visite
2K
PHP 24 Giu 2018
trattorino
D
[PHP] CANCELLARE MAILPLAN
  • digitaldavid
  • 28 Mag 2018
  • PHP
Risposte
2
Visite
1K
PHP 1 Giu 2018
macus_adi
[PHP] Cancellare file da una cartella....
  • Trapano
  • 29 Ott 2017
  • PHP
Risposte
5
Visite
4K
PHP 30 Ott 2017
bubino8
K
[PHP] Cancellare e Stampare tabella
  • kogaijy
  • 8 Giu 2017
  • PHP
Risposte
3
Visite
2K
PHP 13 Giu 2017
bubino8
[PHP] Cancellare directory con file al suo interno
  • felino
  • 25 Gen 2017
  • PHP
Risposte
2
Visite
2K
PHP 26 Gen 2017
felino
A
Cancellare record su più tabelle con PHP
  • alessiof86
  • 10 Lug 2014
  • PHP
  • 2
Risposte
27
Visite
4K
PHP 15 Lug 2014
alessiof86
A
M
Script php per cancellare file
  • marcomg
  • 25 Dic 2011
  • PHP
Risposte
1
Visite
2K
PHP 25 Dic 2011
alessandro1997
M
[PHP] Cancellare file con unlink usando le wildcards?
  • m.pittini
  • 10 Mar 2011
  • PHP
Risposte
1
Visite
3K
PHP 10 Mar 2011
maxbossi
L
php file di testo(db) cancellare una stringa
  • lucajucan
  • 2 Gen 2008
  • Database
Risposte
0
Visite
3K
Database 2 Gen 2008
lucajucan
L
L
php file di testo(db) cancellare una stringa
  • lucajucan
  • 2 Gen 2008
  • PHP
Risposte
1
Visite
2K
PHP 3 Gen 2008
Eliox
H
Need Help with PHP Database Connection Issues
  • hellmmithha
  • 19 Dic 2024
  • PHP
Risposte
1
Visite
527
PHP 21 Mar 2025
therope
T
F
Cerco Hosting con VECCHIE versioni di php
  • frk
  • 4 Mar 2024
  • Hosting
Risposte
0
Visite
2K
Hosting 4 Mar 2024
frk
F
Captcha php
  • Cosina
  • 21 Gen 2024
  • PHP
Risposte
1
Visite
2K
PHP 22 Gen 2024
WmbertSea
S
passare un valore da un form a un file .php con metodo post
  • smack2005
  • 15 Nov 2023
  • PHP
Risposte
4
Visite
1K
PHP 23 Nov 2023
zorro
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?