[PHP] Filtrare nomi tabelle DB

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao a tutti,avrei bisogno del vostro aiuto .
Su una pagina PHP tramite il comando
SHOW TABLE STATUS FROM nome_database
Ottengo tutti i nomi delle tabelle del mio database.
Io dovrei filtrare solo alcuni di questi , è per essere più preciso,solo i nomi delle tabelle che hanno un determinato campo.

Es .
Tabella1->id,nome,cognome
Tabella2->campo1,campo2
Tabella3->campo3,campo4
Tabella4->id,ecc

Io dovrei ottenere solo i nomi delle tabelle che contengono il campo id,quindi dovrei ottenere Tabella1 e Tabella4

È possibile farlo?
Grazie
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
28
Ciao.

Questo dovrebbe fare al caso tuo.

index.php
PHP:
<?php

function cerca_campo_db(PDO $conn, $db, $colonna) {
    $query = "SELECT *
        FROM information_schema.COLUMNS
        WHERE TABLE_SCHEMA = ?
        AND COLUMN_NAME = ?";

    $stm = $conn->prepare($query);
    $stm->execute(array($db,$colonna));

    $tabelle = array();
    while ($row = $stm->fetch(PDO::FETCH_ASSOC)) {
        $tabelle[] = $row['TABLE_NAME'];
    }

    echo count($tabelle)." tabelle del db ".$db." contengono il campo ".$colonna.":<br><br>";
    foreach ($tabelle as $key => $value) {
        echo ($key+1).". ".$value."<br>";
    }
}

include_once("db.php");

$db = "shop"; // nome del db ---> MODIFICARE
$colonna = "meta_key"; // colonna ricercata ---> MODIFICARE

cerca_campo_db($conn,$db,$colonna);

 ?>


È necessario anche un file di accesso al db.

db.php
PHP:
<?php

$hostname='localhost';
$username='root';
$password='';
$db="test";

try {
    $conn = new PDO("mysql:host=$hostname;dbname=".$db.";charset=utf8",$username,$password);

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo $e->getMessage();
}

?>
Qui ovviamente dovrai modificare i parametri di connessione al db, nel caso siano diversi.
 
  • Like
Reactions: solari77

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao,ho provato ma non va.
Sul file index.php ho modificato il nome del db ed il nome della colonna.
Sul file db.php ho modificato i parametri di connessione però ottengo sempre il messaggio
0 tabelle del db mio_db contengono il campo mia_colonna
 

marino51

Utente Attivo
28 Feb 2013
3.039
192
63
Lombardia
non conosco mySql, ma "guardando in giro" ho trovato questa select, provala, semplifica molto
PHP:
SELECT DISTINCT TABLE_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME IN ('columnA','ColumnB')
        AND TABLE_SCHEMA='YourDatabase'

volendo aggiungere,

ORDER BY TABLE_NAME
 
  • Like
Reactions: solari77

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao @marino51 ,questa select funziona. O meglio da PhpMyAdmin ottengo la tabella con i nomi esattamente come voglio io.
Ora però ho un'altro piccolo problema.
Io prima avevo
Codice:
$nomtab=" come mi hai indicato tu......";
 $table = mysqli_query($conn,$nomtab);
    while ($rs = mysqli_fetch_assoc($table))
    {.......
 echo $rs['TABLE_NAME'];
.........}

Però adesso la fetch_row non mi da nulla. Dove sbaglio ?
 
Ultima modifica:

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ho notato una cosa strana, in locale funziona tutto regolarmente, in remoto invece che non stampa i nomi delle tabelle
 

solari77

Utente Attivo
6 Ott 2016
119
1
18
Scusate,ho commesso un gravissimo errore.Sulla query non avevo cambiato il nome del database.o_Oo_O
Funziona tutto perfettamente
Grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
N [PHP] filtrare input form di tipo array PHP 0
giancadeejay php WHERE per filtrare PHP 4
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2
L Google chart php mysql PHP 2
R Download file multipli da directory php PHP 0

Discussioni simili