Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    [PHP/MySQL/HTML] Problemi di visualizzazione.

    Vi incollo solo la parte del codice che mi da problemi:

    codice:
    $num_rows = mysql_num_rows($query_limit);
             $q = 0;
             if ($num_rows > $q) {
                      while($results=mysql_fetch_array($query_limit))
                      {
                           echo "<tr>\n";
                           echo "<td align='left'>[img]"."img/screen/".$results[[/img]</td>\n";
                           $q++;
                           if ($num_rows > $q) {
                               $results=mysql_fetch_array($query_limit);
                               echo "<td align='center'>[img]"."img/screen/".$results[[/img]</td>\n";
                               $q++;
                               if ($num_rows > $q) {
                                   $results=mysql_fetch_array($query_limit);
                                   echo "<td align='right'>[img]"."img/screen/".$results[[/img]</td>\n";
                                   $q++;
                               }
                           }
                           echo "<td>";
                      }
             }
    è un ciclo che serve per visualizzare immagini a gruppi di 3 per ogni riga.
    Con Firefox non ho problemi di sorta, e neanche con Opera a dire il vero. Con IE invece vedo i puntini blu al posto delle immagini. Cos'è che non supporta IE di quello che scritto?
    Scusa, e di che ti meravigli?
    Secondo te, tra la morte di Gesù e la sua Resurrezione...
    ...chi è stato il "Figlio di Dio ad interim"?

  2. #2
    Ottima domanda... A me succede lo stesso con questo codice:

    // Recupero l'avatar
    $query=mysql_query("SELECT * FROM members WHERE user = '" . $user . "'");
    $result=mysql_fetch_array($query);
    //Calcolo le dimensioni originali
    $dim = @getimagesize("$result[avatar]");
    $larghezza = $dim[0];
    $altezza = $dim[1];
    //Se altezza e/o larghezza sono maggiori di 90 px ridimensiono l'avatar
    if ($larghezza>=90 OR $altezza>=90)
    {
    if ($larghezza>$altezza)
    {
    $larghezzaOK=90;
    $altezzaOK=90*$altezza/$larghezza;
    }
    elseif ($altezza>$larghezza)
    {
    $altezzaOK=90;
    $$larghezzaOK=90*$larghezza/altezza;
    }
    elseif ($altezza==$larghezza)
    {
    $larghezzaOK=90;
    $altezzaOK=90;
    }

    }
    else
    {
    $larghezzaOK=$larghezza;
    $altezzaOK=$altezza;
    }

    if ($result["avatar"]=="")
    {
    $avatar="../avatars/nullo.gif";
    }
    else
    {
    $avatar= $result["avatar"];
    }

    // Stampo a video avatar e saluto user
    echo "<tr><td align=\"center\"><hr>";
    echo "<img src=\"$avatar\" width=\"$larghezzaOK\" height=\"$altezzaOK\">
    ";
    echo "Ciao <a href=\"../community/proprio_profilo.php?id=" . $result[0] . "\">$user</a>!
    ";
    echo "</td></tr>";


    Con Firefox tutto OK con IE i famosi puntini che nel mio caso sn link.
    Non esistono cose che non si possono fare... Esistono solo cose che non si sanno fare!

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    @kotetsu_jeeg
    $dim = @getimagesize("$result[avatar]");
    fai
    $dim = getimagesize("$result[avatar]");
    così vedi se ti restituisce errori...


    elseif ($altezza>$larghezza)
    {
    $altezzaOK=90;
    $$larghezzaOK=90*$larghezza/altezza;
    }
    hai messo un $ in pù

    ciao

  4. #4
    Niente da fare... togliendo @ non dà neanche un notice e sistemando la variebile togliendo $ in + dà sempre lo stesso problema di visualizzazione...
    Non esistono cose che non si possono fare... Esistono solo cose che non si sanno fare!

  5. #5
    allora ho quasi risolto. Cioè in pratica penso che IE non supporti il modo di scrivere %30 così ho modificato usando 30% e dovrebbe andare, solo che siccome il Firefox ridimensiona di meno, in pratica il 30% di firefox equivale al 9% di IE così ho dovuto usare questa funzione:

    codice:
    if(stristr($_SERVER['HTTP_USER_AGENT'],"MSIE")) {$a = 9; $b=9;}
    else {$a=30; $b=30;}
    Soltanto che adesso le immagini si vedono bene ma mentre con firefox le vedo bene, con IE la tabella spagina e vedo le immagini su riga ad 8km di distanza fra di loro.
    Scusa, e di che ti meravigli?
    Secondo te, tra la morte di Gesù e la sua Resurrezione...
    ...chi è stato il "Figlio di Dio ad interim"?

  6. #6
    Anche se il mio problema è un po' diverso avevo pensato pure io di far riconoscere il browser... almeno x chi non usa IE riesco a dare una visualizzazione decente! Il fatto è che vorrei capire cosa c'è che non va nel codice che ho scritto (a parte che avrei potuto scrivere tutto in modo + elegante con uno switch invece che con if e elseif)


    Scusate ho aperto la discussione Logo PHP nei Siti potreste darmi una mano?

    Grazie
    Non esistono cose che non si possono fare... Esistono solo cose che non si sanno fare!

  7. #7
    io davvero non so che farci. Con IE le tabelle sono immense e kilometriche
    Scusa, e di che ti meravigli?
    Secondo te, tra la morte di Gesù e la sua Resurrezione...
    ...chi è stato il "Figlio di Dio ad interim"?

  8. #8
    Ho risolto... :master: + o - ... Credo che il mio problema si verifichi quando getimagesize(); debba leggere una gif con sfondo trasparente... almeno credo...
    Così in
    //Se altezza e/o larghezza sono maggiori di 90 px ridimensiono l'avatar
    if ($larghezza>=90 OR $altezza>=90)

    Ho sostituito
    //Se altezza e/o larghezza sono maggiori di 90 px ridimensiono l'avatar
    if ($larghezza>=90 OR $altezza>=90 OR $larghezza=="" OR $altezza=="")

    In pratica il codice adesso è così
    // Recupero l'avatar
    $query=mysql_query("SELECT * FROM members WHERE user = '" . $user . "'");
    $result=mysql_fetch_array($query);
    if ($result["avatar"]=="")
    {
    $avatar="../avatars/nullo.gif";
    }
    else
    {
    $avatar= $result["avatar"];
    }
    //Calcolo le dimensioni originali

    $dim = getimagesize($avatar);
    $larghezza = $dim[0];
    $altezza = $dim[1];
    //Se altezza e/o larghezza sono maggiori di 90 px ridimensiono l'avatar
    if ($larghezza>=90 OR $altezza>=90 OR $larghezza=="" OR $altezza=="")
    {
    if ($larghezza>$altezza)
    {
    $larghezzaOK=90;
    $altezzaOK=90*$altezza/$larghezza;
    }
    elseif ($altezza>$larghezza)
    {
    $altezzaOK=90;
    $larghezzaOK=90*$larghezza/$altezza;
    }
    elseif ($altezza==$larghezza)
    {
    $larghezzaOK=90;
    $altezzaOK=90;
    }
    }
    else
    {
    $larghezzaOK=$larghezza;
    $altezzaOK=$altezza;
    }
    // Stampo a video avatar e saluto user
    echo "<tr><td align=\"center\"><hr>";
    echo "<img src=\"$avatar\" width=\"$larghezzaOK\" height=\"$altezzaOK\">
    ";
    echo "Ciao <a href=\"../community/proprio_profilo.php?id=" . $result[0] . "\">$user</a>!
    ";
    echo "</td></tr>";



    Il problema (che non è grave) è che quando la gif ha lo sfondo trasparente e dimensioni inferiori a 90x90px, l'immagine viene ridimensionata xché getimagesize(); non legge le dimensioni e credo che restituisca 2 valori FALSE (per quasto ho messo OR $larghezza=="" OR $altezza=="").

    Il sito l'ho messo in prova su http://www.supernemo.altervista.org prova a registrarti (anche cn dati fasulli tanto poi il sito lo sposto) loggati e fatti un giro... quello che interessa sn avatar nel menu ::COMMUNITY:: e nei threads del forum
    Non esistono cose che non si possono fare... Esistono solo cose che non si sanno fare!

  9. #9
    Per quanto riguarda il tuo codice mi pare che ci sia un errore x gli escape (si chiamano così?)... Tu scrivi

    echo "<td align='left'>
    <a href='".$_SERVER['PHP_SELF']."?mode=view&photo=".$results['id_photo']."'>

    e così via...
    in realtà quando scrivi un echo""; dovresti mettere il backslash nei tag hatml

    echo "<td align=\\'left\\'><a href='".$_SERVER['PHP_SELF']."?mode=view&photo=".$results['id_photo']."'>

    ecc. ecc. Satai cmq attento a quando chiudi l'echo x mettere le variabili href='".$_SERVER['PHP_SELF']."
    proca ad evitare i punti x unire il codice e scrivere direttamente href=\\'$_SERVER[PHP_SELF]?mode=view&photo=$results[id_photo]\\'>

    io faccio così e a me funziona.. prova tu e vedi se ho detto giusto.
    Non esistono cose che non si possono fare... Esistono solo cose che non si sanno fare!

  10. #10
    ma penso che sia più una scelta stilistica che di funzionamento, provo a correggere il codice come dici tu.

    Ah cmq provo a linkare a qualche amico mio, io neanche uso windows quindi non posso farti le prove con IE :asd:
    Scusa, e di che ti meravigli?
    Secondo te, tra la morte di Gesù e la sua Resurrezione...
    ...chi è stato il "Figlio di Dio ad interim"?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.