Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1

    Intervenire su più tabelle dalla stessa pagina PHP

    Salve, la situazione che sto affrontando è forse un po' complessa da spiegare, per cui non so bene come cercarne la soluzione, che sono pressoché certo esiste sebbene è la prima volta che la affronto.

    Sto allestendo un pannello di amministrazione di un sito in php, sto inserendo delle tabelle html con dentro i valori dei vari campi prelevati dalle tabelle del database: le tabella html sono popolate con i classici comandi SELECT * FROM e con una combinazione opportuna di while e if.

    Fin qui tutto tranquillo, il problema sorge nel momento in cui, per esempio, voglio che sulla pagina web pubblica sia nascosto o eliminato un contenuto. Finché nel pannello di amministrazione ho a che fare con una singola tabella del database, mi basta invocare la pagina cestina.php?id=$id, ripristina.php?id=$id, o una funzione JavaScript che, ricevuto l'id come variabile codice, mi chiede conferma prima di invocare window.location="cancella_offerta.php?id="+codice;
    Sono perplesso tuttavia su come procedere avendo da gestire, nello stesso pannello di amministrazione, più tabelle del database, dove gli id possono ripetersi... Devo passare nella query string il nome della tabella del database, oppure è sufficiente il fatto che sono all'interno di un SELECT * FROM affinché php sappia dove puntare, ignorando gli altri contenuti?
    Nel momento in cui il pannello di amministrazione è su browser, io vedo contenuti html, quindi non ho riferimenti "dinamici" al database, se non invocando pagine php esterne...

    Le varie pagine php che intervengono sul db sono funzionanti, mi serve solo una dritta su come farle puntare alla tabella giusta per evitare casini (tipo eliminare o nascondere in blocco tutti gli id=2 da tutte le tabelle...).

  2. #2
    la SELECT ... FROM di SQL vuole obbligatoriamente il nome della tabella da cui leggere

  3. #3
    Certo, non ho scritto il codice integrale, per generalizzare... Nemmeno il while scritto da solo fa qualcosa...

  4. #4
    hai scritto

    Devo passare nella query string il nome della tabella del database, oppure è sufficiente il fatto che sono all'interno di un SELECT * FROM affinché php sappia dove puntare, ignorando gli altri contenuti?

    da qui la mia risposta

    ma magari non ho capito io la domanda

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Allora vediamo se ho capito bene, tu vuoi cambiare da backend la visibilità di alcuni valori lato frontend?

    In quel caso aggiungi un campo visibility alle tabelle, mettiamo con valori public e private, se i valori sono public li fai vedere anche nel frontend (aggiungi un where alle query), se sono private le fai vedere solo nel backend.

  6. #6
    Quote Originariamente inviata da optime Visualizza il messaggio
    hai scritto

    Devo passare nella query string il nome della tabella del database, oppure è sufficiente il fatto che sono all'interno di un SELECT * FROM affinché php sappia dove puntare, ignorando gli altri contenuti?

    da qui la mia risposta

    ma magari non ho capito io la domanda
    Sono stato sintetico per non appesantire il messaggio, che già di suo mi sembrava "pesante".
    Per "all'interno di un SELECT * FROM" intendevo una situazione di questo tipo:
    Codice PHP:
    <?php
    // accesso al db
    $sql="SELECT * FROM tabella1";
    // codice con i link per le pagine php che modificano/cancellano/nascondono determinati contenuti agendo sull'id di tabella1
    ?>
    Di seguito ho accessi analoghi a tabella2, tabella3, ecc... dove ritrovo le necessità di invocare le pagine php di azione sui valori della tabella. Siccome gli id possono essere comuni, la mia domanda era sul come far capire al server dove voglio intervenire, ovvero come gli passo il nome della tabella in query string?

  7. #7
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Allora vediamo se ho capito bene, tu vuoi cambiare da backend la visibilità di alcuni valori lato frontend?

    In quel caso aggiungi un campo visibility alle tabelle, mettiamo con valori public e private, se i valori sono public li fai vedere anche nel frontend (aggiungi un where alle query), se sono private le fai vedere solo nel backend.
    Uhm... Più o meno è quello che vorrei per nascondere o mostrare, e questo già funziona con le funzioni alternative (tramite un if che interroga il valore di $visibile) cestina.php e ripristina.php. Il mio problema è come fare, cliccando sul link Nascondi, invocare cestina.php passandogli l'id e il nome della tabella relativo. Mi è sufficiente concatenare id del record e nome della tabella nella query string?

  8. #8
    qualcosa del tipo

    cestina.php?tabella=clienti&id=1224

    ???

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Lato php puoi passare una get o una post con tutti i parametri che vuoi, quindi non hai problemi.

    Per una get puoi fare: cestina.php?val1=value1&val2=value2&val3=value3

    Lato frontend io utilzzerei ajax e javascript per effettuare le chiamate ai file php.

    Non ho ben capito se hai problemi anche a trovare e passare gli id corretti, in quel caso io li passerei al codice html del frontend in attributi data da poter poi recuperare con js al momento di effettuare le chiamate get per nascondere/ripristinare le tabelle.

  10. #10
    @optime e @M4V1 esatto, ovviamente l'id è la variabile php $id, mentre il nome della tabella mi sa che devo passarlo letteralmente, tipo $tabella=tabella1, e poi sul file di destinazione usare qualcosa tipo "DELETE * FROM $tabella WHERE id=$id".

    Se così funziona e non si può ottimizzare oltre (tipo che il nome della tabella sia un parametro associabile a una variabile php), a me va bene, mi ci metto all'opera appena accedo al pc coi file in lavorazione.

    Grazie.

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.