In acest tutorial puteti invata cum sa verificati cu PHP daca unul sau mai multe tabele exista intr-o baza de date MySQL.
Comanda SQL ce returneaza o lista cu toate tabelele dintr-o baza de date este aceasta:

SHOW TABLES
SAU:
SHOW TABLES IN `nume_bazadate`
- Rezultatul returnat de aceasta interogare e retinut intr-un alias cu numele Tables_in_numebazadate ; numebazadate este numele bazei de date in care se face verificarea.

De exemplu, daca avem o baza de date MySQL denumita "tests", cu aceste tabele: users, temp, si online; se poate folosi urmatorul cod in PHP ca sa obtinem o lista cu numele tabelelor:
<?php
// conectare la baza de date tests
$conn = new mysqli('localhost', 'root', 'pass', 'tests');

// verificare conexiune
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}

// SQL query
$sql = "SHOW TABLES IN `tests`";

// executa interogarea si retine rezultatul
$result = $conn->query($sql);

// daca $result nu e False si contine cel putin un rand
if($result !== false) {
  // daca e cel putin un tabel in result
  if($result->num_rows > 0) {
    // parcurge datele si returneaza numele fiecarui tabel
    while($row = $result->fetch_assoc()) {
      echo '<br />'. $row['Tables_in_tests'];
    }
  }
  else echo 'Nu exista tabele in "tests"';
}
else echo 'Baza de date "tests" nu poate fi verificata, eroare - '. $conn->error;

$conn->close();
?>
Acest cod va returna urmatorul rezultat:
users
temp
online

Daca vreti sa verificati daca un anumit tabel exista in baza de date MySQL, se poate folosi urmatoarea interogare SQL:
SHOW TABLES IN `numebazadate` WHERE `Tables_in_numebazadate` = 'nume_tabel'

- De exemplu, ca sa testati daca tabelul "users" exista in baza de date "tests", se poate folosi urmatorul cod in PHP:
<?php
// conectare la baza de date tests
$conn = new mysqli('localhost', 'root', 'pass', 'tests');

// verificare conexiune
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}

// SQL query
$sql = "SHOW TABLES IN `tests` WHERE `Tables_in_tests` = 'users'"; 

// executa interogarea si retine rezultatul
$result = $conn->query($sql);

// daca $result nu e False si contine cel putin un rand
if($result !== false) {
  // daca $result contine cel putin un rand tabelul exista, altfel, nu exista
  if ($result->num_rows > 0) echo 'Tabelul "users" exista';
  else echo 'Tabelul "users" Nu exista';
}
else echo 'Baza de date "tests" nu poate fi verificata, eroare'. $conn->error;

$conn->close();
?>

Functie pentru testare daca tabelele exista in MySQL

Urmatoarea functie poate fi utilizata in PHP pt. a vedea daca un anumit tabel, sau mai multe, exista in MySQL.
// verifica daca tabelele din $tables exista in $db
function tableExist($conn, $db, $tables) {
  $eror = false;

  // daca $ables e sir, il transformna in Array
  if(is_string($tables)) $tables = array($tables);

  $result=$conn->query("SHOW TABLES IN `$db`");
  if($result !== false) {
    // daca e cel putin un tabel in $result
    if($result->num_rows > 0) {
      // parcurge $result si retine datele intr-un array
      while($row = $result->fetch_assoc()) {
        $tables_db[] = $row['Tables_in_'.$db];
      }

      // verifica daca fiecare tabel din $tables este in $tables_db, altfel seteaza eroare
      for($i=0; $i<count($tables); $i++) {
        if(!in_array($tables[$i], $tables_db)) $eror[] = 'Tabelul '. $tables[$i]. ' Nu exista in "'. $db. '"';
      }
    }
    else $eror[] = 'Nici un tabel in "'. $db. '"';
  }
  else $eror[] = 'Nu se poate verifica "'. $db. '"';

  // daca $eror nu e false, afiseaza erorile si returneaza false, altfel, returneaza true
  if($eror !== false) {
    echo implode('<br/>', $eror);
    return false;
  }
  else return true;
}
Functia tableExist() primeste trei argumente:
- $conn - obiect ce contine conexiunea la MySQL.
- $db - reprezinta numele bazei de date.
- $tables - poate fi un sir cu numele unui tabel, sau un Array cu mai multe nume de tabele.

• Exemplu, verificare daca tabelele: "comments", "temp", si "users" exista in baza de date "tests".
<?php
// Cursuri gratuite - marplo.net

// verifica daca tabelele din $tables exista in $db
function tableExist($conn, $db, $tables) {
  $eror = false;

  // daca $ables e sir, il transformna in Array
  if(is_string($tables)) $tables = array($tables);

  $result=$conn->query("SHOW TABLES IN `$db`");
  if($result !== false) {
    // daca e cel putin un tabel in $result
    if($result->num_rows > 0) {
      // parcurge $result si retine datele intr-un array
      while($row = $result->fetch_assoc()) {
        $tables_db[] = $row['Tables_in_'.$db];
      }

      // verifica daca fiecare tabel din $tables este in $tables_db, altfel seteaza eroare
      for($i=0; $i<count($tables); $i++) {
        if(!in_array($tables[$i], $tables_db)) $eror[] = 'Table '. $tables[$i]. ' Not exist in "'. $db. '"';
      }
    }
    else $eror[] = 'Nici un tabel in "'. $db. '"';
  }
  else $eror[] = 'Nu se poate verifica "'. $db. '"';

  // daca $eror nu e false, afiseaza erorile si returneaza false, altfel, returneaza true
  if($eror !== false) {
    echo implode('<br/>', $eror);
    return false;
  }
  else return true;
}

$db = 'tests';
// conectare la baza de date tests
$conn = new mysqli('localhost', 'root', 'pass', $db);

// verificare conexiune
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}

// array cu numele tabelelor
$tables = array('comments', 'temp', 'users');

// apeleaza functia tableExist()
if(tableExist($conn, $db, $tables)) echo 'Toate tabelele: <i>'. implode(', ', $tables). '</i> exista';
?>

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tip de <input> creaza o paleta de culori pentru selectare culoare?
type="text" type="color" type="date"
<input type="color" name="get_color" />
Care metoda CSS roteste elementul HTML la un anumit numar de grade?
scale() translate() rotate()
#some_id:hover {
  transform: rotate(60deg);
  -ms-transform: rotate(60deg);    /* IE 9 */
  -moz-transform: rotate(60deg);   /* Firefox */
}
Click pe functia care returneaza numarul cel mai mare.
pow() min() max()
var maxn = Math.max(8, 4, 88, 56);
alert(maxn);      // 88
Ce functie previne ca un fisier sa fie inclus mai mult de o data intr-o pagina?
include() include_once() require()
include_once("un_fisier.php");
Care este traducerea corecta pentru: "Ahead of time"?
Peste timp La timp Inainte de vreme
Most people arrived ahead of time.
- Cei mai multi oameni au sosit inainte de vreme (prea devreme).
Indicati traducerea corecta a cuvantului "buenĂ­simo"
mai bun mai putin bun extrem de bun
Este fruto es buenĂ­simo.
- Acest fruct este extrem /nemaipomenit de bun.
Verificare daca tabel exista in baza de date

Last accessed pages

  1. Curs PHP MySQL, Tutoriale si Scripturi PHP (14202)
  2. Viitor simplu si continuu - Future Tense Simple and Continuous (22636)
  3. Curs si Tutoriale JavaScript (15184)
  4. Conditional IF - Exercitii si teste engleza incepatori (7829)
  5. Jokes - Glume, Bancuri, Humor (4115)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (2215)
  2. Curs HTML gratuit Tutoriale HTML5 (1594)
  3. Curs si Tutoriale JavaScript (1571)
  4. Curs PHP MySQL, Tutoriale si Scripturi PHP (1525)
  5. Curs CSS Online Tutoriale CSS3 (1401)