Newsgroup: it.comp.www.php
Titolo: PHP e area shape

Prelevo dei dati da un db MySQL e con quegli inserisco dei link a dei 
documenti.
L'ID di ogni record corrisponde ad un documento pdf o zip.
$idofflineb è l'ID del record e corrisponde al nome del file sul server, più 
l'estensione che viene aggiunta dal controllo sull'esistenza del file.
I link non sono testuali ma voglio siano dei area shape='rect'.
Poiché i documenti non sono sempre presenti faccio comparire il jpg che 
contiene zip, o pdf o entrambi a seconda dell'esistenza del file.
Facendo delle prove in html su 3 record funziona perfettamente. Facendolo in 
PHP e scorrendo tutte le righe (record) della tabella la variabile 
$idofflineb cambia con il ciclo, ma nell'herf  ha sempre e soltanto il 
valore del primo record. (es. href='../public/immaoffline/$idofflineb.pdf' è 
come se fosse sempre e solo href='../public/immaoffline/23.pdf' se 23 è l'ID 
del primo record letto)
Ho XP prof, FF ultima versione ed explorer 7.
Ho cercato di scriverlo per esteso il più possibile per cercare di 
individuare lo sbaglio, me niente.
Per esempio, echo "<br>$idofflineb"; alla 4ultiam riga dimostra che il 
valore è cambiato ma nell'href continua a rimanere quello del primo record.
Qualcuno mi può far capire dov'è l'errore o se è un problema fra PHP e echo 
"<map name='Map' id='Map'><area shape='rect' coords='3,4,49,66' href='#' 
/>";
echo "<area shape='rect' coords='52,4,98,68' 
href='../public/immaoffline/$idofflineb.pdf' /></map>";?
Segue il codice
Grazie
Leonardo
while ($row = mysql_fetch_array($result))
{
echo "<br>";
echo $row['idofflineb'], " - " , $row['titolo'];
///////////////////////
// echo "<br>$idofflineb";
//$zip = 0; $pdf = 0; // se esiste $zip = 1 $pdf = 2
$Estensione = ".zip";
$filename = "$Percorso$idofflineb$Estensione";
if (file_exists($filename)) {$zip = 1;
//echo "il file $filename esiste";
}
else {
$zip = 0; // echo "Il file $filename non esiste";
}
$Estensione = ".pdf";
$filename = "$Percorso$idofflineb$Estensione";
if (file_exists($filename)) {$pdf = 2;
//echo "il file $filename esiste";
}
else {$pdf = 0; // echo "Il file $filename non esiste";
}
$R = $zip + $pdf; // echo "*************$R";
if($R == 0){$RisultatoFile = $Percorso."+NoFile+.jpg";}// nessun file
if($R == 1)// file zip
{$RisultatoFile = $Percorso."+zip+.jpg";
echo "<map name='Map' id='Map'><area shape='rect' coords='3,4,49,66' 
href='../public/immaoffline/$idofflineb.zip' />";
echo "<area shape='rect' coords='52,4,98,68' href='#' /></map>";
}
if($R == 2)// file pdf
{$RisultatoFile = $Percorso."+pdf+.jpg";
echo "<map name='Map' id='Map'><area shape='rect' coords='3,4,49,66' 
href='#' />";
echo "<area shape='rect' coords='52,4,98,68' 
href='../public/immaoffline/$idofflineb.pdf' /></map>";
}
if($R == 3)// file zip e pdf
{$RisultatoFile = $Percorso."+zip++pdf+.jpg";
echo "<br>$idofflineb";
echo "<img src='$RisultatoFile' border='0' usemap='#Map' width='100' 
height='75' />";
echo "<map name='Map' id='Map'><area shape='rect' coords='3,4,49,66' 
href='../public/immaoffline/".$row['idofflineb'].".zip' />";
echo "<area shape='rect' coords='52,4,98,68' 
href='../public/immaoffline/".$row['idofflineb'].".pdf' /></map>";
}
//////////////////////
}
?>

 href='../public/immaoffline/".$row['idofflineb'].".zip' />";
Premesso che quelle rare volte che ancora uso direttamente l'sql i cicli 
non li faccio come li fai tu, sei sicuro che senza specificare 
MYSQL_FETCH_ASSOC come parametro a mysql_fetch_array venga su un array 
associativo?
A me pareva di no, quindi credo che cercare $row['idofflineb'] invece di 
$row[3] (ad es) possa dare dei problemi.
Io inizierei a guardare da là.
Inoltre in un punto fai l'echo di $row['idofflineb'], in un altro di 
$idofflineb. Non ti converrebbe assegnarli una volta per tutte nel ciclo 
e poi usare solo un unico riferimento?
CIao
Marco


Si, dipende dalle prove che ho fatto tentando di trovare la soluzione.
Ciao
Leonardo

');
?>
TOGLI MAP!!!!
L'errore è anche ridefinire <MAP>....tu aggiungi SHAPE non MAP ad ogni
ciclo!!!!
L'idea corretta è questa:
<map>
CICLO con SHAPE
</map>
....cosa che non mi sembra tu faccia!!!!
L'errore non ti si palesa perchè i browser ci mettono del suo e
tendono ad essere più conservativi possibile nel codice che gli arriva
via http....tradotto: provano a capire cosa volevi fare e cercano di
correggere l'html sbagliato!
Saluti!

 echo('<area shape="rect" coords="3,4,49,66" href="' . $tuavar . '" />');
zac
....ah un altra cosa è ovvia e mi sembrava talmente palese che non
l'ho scritta
se cicli 3 records e NON CAMBI le coordinate...ovvio che ne vedi uno
solo...gli altri sono nascosti!...quindi anche coords deve cambiare
nel ciclo!

 ha scritto nel messaggio 
news:6671f512-2d26-4ffe...@a36g2000yqc.googlegroups.com...



Ti ringrazio
Saluti
Leo