Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 35

Discussione: La query non funge come dovrebbe

  1. #1
    Guest

    Arrow La query non funge come dovrebbe

    Salve ragazzi. oramai sono quasi due giorni che perdo la testa su questa, banale pagina, scusate la mia ignoranza...allora io ho questo errore

    Table 'my_zomer.richieste' doesn't exist
    in poche parole dice che la tabella my_zomer.richieste non esiste, ma io nello script non la chiamo, io richiamo la tabella richiesteidutente (es: richieste7)...come mai si confonde dove ho sbagliato?

    script.php

    Codice PHP:
    <?php
    //oggetto start
    ob_start();
    //sessione start
    session_start();
    /*recupero le variabili inviate tramite get e definisce la data corrente */
    $nome = $_GET[$nome];
    $data = date("d/m/Y");
    $tipo = amicizia;
    //connesione al database
    include("config.ini.php");
    //query
    $id = "SELECT id FROM utenti WHERE nome = '".$nome."'";
    $res = mysql_query($id,$dbh) /*eseguo la query e controllo se va a buon fine ^^*/
    or die("<h1>".mysql_error()."</h1>");
    $array = mysql_fetch_array($res);

    //invia la richiesta
    $richieste = "INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$session[id]."', '".$tipo."', '".$data."')";
    $res2 = mysql_query($richieste,$dbh) /*eseguo la query e controllo se va a buon fine ^^*/
    or die("<h1>".mysql_error()."</h1>");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title>Richiesta effetuata con sucesso</title>
    </head>
    <body>
    <img alt="logo" src="loghi/logo.png"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <div style="text-align: center;">Richiesta inviata con
    sucesso&nbsp;<a href="home.php">torna alla home</a></div>
    </body>
    </html>

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,234

    Predefinito

    Prova così:
    Codice PHP:
    <?php
    //oggetto start
    ob_start();
    //sessione start
    session_start();
    /*recupero le variabili inviate tramite get e definisce la data corrente */
    $nome = $_GET[$nome];
    $data = date("d/m/Y");
    $tipo = amicizia;
    //connesione al database
    include("config.ini.php");
    //query
    $id = mysql_query("SELECT id FROM utenti WHERE nome = '".$nome."'")or die("<h1>".mysql_error()."</h1>");
    $array = mysql_fetch_array($id);

    mysql_query("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$session[id]."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title>Richiesta effetuata con sucesso</title>
    </head>
    <body>
    <img alt="logo" src="loghi/logo.png"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <div style="text-align: center;">Richiesta inviata con
    sucesso&nbsp;<a href="home.php">torna alla home</a></div>
    </body>
    </html>
    P.S. Per curiosità perchè usi sempre ob_start(); all'inizio di ogni tuo script?
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    niente da fare ancora e sempre lo stesso errore...
    Table 'my_zomer.richieste' doesn't exist
    PS Funzione di controllo dell'output

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,234

    Predefinito

    Dimmi cosa ti stampa in questo modo:
    Codice PHP:
    $sql = "INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$session[id]."', '".$tipo."', '".$data."')";
    exit(
    $sql);
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    $nome = $_GET[$nome];
    non significa granchè: $nome non è definito quindi non può essere presente dentro $_GET

    $tipo = amicizia;
    è sbagliato, poichè non esiste nessuna costante chiamata 'amicizia'.


    Ciao!

  6. #6
    Guest

    Question

    non ho capito un granchè.... comunque...

    Citazione Originalmente inviato da debug Visualizza messaggio
    $nome = $_GET[$nome];
    non significa granchè: $nome non è definito quindi non può essere presente dentro $_GET
    ma io valorizzo $_GET e lo trasformo in $nome (ne faccio una variabile)

    Citazione Originalmente inviato da debug Visualizza messaggio
    $tipo = amicizia;
    è sbagliato, poichè non esiste nessuna costante chiamata 'amicizia'.
    è una variabile anche questa...


    Citazione Originalmente inviato da debug Visualizza messaggio
    Ciao!
    Ciao!

    GRAZIE A TUTTI DELLE RISPOSTE!

  7. #7
    Guest

    Predefinito

    Beh sembra che ci sia un problema con le variabili come dice debug.
    Facci caso...

    richieste".$array['id']."

    Vuol dire che $array non ha output...

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da zomer Visualizza messaggio
    ma io valorizzo $_GET e lo trasformo in $nome (ne faccio una variabile)
    No, è come se facessi:
    $nome=$nome
    cioè, valorizzi una variabile con se stessa... ma se non esiste, quale valore conterrà? (domanda retorica)

    Citazione Originalmente inviato da zomer Visualizza messaggio
    è una variabile anche questa...
    Le variabili devono iniziare con il dollaro: $
    Senza il dollaro sono identificate come costanti.


    Ciao!

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da debug Visualizza messaggio
    No, è come se facessi:
    $nome=$nome
    cioè, valorizzi una variabile con se stessa... ma se non esiste, quale valore conterrà? (domanda retorica)
    allora forse dovrei postare anche le altre pagina. Allora io ho questa pagina che permette di cercare degli utenti nel databse

    Codice PHP:
    ..............

    echo
    "La parola <b>".$cerca."</b> è contenuta nei seguenti nomi : <br>";
    while(
    $row = mysql_fetch_array($select))
    {
    echo
    " ".$row['nome']." \t\t<a href=\"richiesta_amicizia.php/?nome=".$row['nome']."\">Aggiungi questa persona come amico</a><br>";
    }

    ...........
    una volta cercati faccio un while e faccio apparire tutti i nomi degli utenti con affianco un link quindi avrei qualcosa del genere

    NOME UTENTE LINK
    NOME UTENTE 2 LINK

    succesivamente con $_GET invia alla seguente pagina il nick dell'utente selezionato

    Codice PHP:
    <?php
    //oggetto start
    ob_start();
    //sessione start
    session_start();
    /*recupero le variabili inviate tramite get e definisce la data corrente */
    $nome = $_GET[$nome];
    $data = date("d/m/Y");
    $tipo = "amicizia";
    //connesione al database
    include("config.ini.php");
    //query
    $id = mysql_query("SELECT id FROM utenti WHERE nome = '".$nome."'")or die("<h1>".mysql_error()."</h1>");
    $array = mysql_fetch_array($id);

    mysql_query("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$session[id]."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title>Richiesta effetuata con sucesso</title>
    </head>
    <body>
    <img alt="logo" src="loghi/logo.png"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <div style="text-align: center;">Richiesta inviata con
    sucesso&nbsp;<a href="home.php">torna alla home</a></div>
    </body>
    </html>
    quindi $_GET[$nome] ha il valore del nick selezionato, poi lo trasformo in $nome faccio una query e mi trovo l'id delle persona seleizonata (cosa da trovare anche la sua tabella perchè come ho detto prima ogni utente ha la propia tabella con il propio id) faccio un altra qurey e inserisco l'id della persona che sta compiendo l'operazione, il tipo di richiesta cioè la variabile $tipo che significa amicizia e poi la data che è cibtebuta nella variabile $data

    Le variabili devono iniziare con il dollaro: $
    Senza il dollaro sono identificate come costanti.


    scusa questa è una variabile gisuto?
    Codice PHP:
    $Variabile = "Questa è una variabile";
    e questa è la mia

    Codice PHP:
    $tipo = "amicizia";
    perchè la mia non dovrebbe essere una variabile?

    Ciao!

  10. #10
    Guest

    Predefinito

    Quella è una variabile che contiene una stringa!
    Nel primo codice che hai postato avevi scritto così:

    Codice PHP:
    $tipo = amicizia;
    e non:

    Codice PHP:
    $tipo = "amicizia"
    Nel primo caso hai commesso un errore, perchè come ti ha detto debug non esiste nessuna costante chiamata amicizia.

  11. #11
    Guest

    Predefinito

    Hai una tale confusione in testa che faccio fatica a capirti!

    Allora, in php esistono le variabili: $var
    esistono le costanti: miacostante
    esistono le stringhe: "stringa" o 'stringa'.

    Ci siamo?
    Se un indice di un array si chiama pippo, non puoi richiamarlo con $array[pippo] ma devi farlo così:
    $array['pippo']
    oppure:
    $array["pippo"]

    Altra cosa. Se tu vuoi valorizzare una variabile che fino a quel punto non esiste, non puoi usare la stessa variabile per assegnare un valore, ci sei?
    Ti ricordo che le variabili iniziano con $
    Tu forse volevi scrivere:
    $nome=$_GET['nome'];


    Ciao!

  12. #12
    Guest

    Predefinito

    ok...dopo queste modifiche lo script funziona per metà perchè, la qury funziona e salve nel databasela data e il tipo di richiesta ma non l'id dell'utente come mai io ho usato il $session[id] per avere l'id dell'utente devo fare un al'tra query, ma come?

    Codice PHP:
    <?php
    //sessione start
    session_start();
    /*recupero le variabili inviate tramite get e definisce la data corrente */
    $nome=$_GET['nome'];
    $data=date("d/m/Y");
    $tipo="amicizia";
    //connesione al database
    include("config.ini.php");
    //query
    $id = mysql_query("SELECT id FROM utenti WHERE nome = '".$nome."'")or die("<h1>".mysql_error()."</h1>");
    $array = mysql_fetch_array($id);

    mysql_query("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$session[id]."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title>Richiesta effetuata con sucesso</title>
    </head>
    <body>
    <img alt="logo" src="loghi/logo.png"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <div style="text-align: center;">Richiesta inviata con
    sucesso&nbsp;<a href="home.php">torna alla home</a></div>
    </body>
    </html>

  13. #13
    Guest

    Predefinito

    Guarda che anche $session è un array, quindi vale lo stesso discorso di accesso fatto per $_GET


    ciao!

  14. #14
    Guest

    Predefinito

    lo so, ho capito ma nel databse non vedo ancora l'id dell'amico...

  15. #15
    Guest

    Predefinito

    Posta l'ultima versione dello script corretto.


    ciao!

  16. #16
    Guest

    Predefinito

    Codice PHP:
    <?php
    //sessione start
    session_start();
    /*recupero le variabili inviate tramite get e definisce la data corrente */
    $nome=$_GET['nome'];
    $data=date("d/m/Y");
    $tipo="amicizia";
    //connesione al database
    include("config.ini.php");
    //query
    $id = mysql_query("SELECT id FROM utenti WHERE nome = '".$nome."'")or die("<h1>".mysql_error()."</h1>");
    $array = mysql_fetch_array($id);

    mysql_query("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$session['id']."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title>Richiesta effetuata con sucesso</title>
    </head>
    <body>
    <img alt="logo" src="loghi/logo.png"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <div style="text-align: center;">Richiesta inviata con
    sucesso&nbsp;<a href="home.php">torna alla home</a></div>
    </body>
    </html>

  17. #17
    Guest

    Predefinito

    Dovrai scorrere l'array generato tramite la select per fare l'INSERT no?

    Fai un print_r() di $array e vedi cosa ti restituisce.

  18. #18
    Guest

    Predefinito

    ma...a me seve l'id dell'altra persona diciamo del mittente (cioè colui che invia la richiesta)

    comunque ho fatto il print_r e mi restituisce

    Array ( [0] => 7 [id] => 7 )
    l'id è 7 quindi è giusto ma lo zero non so cosa sia forse un false....

  19. #19
    Guest

    Predefinito

    prova la stessa query su phpMyAdmin, vedi cosa restituisce!

    Altrimenti, usa mysql_fetch_row(), sicuramente restituirà solo ['id'].

  20. #20
    Guest

    Predefinito

    ma a me quella query funziona quello che non funziona e il $session['id'] !!!!!!

  21. #21
    Guest

    Predefinito

    $session dove lo valorizzi?

    Se intendi le variabili superglobali della sessione è $_SESSION non $session.

  22. #22
    Guest

    Predefinito

    Grazie ma ancora non va
    1 mi esce questo errore
    Notice: A session had already been started - ignoring session_start() in /membri/zomer/config.ini.php on line 3
    2. nel database non viene salvato il $_SESSION['id'] ma esce scritto Array ...

  23. #23
    Guest

    Predefinito

    session_start() lo devi mettere solo nelle pagine che puoi visualizzare, no in ogni file.

    Comunque fai sempre un print_r() quando vedi la stringa Array inaspettatamente così vedi se devi fare un ciclo per avere quel che vuoi o cosa.

  24. #24
    Guest

    Predefinito

    susa ma se non metto session start il $_SESSION['id'] funge...cioè e vero che ora come ora non funge oerchè nel databse viene merozziata la parola arry ma...comunque come potrei fare? non ho capito bene quello che mi hai suggerito...

  25. #25
    Guest

    Predefinito

    Infatti, session_start() lo devi mettere solo dove, in questo caso, esegui la query, non in config.inc.php.

    Se leggi ilò notice ti dice che la sessione è già stata aperta, quindi cancella il session_start() da config.inc.php.

    Per print_r(), stampa l'array che usi per memorizzare i dati, quello che ti memorizza Array e non quello che vuoi.

  26. #26
    Guest

    Predefinito

    mi sono accorto di un errore un pò stupido e ho sistemato ma comuque dell'id del mittente non c'è ancora traccia ora però mi dà questo errore:

    Notice: Undefined index: id in /membri/zomer/richiesta_amicizia.php on line 15




    Codice PHP:
    <?php
    error_reporting
    (E_ALL);
    //sessione start
    session_start();
    /*recupero le variabili inviate tramite get e definisce la data corrente */
    $nome=$_GET['nome'];
    $data=date("d/m/Y");
    $tipo="amicizia";
    //connesione al database
    include("config.ini.php");
    //query
    $id = mysql_query("SELECT id FROM utenti WHERE nome = '".$nome."'")or die("<h1>".mysql_error()."</h1>");
    $array = mysql_fetch_array($id);

    mysql_query("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$_SESSION['id']."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title>Richiesta effetuata con sucesso</title>
    </head>
    <body>
    <img alt="logo" src="loghi/logo.png"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <div style="text-align: center;">Richiesta inviata con
    sucesso&nbsp;<a href="home.php">torna alla home</a></div>
    </body>
    </html>
    forse id va scritto in maiuscolo?

  27. #27
    Guest

    Predefinito

    Se ti dice undefined vuol dire che non eisste, non è nemmeno vuoto.

    Controllo dove setti le sessioni se c'è qualcosa a proposito di di ['id'].

    Se lo setti maiuscolo, lo dovrai scrivere maiuscolo, ricorda che il PHP è case sensitive

  28. #28
    Guest

    Predefinito

    NON SO SE CENTRA MA IL LINK IN QUESTA PAGINA NON FUNZIONA MI DOVREBBE OPRTARE ALLA PAGINA HOME.PHP MA INVECE MI POSTA IN UNA PAGINA TUTTA STRANA RICHIESTA_AMICIZIA.PHP/HOME.PHP RICHIESTE DI AMICIZIA E IL NOME DELLA PAGINA...

    Ho controllato e ho trovato questo:

    Codice PHP:
    if(isset($_SESSION['user']) && isset($_SESSION['id']) && isset($_SESSION['nome']) )
    vi posto per l'ultima volta il mio script...
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);
    /*recupero le variabili inviate tramite get e definisce la data corrente */
    $nome=$_GET['nome'];
    $data=date("d/m/Y");
    $tipo="amicizia";
    //connesione al database
    include("config.ini.php");
    //query
    $id = mysql_query("SELECT id FROM utenti WHERE nome = '".$nome."'")or die("<h1>".mysql_error()."</h1>");
    $array = mysql_fetch_array($id);

    mysql_query("INSERT INTO richieste".$array['id']." (id_amico, tipo_richiesta, data_amicizia) VALUES ('".$_SESSION['id']."', '".$tipo."', '".$data."')")or die("<h1>".mysql_error()."</h1>");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta content="text/html; charset=ISO-8859-1"
    http-equiv="content-type">
    <title>Richiesta effetuata con sucesso</title>
    </head>
    <body>
    <img alt="logo" src="loghi/logo.png"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <div style="text-align: center;">Richiesta inviata con
    sucesso&nbsp;<a href="home.php">torna alla home</a></div>
    </body>
    </html>
    bhè io non so più cosa fare...come posso prendere questo maleddetto id?

  29. #29
    Guest

    Predefinito

    posta config.ini.php.

  30. #30
    Guest

    Predefinito

    Codice PHP:
    <?php

    // Dati connessione al database
    $db_host = 'localhost'; // Host - solitamente localhost
    $db_utente = 'zomer'; // Nome utente del Database
    $db_password = ''; // Password del Database
    $db_nome = 'my_zomer'; // Nome del Database

    // Effettua la connessione al database
    $dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
    mysql_select_db($db_nome);
    ?>

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

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