Creare pagine web che interrogano il database mysql

di il
7 risposte

Creare pagine web che interrogano il database mysql

Buongiorno a tutti mi chiamo Vincenzo(premetto che devo ancora prendere il caffè quindi potrei scrivere qualche strafalcione..),
Ero indeciso se scrivere in php o qui.. ma poi cercando ho visto che altri hanno fatto domande sul php..
ho realizzato prima un db in access.. poi mi sono accorto che non potevo fare quello che volevo farci così ho installato un Ubuntu server e installato mySQL, apache, php..
Con molta difficoltà sono riuscito ad importare il db passando da csv, e a ricreare le relazioni..

Adesso volevo creare la una pagina web che con un form mi leggesse il db e mi desse qualche risultato, ma quando vado a premere il pulsante cerca il risultato è sempre "senza HOST". (è solo una pagina di esempio che ho trovato in rete anche xk di php ne so proprio poco)

Questo è una parte del codice del form:
<form action="interroga.php" method="POST">
  Inserire IP:
     <input type="text" name="IP">
     <input type="submit" name="submit" value="cerca">
</form>
e questo è il file interroga.php:
<?php
$connessione = mysql_connect("localhost","root","Kodak123");
if ($connessione ==0)
        die ("Connessione non riuscita");
echo "connessione al server del database!!";
mysql_select_db("Gestione_IP");
echo "accesso al database Gestione_IP riuscita";
$IP =$_POST['IP'];
$query = "SELECT * FROM Lista_IP WHERE Indirizzo_IP = '$IP'";
$risultato = mysql_query($query) or die ("Query fallita..!");
$valore_rislutato=mysql_fetch_array($risultato);

if(strlen($valore_risultato['HOST']) == 0)
  {
  echo "<br><h2>Indirizzo IP senza HOST </h2>";
  die;
  }
else
  {
  echo "<br><h2> Trovato indirisso IP ";
  echo $valore_risultato['Indirizzo_IP'];
  echo " :  ";
  echo $valore_risultato['HOST'];
  echo "</h2>";
  }
?>
Poi, postmettendo che di php ne so poco, quale guida mi consigliate fatta in italiano

Altra domanda: vorrei aggiungere un pulsante che mi apra una pagina web, dove mi visualizza un range di indirizzi IP (diciamo solo quelli con IP 192.168.0.*), è meglio creare una query sul db o creare una query in php?
Come faccio a chiedere che i dati siano visualizzati in ordine crescente seconda una colonna?
Come faccio a vedere la tabella con le relazioni? devo fare una query sul db e leggere quella?
Grazie mille

7 Risposte

  • Re: Creare pagine web che interrogano il database mysql

    Può essere il typo?
    $valore_rislutato=mysql_fetch_array($risultato);
    __________^^^
    
    if(strlen($valore_risultato['HOST']) == 0)
    ____________________^^^
    Come nota generale: le funzioni mysql_* sono deprecate e verranno rimosse da php, meglio usare MySQLi, in forma di funzione o di classe.
    http://php.net/manual/en/mysqli.construct.ph
    http://php.net/manual/en/function.mysqli-connect.ph
  • Re: Creare pagine web che interrogano il database mysql

    emanuele45 ha scritto:


    Può essere il typo?
    $valore_rislutato=mysql_fetch_array($risultato);
    __________^^^
    
    if(strlen($valore_risultato['HOST']) == 0)
    ____________________^^^
    Corretto ma pagina sempre bianca..

    emanuele45 ha scritto:


    Come nota generale: le funzioni mysql_* sono deprecate e verranno rimosse da php, meglio usare MySQLi, in forma di funzione o di classe.
    http://php.net/manual/en/mysqli.construct.ph
    http://php.net/manual/en/function.mysqli-connect.ph
    Ho preso dei libri, in particolare "PHP e MySQL" di Valade, ma evidentemente è troppo vecchio.. qualche guida online aggiornata in italiano (a parte il sito che mi hai indicato e di cui ti ringrazio.. farò delle prove x vedere se ho capito..)
  • Re: Creare pagine web che interrogano il database mysql

    c3n2o ha scritto:


    Corretto ma pagina sempre bianca..
    Pagina bianca e "Indirizzo IP senza HOST" son due cose potenzialmente diverse: l'ultima indica che c'è qualche problema nella logica del codice, o nella query, o nel database, mentre la prima (pagina bianca) potrbbe significare un errore di sintassi (se non hai configurato php in modo da mostrarti gli errori).

    Immagino tu non abbia provato un:
    var_dump($valore_risultato);
    per vedere cosa c'è nella variabile, giusto?

    c3n2o ha scritto:


    Ho preso dei libri, in particolare "PHP e MySQL" di Valade, ma evidentemente è troppo vecchio.. qualche guida online aggiornata in italiano (a parte il sito che mi hai indicato e di cui ti ringrazio.. farò delle prove x vedere se ho capito..)
    Negli ultimi anni php ha mischiato un po' le carte in tavola.
    Purtroppo non saprei consigliarti, son sempre andato di documentazione o di ricerche...
    /me non è certo un programmatore.
  • Re: Creare pagine web che interrogano il database mysql

    Ti ringrazio per la risposta, ma..
    Potrebbe essere che visto che in index.php apro la connessione e non la chiudo (xk non so come si fa) allora dia qualche errore?

    Inoltre sto provando ad usare mysqli, quindi ho modificato il codice così:
    $connessione = @new mysqli($host,$user,$pass,$db);
    if (mysqli_connect_errno()){
        echo "connessione fallita: ".die(mysqli_connect_error());
    }
    $IP= $_POST['IP'];
    echo $IP; //per vedere se arriva il valore
    
    $query = "SELECT * FROM Lista_IP WHERE Indirizzo_IP = '$IP'";
    $risultato = $mysqli->query($query) or die ("Query fallita..!");
    $valore_risultato=$risultato->fetch_array(MYSQLI_BOTH);
    No da errore..
    Ma adesso non so proprio come fare uscire una tabella da sta cosa che ho scritto.
  • Re: Creare pagine web che interrogano il database mysql

    $connessione = @new mysqli($host,$user,$pass,$db);
    [...]
    $risultato = $mysqli->query($query) or die ("Query fallita..!");
    Assegni l'istanza di mysqli a $connessione e poi la query la esegui usando un'altra variabile ($mysqli).
  • Re: Creare pagine web che interrogano il database mysql

    Corretto!!

    ma adesso che devo fare un ciclo while per stampare la tabella?
    Sto uscendo matto
  • Re: Creare pagine web che interrogano il database mysql

    La risposta alla domanda è un: dipende.
    Se sai che ottieni un risultato e quello è, puoi semplicemente creare l'html basandoti su quello che sai degli indici dell'array (e.g. echo '<div>' . $risultato['HOTS'] . '</div>';). Se invece puoi ottenere più di un risultato dalla query (e.g. stesso IP due record diversi) allora dovrai fare un loop.
Devi accedere o registrarti per scrivere nel forum
7 risposte