phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Problema query here

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Rispondi
Avatar utente
brunino
Moderatore
Moderatore
Messaggi: 2819
Iscritto il: 12/01/2013, 16:35
Sesso: Maschio
Versione: 3.1.2
Server: UNIX/Linux
PHP: php 5.3
Database: mysql
Località: Toscana, Firenze
Contatta:

Problema query here

Messaggio da brunino » 16/07/2013, 17:31

Salve... ho istallato una chat (mod) e volevo modificarla affinchè tramite un id nel link potessi cambiare stanza di cht.
Cioè la chat è in chat.php e vorrei poter cambiare stanza chat.php?stanza=1 o chat.php?stanza=1
La chat aveva già di predefinito una colonna nella tabella in cui agisce chiamata chat_id.
La query di scrittura messaggi l'ho modificata e funziona, ma la query di lettura non riesce a leggere le variabili:

a inizio pagina ho scritto:

Codice: Seleziona tutto

<?php $stanza = $_GET ["stanza"]; ?>
questa la query di lettura:

Codice: Seleziona tutto

$sql = 'SELECT * FROM ' . CHAT_TABLE . ' WHERE chat_id = $stanza ORDER BY message_id DESC';
        $result = $db->sql_query_limit($sql, 25);
        $rows = $db->sql_fetchrowset($result);

        foreach ($rows as $row)
        {
            if ($count++ == 0)
            {
                $last_id = $row['message_id'];
            }
            $template->assign_block_vars('chatrow', array(
                'MESSAGE_ID'    => $row['message_id'],
                'USERNAME_FULL'    => clean_username(get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $user->lang['GUEST'])),
                'MESSAGE'        => generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']),
                'TIME'            => $user->format_date($row['time']),
                'CLASS'            => ($row['message_id'] % 2) ? 1 : 2,
            ));
        }
        $db->sql_freeresult($result);
Come vedete ho creato il "where" che estrae solo i messaggi che hanno come chat_id quella nel get, ma quando provo mi da questo errore sql:

Codice: Seleziona tutto

SQL ERROR [ mysql4 ]

Unknown column '$stanza' in 'where clause' [1054]

SQL

SELECT * FROM avphpbb_chat WHERE chat_id = $stanza ORDER BY message_id DESC LIMIT 25
ho provato allora a mettere le virgolette:

Codice: Seleziona tutto

$sql = 'SELECT * FROM ' . CHAT_TABLE . ' WHERE chat_id = '$stanza' ORDER BY message_id DESC';
        $result = $db->sql_query_limit($sql, 25);
        $rows = $db->sql_fetchrowset($result);

        foreach ($rows as $row)
        {
            if ($count++ == 0)
            {
                $last_id = $row['message_id'];
            }
            $template->assign_block_vars('chatrow', array(
                'MESSAGE_ID'    => $row['message_id'],
                'USERNAME_FULL'    => clean_username(get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $user->lang['GUEST'])),
                'MESSAGE'        => generate_text_for_display($row['message'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']),
                'TIME'            => $user->format_date($row['time']),
                'CLASS'            => ($row['message_id'] % 2) ? 1 : 2,
            ));
        }
        $db->sql_freeresult($result);
e mi da errore php:

Codice: Seleziona tutto

Parse error: syntax error, unexpected T_VARIABLE in /membri/nightassassin/chat.php on line 58
la riga 58 è quella della query.
Come potrei risolvere questo problema???
Grazie in anticipo
E' sempre gradito un grazie

Creo estensioni per phpBB 3.1 su misura: contattami via MP.
Mie Estensioni: Top Ten Topics | Ban List | Topic List
Visita il mio forum di test e sviluppo stili e estensioni phpBB 3.1

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Problema query here

Messaggio da Micogian » 16/07/2013, 17:40

Prova così:

Codice: Seleziona tutto

$sql = 'SELECT * FROM ' . CHAT_TABLE . ' WHERE chat_id = ' . $stanza . ' ORDER BY message_id DESC'; 
altrimenti così:

Codice: Seleziona tutto

$sql = "SELECT * FROM " . CHAT_TABLE . " WHERE chat_id = '$stanza'  ORDER BY message_id DESC"; 

Avatar utente
brunino
Moderatore
Moderatore
Messaggi: 2819
Iscritto il: 12/01/2013, 16:35
Sesso: Maschio
Versione: 3.1.2
Server: UNIX/Linux
PHP: php 5.3
Database: mysql
Località: Toscana, Firenze
Contatta:

Re: Problema query here

Messaggio da brunino » 16/07/2013, 17:47

Questo funziona!!!!
Micogian ha scritto:

Codice: Seleziona tutto

$sql = 'SELECT * FROM ' . CHAT_TABLE . ' WHERE chat_id = ' . $stanza . ' ORDER BY message_id DESC'; 
Questo l'avevo già provato e dava errore php
Micogian ha scritto:

Codice: Seleziona tutto

$sql = "SELECT * FROM " . CHAT_TABLE . " WHERE chat_id = '$stanza'  ORDER BY message_id DESC"; 
Grazie infinite!!!
E' sempre gradito un grazie

Creo estensioni per phpBB 3.1 su misura: contattami via MP.
Mie Estensioni: Top Ten Topics | Ban List | Topic List
Visita il mio forum di test e sviluppo stili e estensioni phpBB 3.1

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Problema query here

Messaggio da Micogian » 16/07/2013, 18:30

brunino ha scritto: Questo l'avevo già provato e dava errore php
Micogian ha scritto:

Codice: Seleziona tutto

$sql = "SELECT * FROM " . CHAT_TABLE . " WHERE chat_id = '$stanza'  ORDER BY message_id DESC";
Se è l'esempio che hai messo tu dava errore perche hai usato gli apici, devi usare le virgolette e gli apici per la variabile.

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti