- Home
- Categorie
- Coding e Sistemistica
- Coding
- ERRORE SYNTAX !!!
-
ERRORE SYNTAX !!!
Ciao, visto che sono nuovo e ancora ignorante in materia avrei bisogno di un aiuto.
Sotto trovate una pagina che interrogando il db mi restituisce una tabella a 3 colonne.
Nome, Cognome, Titolo ( dove titolo è in formato zip).
Titolo dovrebbe essere linkato.
Purtroppo ho un errore e non riesco a trovarlo..
L'errore che mi da è questo:
Syntax error, unespected $end , Line 65 ..!!
Chi mi aiuta? GrazieClaudio
<html>
<head>
<title>Interfaccia verso il database</title>
</head>
<body>
<?php
$host = 'localhost';
$user = 'miouser';
$password = 'miapass';
$database = 'miodb';$db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server $host"); mysql_select_db($database, $db) or die ("Impossibile connettersi al database $database"); $query = "SELECT autori.nome,autori.cognome,canzoni.titolo FROM autori,canzoni
WHERE autori.id_autori=canzoni.id_autori
ORDER BY autori.id_autori
LIMIT 0,200";
$dbResult = mysql_query($query, $db);
$AffectedRows = mysql_affected_rows($db);$q=mysql_query("SELECT * from [canzoni];"); while ($q1=mysql_array($q)) { echo "nome: ".$q1['nome']." cognome: ".$q1['cognome']." <a href=\"".$q1['titolo']."\">".$q1['titolo']."</a>"; print "<table border=\"2\">\n"; echo "<h3>Database provvisorio e logicamente incompleto</h3>"; for ($index=0 ; $index<$AffectedRows ; $index++) { $row=mysql_fetch_row($dbResult); if($index==0) { print "<tr>\n"; foreach ($row as $k => $v) { $myfield = mysql_fetch_field($dbResult,$k); print ("<td>**" . $myfield->nome . "**</td>"); } print "</tr>\n"; } foreach ($row as $k => $v) { print ("<td>$v"); if ($k==0) { } print ("</td>"); } print "</tr>\n"; } print "</table>\n"; mysql_free_result($dbResult); mysql_close($db); ?>
</body>
</html>****
-
Non hai chiuso la parentesi graffa del while.
Un consiglio: indenta il codice..
-
Ciao e grazie d'avermi risposto..
Niente da fare..ma probabilmente non mi sono spiegato bene..!!
questa pagina richiama 2 cartelle dal database, nella prima " autori " estraggo 'nome e ' cognome' , dalla seconda " canzoni " estraggo 'titolo' in cui i risultati di 'titolo' sono dei files .zip .
Questa è la pagina funzionante ma senza link:
<html>
<head>
<title>Interfaccia verso il database</title>
</head>
<body>
<?php
$host = 'localhost';
$user = 'nome_user';
$password = 'miapass';
$database = 'nome_db';$db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server $host"); mysql_select_db($database, $db) or die ("Impossibile connettersi al database $database"); $query = "SELECT autori.nome,autori.cognome,canzoni.titolo FROM autori,canzoni
WHERE autori.id_autori=canzoni.id_autori
ORDER BY autori.id_autori
LIMIT 0,200";
$dbResult = mysql_query($query, $db);
$AffectedRows = mysql_affected_rows($db);print "<table border=\"2\">\n";
echo "<h3>Database provvisorio e logicamente incompleto</h3>";
for ($index=0 ; $index<$AffectedRows ; $index++) { $row=mysql_fetch_row($dbResult); if($index==0) { print "<tr>\n"; foreach ($row as $k => $v) { $myfield = mysql_fetch_field($dbResult,$k); print ("<td>**" . $myfield->nome . "**</td>"); } print "</tr>\n"; } foreach ($row as $k => $v) { print ("<td>$v"); if ($k==0) { } print ("</td>"); } print "</tr>\n"; } print "</table>\n"; mysql_free_result($dbResult); mysql_close($db); ?>
</body>
</html>
ora in questa pagina vorrei inserire il codice che mi permette di linkare i risultati di 'titolo'.
Questo è il codice che mi ha gentilmente inviato " massy"
$q=mysql_query("SELECT * from [nometuacartella];");
while ($q1=mysql_array($q)) {
echo "nome: ".$q1['nome']." cognome: ".$q1['cognome']." <a href="".$q1['titolo']."">".$q1['titolo']."</a>";
}
lo dovrei d'apprima modificare ( per es: SELECT *, visto che da canzoni chiedo solo 'titolo' e [nometuacartella] ..poi inserirlo.. ma non ne sono capace.
Da notare che la cartella 'canzoni' è la cartella si può dire principale in cui ho tutte le foreign key sulle altre cartelle.Grazie dell'aiuto
ClaudioPS: cosa intendevi per 'indenta' il codice?
Scusa l'ignoranza.
-
come si chiama la tabella dove son registrati i titoli?
-
Ciao..Dunque,
il db è strutturato così ... 5 tabelle :
1.autori : id_autori, nome, cognome ( primary key id_autori )
2.genere: id_genere, nome_genere ( PK id_genere )
3.tipo_base: id_tipo_base, base ( PK id_tipo_base )
4.nazionalita: id_nazionalita, nazione ( PK id_nazionalita )
5.canzoni: id_canzoni, id_autori, id_genere, id_tipo_base, id_nazionalita,
sigla,titolo,dimensione ( PK id_canzoni , le altre id_ tutte FK )Nazionalità ho omesso volutamente l'accento.
Dalla pagina io vorrei ottenere nome, cognome, titolo.
E i risultati di 'titolo' in link...dove poter eseguire il download.Ti ringrazio per la disponibilità..!!
Claudio
-
PRova con una query del tipo:
$q="SELECT A.nome,A.cognome,B.titolo from canzoni as B LEFT join autori as A on A.id_autori=B.id_autori;"; # <- se serve metti una clausola tipo: where A.cognome="Venditti" o quello che ti serve.
$q1=mysql_query($q);
while ($q2=mysql_fetch_array($q1)) {
echo $q2['nome']." ".$q2['cognome']." <a href="".$q2['titolo'].""".$q2['titolo']."</a>";
}Att. scritto al volissimo. Spero di non aver messo infamità