Visualizzazione risultati 1 fino 8 di 8

Discussione: Campo Selecet con valori di un array

  1. #1
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito Campo Selecet con valori di un array

    Salve a Tutti,
    Volevo un aiuto in un codice...

    avrei bisogno di creare una query la quale mi estrae il nome di tutte le tabelle presenti in un database, ed i risultati deve metterli come valori in un campo select (in modo che ogni tabella corrisponda ad un risultato).

    mi potreste fare un esempio di codice per favore?

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    la query è:
    Codice:
    show tables
    Poi, quando estrai i dati, semplicemente una cosa del tipo:
    Codice PHP:
    echo '<select>';
    while(
    $row = $r->fetch_assoc())
    {
    echo
    '<option value="'.$row['Tables_in_my_fabiovergotti '].'">'.$row['Tables_in_my_fabiovergotti '].'</option>;
    }
    echo '
    <select>';
    O comunque fai un var_dump() di $row per vedere se si chiama veramente "Tables_in_my_fabiovergotti".

    Oppure puoi usare
    Codice:
    SELECT table_name FROM information_schema.tables
    (fonte)

    Ciao!
    Ultima modifica di alemoppo : 04-01-2015 alle ore 01.02.48

  3. #3
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Ho provato a fare come dici tu, il capo select compare ma vuoto, nonostante tabelle nel db ce ne siano :C
    Codice PHP:
    <?
    session_start
    ();
    $link = mysql_connect('localhost', '****', '****')
    or die(
    'Could not connect: ' . mysql_error());
    mysql_select_db('my_fabiovergotti') or die('Could not select database');

    $quey="SELECT * FROM INFORMATION_SCHEMA.TABLES";
    $risultato = mysql_query($quey);
    $numero_risultati = mysql_num_rows($risultato);

    ?>


    <form name="form" action="interrogazione.php" method="post">
    <table width="30%" border="0" align="center">
    <tbody>
    <tr align="center" valign="middle">
    <td colspan="2"><h1><font color="#FF0004">INSERISCI IP SERVER DA CONTROLLARE</font></h1></td>
    </tr>
    <tr>
    <td align="right" valign="middle">IP:</td>
    <td width="50%" align="left" valign="middle">37.187.44.64:<?php

    echo '<select>';
    while(
    $row = $r->fetch_assoc())
    {
    echo
    '<option value="'.$row['Tables_in_my_fabiovergotti'].'">'.$row['Tables_in_my_fabiovergotti'].'</option>';
    }
    echo
    '<select>';


    ?>
    dove ho sbagliato?
    Ultima modifica di fabiovergotti : 04-01-2015 alle ore 14.09.47

  4. #4
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Sbagli che non devi copiare il codice pari pari, ma devi adattarlo al tuo: se usi $result poi non puoi usare $r. Inoltre se usi lo stile procedurale non puoi usare quella che ti ho scritto io, ad oggetti (che tra l'altro è mysqli, e tu hai usato le funzioni mysql).

    Guarda qui gli esempi.

    Ciao!

  5. #5
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Sbagli che non devi copiare il codice pari pari, ma devi adattarlo al tuo: se usi $result poi non puoi usare $r. Inoltre se usi lo stile procedurale non puoi usare quella che ti ho scritto io, ad oggetti (che tra l'altro è mysqli, e tu hai usato le funzioni mysql).

    Guarda qui gli esempi.

    Ciao!
    ho sostituito i mysql con mysqli, $r con $risultato$numero_risultati, ma adesso mi da impossibile selezionare il db (ho provato a riportare a mysql e funziona di nuovo, ma nonostate le modifiche nel campo select i valori non compaiono)

    Codice PHP:
    <?
    session_start
    ();
    $link = mysql_connect('localhost', '***', '***')
    or die(
    'Could not connect: ' . mysql_error());
    mysql_select_db('my_fabiovergotti') or die('Could not select database');

    $quey="SELECT * FROM INFORMATION_SCHEMA.TABLES";
    $risultato = mysql_query($quey);
    $numero_risultati = mysql_num_rows($risultato);

    ?>


    <form name="form" action="interrogazione.php" method="post">
    <table width="30%" border="0" align="center">
    <tbody>
    <tr align="center" valign="middle">
    <td colspan="2"><h1><font color="#FF0004">INSERISCI IP SERVER DA CONTROLLARE</font></h1></td>
    </tr>
    <tr>
    <td align="right" valign="middle">IP:</td>
    <td width="50%" align="left" valign="middle">37.187.44.64:<?php

    echo '<select>';
    while(
    $numero_risultati = $risultato->fetch_assoc())
    {
    echo
    '<option value="'.$numero_risultati['Tables_in_my_fabiovergotti'].'">'.$numero_risultati['Tables_in_my_fabiovergotti'].'</option>';
    }
    echo
    '<select>';


    ?>

  6. #6
    Guest

    Predefinito

    La query corretta è

    Codice PHP:
    $quey="SHOW TABLES";
    invece che

    Codice PHP:
    $quey="SELECT * FROM INFORMATION_SCHEMA.TABLES";

  7. #7
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da vplaza Visualizza messaggio
    La query corretta è

    Codice PHP:
    $quey="SHOW TABLES";
    invece che


    [PHP]
    Codice PHP:
    $quey="SELECT * FROM INFORMATION_SCHEMA.TABLES";

    facendo come dici tu effettivamente mi trova il numero dei risultati, ma mi sono accorto di un secondo problema, l'array non funziona correttamente, cioè il pulsante sparisce, come se non ci fossero tag non chiusi, in più comunque i risultati non campaiono nel campo select

    Codice PHP:
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Documento senza titolo</title>
    </head>

    <body>
    <?
    session_start
    ();
    $link = mysql_connect('localhost', '***', '***')
    or die(
    'Could not connect: ' . mysql_error());
    mysql_select_db('***') or die('Could not select database');

    $quey="SHOW TABLES";
    $risultato = mysql_query($quey);
    $numero_risultati = mysql_num_rows($risultato);
    echo
    $numero_risultati;
    ?>


    <form name="form" action="interrogazione.php" method="post">
    <table width="30%" border="0" align="center">
    <tbody>
    <tr align="center" valign="middle">
    <td colspan="2"><h1><font color="#FF0004">INSERISCI IP SERVER DA CONTROLLARE</font></h1></td>
    </tr>
    <tr>
    <td align="right" valign="middle">IP:</td>
    <td width="50%" align="left" valign="middle">37.187.44.64:<?php

    echo '<select name="porta" id="porta">';
    echo
    '<option value=" " selected="selected"> </option>';
    echo
    '<option value="9999">9999</option>';


    while(
    $numero_risultati = $risultato->fetch_assoc())
    {
    echo
    '<option value="'.$numero_risultati['Tables_in_my_fabiovergotti'].'">'.$numero_risultati['Tables_in_my_fabiovergotti'].'</option>';
    }
    echo
    '</select>';


    ?>

    </td>



    </tr>
    <tr>
    <td colspan="2">&nbsp;</td>
    </tr>
    <tr>
    <td colspan="2" align="center" valign="middle"><input type="submit" name="submit" value="ANALIZZA"></td>
    </tr>
    </tbody>
    </table>
    </form>

    </body>
    </html>
    Ultima modifica di fabiovergotti : 06-01-2015 alle ore 01.36.17

  8. #8
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Come ti ho detto nel messaggio precedente, non ha nessun senso usar i metodi ad oggetti di mysqli quando usi addirittura le funzioni mysql_*!

    In pratica:

    Codice PHP:
    while($row = mysql_fetch_assoc($risultato))
    {
    echo
    '<option value="'.$row['Tables_in_my_fabiovergotti'].'">'.$row['Tables_in_my_fabiovergotti'].'</option>';
    }
    Dovresti comunque usare modi più moderni, del tipo:
    • Abolire le funzioni mysql_* che sono obsolete (usa mysqli o pdo)
    • Non usare il tag <font>
    • Non usare le tabelle per impaginare gli oggetti nella pagina html
    • Non usare proprietà di stile in html (valign, colspan, width, align, ...)
    • Evitare assolutamente cose del tipo
      Codice HTML:
      <td colspan="2">&nbsp;</td>

    Ciao!
    Ultima modifica di alemoppo : 06-01-2015 alle ore 02.54.21

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •