Problema con una query.

Gioele Giunta

Nuovo Utente
7 Dic 2015
6
0
0
Vi garantisco che da come è spiegato di seguito sembrerà una cosa complicatissima, ma in realtà è solo una query sbagliata, quindi invito a leggere tutto il post, perché il problema di per sé è banale ma per spiegarvelo bene l'ho rilegato con immagini e gif e parti di codice.

Il fatto è molto banale: devo cambiare un valore all'interno di un database con un valore scritto su un campo di testo. Posso garantire che il $username e $mottol che vedrete funzionano alla perfezione: mottol serve per riconoscere quello che c'è scritto sul campo di scrittura, e $username sarebbe il nome dell'utente che è loggato, siccome il database è strutturato cosi:

Database > users > nomeutente > motto, nome, mail, password, amici etc... per modificare il campo motto ovviamente richiede il nomeutente e la tabella cioè "users" .

Gif breve sulla tematica dell'errore: https://gyazo.com/5c71090fd788bbfaf4e140a4799e621d
Immagine specifica sull'errore: https://gyazo.com/2939bd1ae82ea8a8f47bf2a1c381c061

Parte del codice interessata:
Codice:
<?php 
if(isset($_POST['salva'])){ 
        if(strlen($_POST['mottoli']) > 32){ 
            $result = "Scusa, ma il motto che hai scelto e troppo lungo!"; 
            $error = "1"; 
            $mottol = $M['mottoli']; 
            } else { 
             $motto2 = $userROW['motto'];
            $mottol = htmlspecialchars(addslashes($_POST['mottoli'])); 
                $percorsouser = mysql_query("SELECT * FROM users WHERE username = '".$myusername."'");
                mysql_query("UPDATE users SET  motto = '".$mottol."' WHERE username = '".$username."'") or die ("Errore MODIFICA, contattare l'amministratore ".mysql_error() .$mottol. "'  Nome utente: " .$username."' "); 
                $result = "Modifiche salvate con successo."; 
                 
            } 
             
             
        } else { 
} 
?> 

<input type="text" id="mottoli" onClick="visualizza('formmotto', 'mottoli')" value="<?php echo $myrow['motto']; ?>"/> 
<div style="display:none" id="formmotto"> 
Cambia Motto: 
<form method="post"> 
<input type="text" name="mottoli" size="32" maxlength="32" value="<?php echo $myrow['motto']; ?>" id="mottoutente" />

Cioè la query è sbagliata penso, il fatto è che non so dove è sbagliata:

Immagine database1: https://gyazo.com/40e531d0c5e76ceb6239730d91d26516
Immagine database2 (quando si clicca sulle specifiche di un utente): https://gyazo.com/c7de520c683418d7d26f919db7ffed47
 
nel messaggio di errore leggo "NO DATABASE SELECTED" e poi leggo "wow" che dovrebbe essere il motto
se ciò che hai riportato è vero, la query può essere giusta, ma dopo la connessione, non hai selezionato il db da usare

la query che precede, non segnala nulla perché non c'è il controllo d'errore alla sua esecuzione
 
Si infatti il $percorsouser è inutile, è un test che mi sono dimenticato di eliminare. Qualche soluzione?
 
si inserisci la scelta del db dopo la connessione
Grazie, sono molto inesperto in campo di php e mysql e quindi stavo seguendo qualche tutorial, mi potresti dire come dichiarare il database?

In teoria io ho fatto un documento che serve proprio a quello che hai detto:

PHP:
<?php/*                     *\|    CMS - Dr.Joek    |\*                     */
//CONFIGURATION
//CONNECTIONS TO THE DATABASE


 //HOSTNAME    define
("C_HOST", "localhost");    
 //DATABASE NOME DELL'UTENTE    
define("C_USER", "root");         
//DATABASE PASSWORD DELL'UTENTE     
define("C_PASSWORD", "hoteljk");         
//IL NOME DEL DATABASE DA SELEZIONARE    
define("C_DATABASE", "prova2");

(Non ho censurato i dati perché è su hamachi per il test al momento)

E' buono? Questo documento ha già funzionato con tutte le pagine di questo cms ogni query è fatta come quella perché il database è già dichiarato.
 
non conosco mySQL, ma ti posto la connessione presa da uno script funzionante, verifica con il tuo,
PHP:
   $link = mysql_connect(C_HOST, C_USER, C_PASSWORD);
    if (!$link)
      die('connessione a Mysql non riuscita!: ' . mysql_error());
    else 
    {
      $db_selected =mysql_select_db(C_DATABASE, $link);	//connessione a database
      if (!$db_selected)
        die('connessione al database non riuscita!: ' . mysql_error());
      else
eventualmente il db "prova2" non esiste
 

Discussioni simili