Visualizzazione risultati 1 fino 14 di 14

Discussione: [mysql] problemi query INSERT [era: MySql non va]

  1. #1
    Guest

    Predefinito [mysql] problemi query INSERT [era: MySql non va]

    Devo finire un lavoro per domenica e mi sono ritrovato davanti a un problema che non riesco a risolvere:
    Codice PHP:
    $host = "localhost";
    $user = "*******";
    $password = "******";
    $db = "my_gismundo";
    $link = mysql_connect($host, $user, $password) or die(header('Location: /errore/404'));
    $conn = mysql_select_db($db, $link) or die(header('Location: /errore/404'));

    if(
    $_POST['categoria']=='Status') {
    $result = mysql_query("SELECT * FROM status", $link);
    $id = mysql_num_rows($result);
    $data = date('Y.m.d.H.i.s');
    $nome = $_COOKIE["Admin"];
    $testo = $_POST['testo'];
    if(
    date('n') == '1'){$mese = 'gen';}
    if(
    date('n') == '2'){$mese = 'feb';}
    if(
    date('n') == '3'){$mese = 'mar';}
    if(
    date('n') == '4'){$mese = 'apr';}
    if(
    date('n') == '5'){$mese = 'mag';}
    if(
    date('n') == '6'){$mese = 'giu';}
    if(
    date('n') == '7'){$mese = 'lug';}
    if(
    date('n') == '8'){$mese = 'ago';}
    if(
    date('n') == '9'){$mese = 'set';}
    if(
    date('n') == '10'){$mese = 'ott';}
    if(
    date('n') == '11'){$mese = 'nov';}
    if(
    date('n') == '12'){$mese = 'dic';}
    $date1 = date('H.i');
    $date2 = ", ";
    $date3 = date('d');
    $date4 = " ";
    $date5 = $mese;
    $date6 = $date4;
    $date7 = date('Y');
    $date = $date1.$date2.$date3.$date4.$date5.$date6.$date7;
    $codice1 = '<table class="status"><tr><td valign="top"><img src="img/';
    $codice2 = $nome;
    $codice3 = 's.png"></td><td valign="top"><b><a href="/profilo?n=';
    $codice4 = $nome;
    $codice5 = '">';
    $codice6 = $nome;
    $codice7 = '</a> scrive:</b><br>';
    $codice8 = $testo;
    $codice9 = '<br><span>';
    $codice10 = $date;
    $codice11 = '</span></td></tr></table>';
    $codice = $codice1.$codice2.$codice3.$codice4.$codice5.$codice6.$codice7.$codice8.$codice9.$codice10.$codice11;
    mysql_query("INSERT INTO status VALUES ('$id', '$data', '$nome', '$testo', '$codice')", $link);

  2. #2
    Guest

    Predefinito

    qual'è il problema? xD, se non ci dici qual'è come facciamo ad aiutarti? =P

  3. #3
    Guest

    Predefinito

    la sintassi dell'INSERT INTO dovrebbe essere così circa:
    Codice PHP:
    INSERT INTO tabella1 (colonna1, colonna2, etc.) VALUES ('valore1', 'valore2', etc.)
    e non una cosa tipo
    Codice PHP:
    INSERT INTO tabella1 VALUES ('valore1', 'valore2', etc.)
    che hai scritto tu.

    Tutto questo nell'ultima riga del codice
    Ultima modifica di netpost : 07-04-2011 alle ore 19.21.34 Motivo: Precisazione lieve

  4. #4
    Guest

    Predefinito

    @cactua: il problema è che non mi inserisce i dati nella tabella
    @netpost: funziona anche se non inserisco i nomi delle colonne xD ho provato a mettere anche i nomi, ma non cambia xD

  5. #5
    Guest

    Predefinito

    allora non ne ho idea, intanto vado a mangiare poi ci penso, non avendo nulla da fixare (lol)

  6. #6
    Guest

    Predefinito

    Se proprio ti va di aggiustare qualcosa, qui c'è una pagina che mi stampa solo l'ultimo risultato della query, e non tutti e 10 D:
    Vedi che puoi fare xD
    Codice PHP:
    $host = "localhost";
    $user = "****";
    $password = "*****";
    $db = "my_gismundo";
    $link = mysql_connect($host, $user, $password) or die(header('Location: /errore/404'));
    $conn = mysql_select_db($db, $link) or die(header('Location: /errore/404'));
    include_once(
    '\sito\pagina.php');
    $parametri=array();
    $parametri['titolo']='Gismo';
    $query = "SELECT * FROM post ORDER BY id DESC LIMIT 0, 10";
    $result = mysql_query($query, $link) or die(mysql_error($link));
    while (
    $riga = mysql_fetch_row($result)) {$parametri['pagina'] = $riga[6];}
    pagina($parametri);
    exit;

  7. #7
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    gismundo, per il problema dell'INSERT , devi controllare prima i valori delle variabili per ogni campo della tabella....

    intendo queste variabili e i rispettivi valori:
    ('$id', '$data', '$nome', '$testo', '$codice')

    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  8. #8
    Guest

    Predefinito

    Vediamo..
    - nella variabile $id ci vanno solo numeri perchè è un count(),
    - nella variabile $data c'è la data, come si vede dalle funzioni date(),
    - nella variabile $nome ci sono solo lettere, niente numeri o simboli,
    - nella variabile $testo ci può andare solo il testo, perchè ho disabilitato i simboli e i numeri xD

    L'unico problema potrebbe essere con la variabile $codice.. Ma non trovo l'errore :(


    [EDIT]

    Poi c'è anche l'errore che qui mi stampa solo l'ultimo risultato della query

    Codice PHP:
    $host = "localhost";
    $user = "****";
    $password = "*****";
    $db = "my_gismundo";
    $link = mysql_connect($host, $user, $password) or die(header('Location: /errore/404'));
    $conn = mysql_select_db($db, $link) or die(header('Location: /errore/404'));
    include_once(
    '\sito\pagina.php');
    $parametri=array();
    $parametri['titolo']='Gismo';
    $query = "SELECT * FROM post ORDER BY id DESC LIMIT 0, 10";
    $result = mysql_query($query, $link) or die(mysql_error($link));
    while (
    $riga = mysql_fetch_row($result)) {$parametri['pagina'] = $riga[6];}
    pagina($parametri);
    exit;

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da EuroSalute Visualizza messaggio
    gismundo, per il problema dell'INSERT , devi controllare prima i valori delle variabili per ogni campo della tabella....
    A questo punto, sarebbe anche giusto fare un echo di debug per ogni minima cosa che fai e vedi se ci arriva o se ti blocca/non_ha_valore, etc.

  10. #10
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    per il problema di stampa dell ultimo record,,,be per forza...fai un ciclo while in cui vai a memorizzare tutte le righe nella ste3ssa variabile.....:

    Codice PHP:
    //$parametri['pagina'] avrà sempre l'ultimo valora della riga 6:
    while ($riga = mysql_fetch_row($result)) {$parametri['pagina'] = $riga[6];}
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  11. #11
    Guest

    Predefinito

    Quindi mi basta togliere il while? xD

  12. #12
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    no....se la riga 6 ha multipli valori

    in teoria dovresti invece fare così, ma non so cosa contiene la funzione pagina()(altrimenti doivrai modificare questa funzione), in quanto passi a questa funzione la variabile $parametri:



    Codice PHP:
    while ($riga = mysql_fetch_row($result)) {
    $parametri['pagina'] = $riga[6];
    pagina($parametri);
    }
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  13. #13
    Guest

    Predefinito

    io ho questo:
    Codice PHP:
    $host = "localhost";
    $user = "***";
    $password = "****";
    $db = "my_gismundo";
    $link = mysql_connect($host, $user, $password) or die(header('Location: /errore/404'));
    $conn = mysql_select_db($db, $link) or die(header('Location: /errore/404'));
    include_once(
    '\sito\pagina.php');
    $parametri=array();
    $parametri['titolo']='Gismo';
    $query = "SELECT * FROM post ORDER BY id DESC LIMIT 0, 10";
    $result = mysql_query($query, $link) or die(mysql_error($link));
    while(
    $riga = mysql_fetch_row($result)) {$parametri['pagina'] = $riga[6];}
    pagina($parametri);
    exit;
    e la funziona pagina() contiene:
    Codice PHP:
    codice iniziale della pagina
    <? echo $parametri['pagina']; ?>
    codice finale della pagina
    così se devo modificare qualcosa nelle pagina, basta cambiare la funzione pagina()

    Ho provato a fare come mi hai scritto tu.. con pagina($parametri); dentro la graffa, ma mi stampa 10 pagine separate D:

  14. #14
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    allora a questo punto se vuoi far visualizzare soltanto una pagina, dovrai modificare la query....

    in quanto ora prendi 10 valori impostato da LIMIT

    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

Regole di scrittura

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