Errore T_CONSTANT_ENCAPSED_STRING

macchiavelli.ivan

Utente Attivo
7 Dic 2012
67
0
0
Salve nel compilare questo script ho riscontrato questo tipo di errore che sembra provenire dal config.php ma vorrei chiedere un consiglio.

PHP:
<?php
require_once "config.php"; //se commento questa stringa va ma non si connette al db...
                                    connettiDb();
$sql= "SELECT maestri.*,lezioni.lez
FROM lezioni INNER JOIN maestri ON lezioni.id_ins = maestri.id
WHERE maestri.sesso = 'uomo' AND lezioni.anno = '2012' AND lezioni.week = '1'
ORDER BY lezioni.lez ASC";
$dati=mysql_query($sql);
                  while($row=mysql_fetch_array($dati)) { 
		echo'	<td style="vertical-align: top;">' . $row[nome] . ' ' . $row[cognome] . '<br />
                  </td>
                  <td style="vertical-align: top;">' . $row[citta] . '<br />
                  </td>
                  <td style="vertical-align: top;">' . $row[lez] . '<br />';
                  }
?>

Nel config.php c'è:

PHP:
<?php
	
	function connettiDb()
	{
		$c = mysql_connect("**.***.***.**","*********","*********") or die (mysql_error());
						
		mysql_query("use *********");
		return $c;
	}
		
?>
 
Ciao
manca la selezione del database
mysql_query esegue una query non devi metterla nella funzione connettiDb
PHP:
<?php
    
    function connettiDb()
    {
        $c = mysql_connect("**.***.***.**","*********","*********") or die (mysql_error());
        $db = mysql_select_db("nomedatabase");

        return $c;
    }
        
?>

ricordati di chiuderla quando hai finito di usarla
la libreria mysql per la connessione al db cmq è deprecata ti conviene iniziare ad usarne un altra (vedi sul manuale)
 
Ciao.
Ho fatto diverse prove anche mettendo la connessione al db nello stesso file:

PHP:
<?php
	$anno=$_POST['year']; 
    $sett=$_POST['week']; 
   
   $connessione = mysql_connect("user","pass","pass")or die("Connessione non riuscita: " . mysql_error());

$db = mysql_select_db("database", $connessione);


$sql= "SELECT maestri.*,lezioni.lez
FROM lezioni INNER JOIN maestri ON lezioni.id_ins = maestri.id
WHERE maestri.sesso = 'uomo' AND lezioni.anno = '$anno' AND lezioni.week = '$sett'
ORDER BY lezioni.lez DESC";
$dati=mysql_query($sql);
                  while($row=mysql_fetch_array($dati, $db)) { 
		echo'	<td style="vertical-align: top;">' . $row[nome] . ' ' . $row[cognome] . '<br />
                  </td>
                  <td style="vertical-align: top;">' . $row[citta] . '<br />
                  </td>
                  <td style="vertical-align: top;">' . $row[lez] . '<br />';
                  }
                  mysql_close($connessione);
?>

Come vedi ho chiuso la connessione e messo la query dove dovrebbe andare.

Solo che riscontro lo stesso errore:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in....

la libreria mysql per la connessione al db cmq è deprecata ti conviene iniziare ad usarne un altra (vedi sul manuale)

Ho guardato il manuale ma cosa intendi dire di preciso? perché nella guida spiega come connettersi al db.
 
Ultima modifica:
Ciao.
Ho fatto diverse prove anche mettendo la connessione al db nello stesso file:

PHP:
<?php
	$anno=$_POST['year']; 
    $sett=$_POST['week']; 
   
   $connessione = mysql_connect("user","pass","pass")or die("Connessione non riuscita: " . mysql_error());

$db = mysql_select_db("database", $connessione);


$sql= "SELECT maestri.*,lezioni.lez
FROM lezioni INNER JOIN maestri ON lezioni.id_ins = maestri.id
WHERE maestri.sesso = 'uomo' AND lezioni.anno = '$anno' AND lezioni.week = '$sett'
ORDER BY lezioni.lez DESC";
$dati=mysql_query($sql);
                  while($row=mysql_fetch_array($dati, $db)) { 
		echo'	<td style="vertical-align: top;">' . $row[nome] . ' ' . $row[cognome] . '<br />
                  </td>
                  <td style="vertical-align: top;">' . $row[citta] . '<br />
                  </td>
                  <td style="vertical-align: top;">' . $row[lez] . '<br />';
                  }
                  mysql_close($connessione);
?>

Come vedi ho chiuso la connessione e messo la query dove dovrebbe andare.

Solo che riscontro lo stesso errore:





Ho guardato il manuale ma cosa intendi dire di preciso? perché nella guida spiega come connettersi al db.

Controlla che la query sia giusta
PHP:
$dati = mysql_query($sql) or die(mysql_error());
Inoltre ti ricordo che la query è vulnerabile a sql injection

Per deprecata intende che ci sono librerie migliori di mysql che adottano una struttura ad oggetti come pdo o mysqli
 

Discussioni simili