Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    problema insert o while?

    Salve a tutti,

    il mio sarà probabilmente un problema da pivello, ma tale sono quindi... :-)

    Dunque, sto sperimentando in locale come si gestisce un database via php.

    Ho creato in mysql un database. Volevo:

    1) connettermi al database
    2) creare una tabella
    3) inserire un elemento nella tabella
    4) visualizzarne un campo con SELECT

    Ho fatto il seguente codice:

    <?php
    $connessione = mysql_connect('localhost', 'root', 'xxxxxx');
    if ($connessione)
    {
    echo 'tutto ok';
    }
    mysql_select_db('gino', '$connessione');
    if (mysql_select_db('gino'))
    {
    echo '
    vedo il database';
    }
    $query = 'CREATE TABLE appuntamenti (
    id = INT NOT NULL AUTO INCREMENT PRIMARY KEY,
    orario = TEXT,
    persona = TEXT,
    luogo = TEXT)';

    if ($query)
    {
    echo '
    ciao ho creato la tabella';
    }
    else
    {
    echo 'pirla';
    }
    $secquery = 'INSERT INTO appuntamenti SET
    orario = "mattino",
    persona = "luigina",
    luogo = "pescasseroli";';
    if ($secquery)
    {
    echo '
    aggiunto dato';
    }
    else
    {
    echo '
    pirla';
    }
    $query = mysql_query('SELECT persona FROM appuntamenti');
    while ($riga = mysql_fetch_array(query));
    echo "$riga[persona]";
    ?>

    Mentre per i primi 3 punti credo che vada tutto bene dato che mi restituisce gli outpout di conferma senza insultarmi :-) , quando arrivo al select non succede nulla. Non vedo cioè l'unico dato che dovrei aver inserito tramite $secquery = 'INSERT INTO appuntamenti SET ecc.

    Non solo: accedendo tramite shell a mysql e entrando nella tabella appuntamenti del database gino, SELECT * FROM appuntamenti non mi da risultati!

    Però secondo gli outpout il dato è stato inserito.

    Qualcuno sa dirmi dove sbaglio?

    Grazie a tutti in anticipo.

    Gotham

  2. #2
    valorizzi la variabile con l'insert, ma non esegui la query di inserimento

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Originariamente inviato da piero.mac
    valorizzi la variabile con l'insert, ma non esegui la query di inserimento
    Ciao,

    grazie per avermi risposto.
    Per eseguire la query...
    Ho provato ad aggiungere mysql_query($secquery);

    in questo modo:

    <?php
    $connessione = mysql_connect('localhost', 'root', 'gotham71');
    if ($connessione)
    {
    echo 'tutto ok';
    }
    mysql_select_db('gino', '$connessione');
    if (mysql_select_db('gino'))
    {
    echo '
    vedo il database';
    }
    $query = 'CREATE TABLE appuntamenti (
    id = INT NOT NULL AUTO INCREMENT PRIMARY KEY,
    orario = TEXT,
    persona = TEXT,
    luogo = TEXT)';

    if ($query)
    {
    echo '
    ciao ho creato la tabella';
    }
    else
    {
    echo 'pirla';
    }
    mysql_query($secquery);
    $secquery = 'INSERT INTO appuntamenti SET
    orario = "mattino",
    persona = "luigina",
    luogo = "pescasseroli";';
    if ($secquery)
    {
    echo '
    aggiunto dato';
    }
    else
    {
    echo '
    pirla';
    }
    $query = mysql_query('SELECT persona FROM appuntamenti');
    while ($riga = mysql_fetch_array(query));
    echo "$riga[persona]";
    ?>

    Ma tutto rimane uguale.
    Intendevi eseguire la query dell'insert vero? Ho capito male?

    Grazie.

    Ciao

    Gotham

  4. #4
    echo <brrrr> che pirla.....

    codice:
    mysql_query($secquery);
    $secquery = 'INSERT INTO appuntamenti SET
    orario = "mattino",
    persona = "luigina",
    luogo = "pescasseroli";';
    if ($secquery)
    {
    echo '
    aggiunto dato';
    }
    else
    {
    echo '
    pirla';
    }
    prima esegui la query e poi valorizzi la variabile.....

    codice:
    $secquery = "INSERT INTO appuntamenti SET
              orario = 'mattino',
              persona = 'luigina',
              luogo = 'pescasseroli' ";
    
    $res= mysql_query($secquery) or die( "Che pirla" . mysql_error());
    prova cosi' e spero che tu non crei la tabella tutte le volte.... metti:

    $query = "CREATE TABLE IF NOT EXISTS appuntamenti ( .......

    Altro suggerimento.... lo script SQL mettilo sempre tra doppi apici e con apici singole le stringhe.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Ciao a tutti,

    ho seguito i consigli dell'amico piero.mac (grazie) e ho riscritto il tutto:

    <?php
    $connessione = mysql_connect("localhost", "root", "gotham71");
    if ($connessione)
    {
    echo "tutto ok";
    }
    mysql_select_db("gino", "$connessione");
    if (mysql_select_db("gino"))
    {
    echo "
    vedo il database";
    }
    $query = "CREATE TABLE IF NOT EXISTS appuntamenti (
    id = INT NOT NULL AUTO INCREMENT PRIMARY KEY,
    orario = TEXT,
    persona = TEXT,
    luogo = TEXT)";

    if ($query)
    {
    echo "
    ciao ho creato la tabella";
    }
    else
    {
    echo "pirla";
    }

    $secquery = "INSERT INTO appuntamenti SET
    orario = 'mattino',
    persona = 'luigina',
    luogo = 'pescasseroli'";
    $res = mysql_query($secquery) or die( "Che pirla" . mysql_error());
    $query = mysql_query("SELECT persona FROM appuntamenti");
    while ($riga = mysql_fetch_array(query));
    echo '$riga[persona]';
    ?>

    Ancora non va, anzi adesso è peggio di prima: ecco l'output:

    tutto ok
    vedo il database
    ciao ho creato la tabellaChe pirlaTable 'gino.appuntamenti' doesn't exist

    Cioè, non solo mi da del pirla ma me lo da dopo aver confermato di aver creato una tabella della quale subito dopo nega l'esistenza!

    Che succede adesso? Dove accidenti ho di nuovo sbagliato?

    Grazie

    Gotham

  6. #6
    confermo quello che ti dice il tuo script a proposito del pirla.....

    le query vanno eseguite e possibilmente una volta sola.

    lo script fattelo da te, io ti dico solo alcune cose:

    qui esegui due volte la stessa query mysql_select_db:
    codice:
    mysql_select_db("gino", "$connessione");
    if (mysql_select_db("gino"))
    forse in un personale tuo modo compensativo per il CREATE TABLE ... NON esegui la query:
    codice:
    $query = "CREATE TABLE IF NOT EXISTS appuntamenti (
    id = INT NOT NULL AUTO INCREMENT PRIMARY KEY,
    orario = TEXT,
    persona = TEXT,
    luogo = TEXT)";
    
    if ($query)
    ma che vorra' dire if($query) certo che e' true, la hai appena valorizzata (ma non eseguita).

    e che deve fare un insert ed un select su una tabella non creata????? dirti quello che ti dice... of course...



    ps.: lascia perdere i pvt tecnici. Per quelli devi inviare a guidozz.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.