• User Attivo

    [RISOLTO] Controllo se un dato è necessario

    Ciao a tutti sarà la primavera... mi sono piantato..
    Ho una semplice tabella

    ID | sezione | presente | cogente |
    1 200 No Si
    2 200 Si No

    Recupero il $_GET,

    faccio la query:
    [php]$query_Recordset3 = "SELECT * FROM sottosezione WHERE id='$cat' AND Cogente= 'Si' AND Presente = 'No'";
    $Recordset3 = mysql_query($query_Recordset3, $macro) or die(mysql_error());
    $row_Recordset3 = mysql_fetch_assoc($Recordset3);
    $totalRows_Recordset3 = mysql_num_rows($Recordset3);[/php]Stampo con un if:

    [php]<?php
    if ($cog == "Si" && $pre == "No")
    {
    echo "<td width="87" bordercolor="#CCCCCC"><div align="right"><img src="img/no.jpg" width="51" height="18" /></div></td>";
    }
    else
    {
    echo "<td width="87" bordercolor="#CCCCCC"><div align="right"><img src="img/si.jpg" width="51" height="18" /></div></td>";
    }
    ?>[/php]In pratica vorrei che se presente è No e cogente Si stampi un bollino rosso
    else se presente è Si e cogente Si, stampi un bollino verde
    solo sulla riga interessata! Invece me li stampa su tutte le righe indistintamente o tutti rossi o tutti verdi!

    Non riesco a venirne a capo, sicuramente ho toppato l'approccio?
    Eppure mi pare semplice come codice... :arrabbiato:

    Chi mi aiuta?

    Grazie.


  • Consiglio Direttivo

    Ciao linno. 🙂
    Nella query da te postata estrai solo quelli che presentano Cogente = Sì e Presente = No, immagino, pertanto, che ti escano tutti di un solo colore per forza di cose. (img/no.jpg)
    Così per come hai postato il problema il controllo if è inutile dato che dal Db estrai già solo un tipo di dato...inutile quindi effettuare il controllo che verrà, giustamente, sempre verificato. 😉


  • User Attivo

    Grazie Samyorn
    ?! Il fatto è che mi mette il verde su tutti i record anche quelli contrari:
    Cogente = No e Presente = Si
    Mi sono spiegato male...
    Non riesco a scindere i due gruppi, li listo tutti ma non riesco a separarli per mettergli il verde o rosso.


  • Consiglio Direttivo

    Prova così. 🙂
    [php]$query_Recordset3 = "SELECT * FROM sottosezione WHERE id='$cat'";
    $Recordset3 = mysql_query($query_Recordset3, $macro) or die(mysql_error());
    while ($array=mysql_fetch_array($Recordset3))
    {
    $col="";
    if ($array['Cogente']== "Si" && $array['Presente']=="No")
    {
    $col="no.jpg";
    }
    else
    {
    $col="si.jpg";
    }
    echo "<td width="87" bordercolor="#CCCCCC"><div align="right"><img src="img/".$col."" width="51" height="18" /></div></td>";
    }[/php]


  • User Attivo

    Ciao Samyorn,
    ci siamo quasi...
    Grazie dell'aiuto. Ho provato, funziona, ma li mette tutti in "orizzontale" sul primo risultato, ossia io so che dalla query i risultati sono 6, ma fa vedere solo il risultato rosso cogente si - presente no e non gli altri 5, ma VISUALIZZA 5 VERDI E 1 ROSSO nella riga stampata!
    La strada è giusta serve solo un'altra spintarella di aiuto.


  • Consiglio Direttivo

    Beh....non so quale dato devi visualizzare, ovvero il valore di quale campo, infatti la mia era una traccia da integrare 🙂


  • User Attivo

    Si ok.
    Il fatto è :

    con la query 1 visualizzo 6 risultati;
    con la query 3 voglio far apparire il bollino verde o rosso nei risultati listati della query 1.

    E' qui che mi perdo....

    Se uso nel while la query 1 mi lista solo il risultato rosso, se uso la query 3 insieme all 1 mi lista tutti e 6 i risultati ma mette i bollini verdi(4) e rosso(1) tutti nel primo risultato.
    Tra_l'altro i bollini sono 5! Devo usare count()?
    Thanks!


  • Consiglio Direttivo

    Scusami...quale sarebbe la query 1? 😄


  • User Attivo

    In realtà la query 1 è questa:

    [php]mysql_select_db($database_macro, $macro);
    $query_Recordset1 = "SELECT * FROM sottosezione WHERE id_sezione='$cat' ORDER BY Sottosezione ASC";
    $Recordset1 = mysql_query($query_Recordset1, $macro) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);[/php] E ora mi rendo conto che è praticamente uguale alla 3.

    [php]mysql_select_db($database_macro, $macro);
    $query_Recordset3 = "SELECT * FROM sottosezione WHERE id_sezione='$cat'";
    $Recordset3 = mysql_query($query_Recordset3, $macro) or die(mysql_error());[/php]Ora .. se uso la 1 lista perfettamente i risultati (tot 6) e se aggiungo la 3 (con il tuo codice) mi mette 4 verdi e 1 rosso (tot 5) so di avere grossi limiti... ma gli array non partono da 0? qui è come se partisse da 1. e, sopratutto mi mette tutti gli array sul primo risultato in "orizzontale" e non su ogni record come vorrei.

    Grazie ancora! 😮


  • Consiglio Direttivo

    Faresti una prova così, inserendo eventuali altri campi che ti interessa estrarre? 🙂
    [PHP]<table border="1">
    <?
    mysql_select_db($database_macro, $macro);
    $query_Recordset1 = "SELECT * FROM sottosezione WHERE id_sezione='$cat' ORDER BY Sottosezione ASC";
    $Recordset1 = mysql_query($query_Recordset1, $macro) or die(mysql_error());
    while ($array=mysql_fetch_array($Recordset1))
    {
    $col="";
    if ($array['Cogente']== "Si" && $array['Presente']=="No")
    {
    $col="no.jpg";
    }
    else
    {
    $col="si.jpg";
    }
    echo "<tr><td width="87" bordercolor="#CCCCCC"><div align="right"><img src="img/".$col."" width="51" height="18" /></div></td></tr>";
    }
    ?>
    </table> [/PHP]


  • User Attivo

    Ecco.. mi sono perso, sono mediamente un niubbione e i maledetti array sono come il 'to do' delle lezioni d'inglese... mai digeriti... sono ancora a fare andare io uomo buono...
    Allora bando alle ciance, ora mi esce il risultato in verticale ma solo dopo il primo risultato.
    Ecco una vista:

    [...]

    Mi rendo conto che non riesco a capire alcune logiche e passaggi.... :bho::bho::fumato:


  • Consiglio Direttivo

    Sarebbe molto più utile vedere il codice che hai creato. 🙂

    P.S. Come da regolamento non è permesso inserire riferimenti a risorse proprie, ti invito anche ad attenzionare la scrittura. Ci teniamo quì. 😉


  • User Attivo

    .> * Inizia i messaggi con una maiuscola e termina con un punto.

    • Scrivi in italiano corretto.

  • Super User

    Ciao linno, ti sono stati editati tutti i post dal ModSenior, sempre per gli stessi motivi.

    C'è qualche problema a seguire il regolamento, e quindi a postare in modo corretto?


  • User Attivo

    .> * Inizia i messaggi con una maiuscola e termina con un punto.


  • User Attivo

    .> * Inizia i messaggi con una maiuscola e termina con un punto.


  • User Attivo

    Il sito di appoggio è quello di mio padre artista e non più fra noi... non pensavo fosse pubblicità...
    Come faccio a postare il codice?

    Grazie.


  • User Attivo

    Esce anora il punto da solo
    io, invece avevo scritto un sacco di cose... (gentili)
    dove sbaglio?

    :sbav:


  • Consiglio Direttivo

    Linno, come avrai potuto notare ho dovuto editare dal tuo primo all'ultimo post di questa discussione per mancanza di maiuscole ad inizio frase, punteggiatura ed altro.
    Rileggendoli vedrai le modifiche in rosso e nel campo di modifica la motivazione dell'edit.

    Come puoi ben leggere sulla textarea di risposta al thread, e come previsto dal regolamento del Forum, ci teniamo a che gli utenti scrivano in maniera corretta, iniziando le frasi con la maiuscola e terminando con un punto, evitando lo stile dei telefonini (tvb, cmq, nn, qst, ect. etc.) ed altro.
    Ci teniamo per vari motivi:

    • rispetto per chi ci legge;
    • motori di ricerca;
    • tenere il forum "pulito ed in ordine".

    Spero che adesso ti sia tutto più chiaro. 🙂

    Se deciderai di continuare a postare sul Forum GT ti invitiamo a rispettare queste semplicissime regole.

    Venendo al problema, per inserire lo script ti basta metterlo tra i tags [php ] [/php], nell'editor avanzato è questo tasto image.
    Per alleggerire la lettura a chi dovrà leggerselo e studiarlo sei pregato di alleggerirlo di quanto non utile al problema riscontrato. 😉


  • User Attivo

    Ok
    non capivo
    ora è chiaro
    scusa, sarà la stanchezza...inserisco il codice
    query:
    [PHP]mysql_select_db($database_macro, $macro);
    $query_Recordset1 = "SELECT * FROM sottosezione WHERE id_sezione='$cat'";
    $Recordset1 = mysql_query($query_Recordset1, $macro) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);[/PHP]
    result:
    [PHP]
    <th width="422" bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="col"><div align="left"></div></th>
    <th width="50" bordercolor="#90CA48" bgcolor="#FFFFFF" class="Stile45" scope="col"><a href="#" class="Stile48" onclick="PopupCentrata('dati_det.php?record_ID=<?php echo $row_Recordset1['Id_sottosezione']; ?>')">Dettaglio</a></th>
    <th width="50" bordercolor="#90CA48" bgcolor="#FFFFFF" scope="col"><span class="Stile49"><a href="ins_mask.php">Inserisci</a></span></span></th>
    <th width="44" bordercolor="#90CA48" bgcolor="#FFFFFF" cope="col"><a href="#" class="Stile50" onclick="PopupCentrata('dati_mod.php?record_ID=<?php echo $row_Recordset1['Id_sottosezione']; ?>')">Modifica</a><a href="index.php" class="Stile45"></a></th>
    <th width="49" bordercolor="#90CA48" bgcolor="#FFFFFF" scope="col"><a href="elimina.php?id=<?php echo $row_Recordset1['Id_sottosezione']; ?>" class="Stile45">Elimina</a></th>
    <th width="44" bordercolor="#90CA48" bgcolor="#FFFFFF" scope="col"><a href="index.php" class="Stile51">Esci</a></th>
    </tr>
    </table></td>
    </tr>
    <tr bgcolor="#FFFFFF">
    <?php $file=$row_Recordset1['Documento'];
    $est = strtolower(substr($file, strrpos($file, "."), strlen($file)-strrpos($file, ".")));
    $est1 = strtolower(substr($file, strrpos($file, "."), strlen($file)-strrpos($file, ".")));
    $est2 = strtolower(substr($file, strrpos($file, "."), strlen($file)-strrpos($file, "."))); ?>
    <td width="115" bgcolor="#F7F7F7" class="Stile20">
    <div class="body">
    <?php
    $limit=22;
    $txt=$row_Recordset1['Sottosezione'];
    $conta=strlen($txt);
    if ($conta>$limit)
    {
    echo "<p class="msg_head">".substr($txt,0,$limit),"...</p>";
    }
    else
    {
    echo substr($txt,0,$limit);
    }
    ?>
    <div class="msg_body"><?php echo $row_Recordset1['Sottosezione']; ?><span class="Stile38"></span></div></td>
    <td width="127" bgcolor="#F8F8F8" class="Stile20"><div align="center"><span class="Stile38">
    <?php if($est==".doc")
    {
    echo "<a href="docs/".$file."" target="_blank"><img src="img/doc.gif" border="0"></a>";
    }
    elseif ($est==".pdf")
    {
    echo "<a href="docs/".$file."" target="_blank"><img src="img/pdf.gif" border="0"></a>";
    }
    elseif ($est==".dwg")
    {
    echo "<a href="docs/".$file."" target="_blank"><img src="dwg.gif" border="0"></a>";
    }
    elseif ($est=="")
    {
    echo "<img src="img/000.gif" border="0"></a>";
    } ?></span></div></td>
    <td width="119" bgcolor="#F7F7F7" class="Stile20"><div align="center"><span class="Stile38"><?php echo $row_Recordset1['Presente']; ?></span></div></td>
    <td width="102" bgcolor="#F7F7F7" class="Stile20"><div align="center"><span class="Stile38"><?php echo $row_Recordset1['Cogente']; ?></span></div></td>
    <td width="51" bgcolor="#F7F7F7" class="Stile20"><div align="center"><span class="Stile38"><?php echo $row_Recordset1['Dinamico']; ?></span></div> </td>
    <td width="51" bgcolor="#F7F7F7" class="Stile20"><div align="center"><span class="Stile38"><?php echo $row_Recordset1['Verifica']; ?></span></div></td>
    <?php
    while ($array=mysql_fetch_array($Recordset1))
    {
    $col="";
    if ($array['Cogente']== "Si" && $array['Presente']=="No")
    {
    $col="no.jpg";
    }
    else
    {
    $col="si.jpg";
    }
    echo "<tr><td width="87" bordercolor="#CCCCCC"><div align="right"><img src="img/".$col."" width="51" height="18" /></div></td></tr>";
    }
    ?>
    </tr>
    <tr bgcolor="#FFFFFF">
    <td height="10" colspan="8" bgcolor="#FFFFFF"></td>
    </tr>
    <tr bgcolor="#FFFFFF">
    <td height="2" colspan="8" bgcolor="#90CA48"></td>
    </tr>
    </table>[/PHP]

    spero non pesi troppo
    il concetto è:
    devo listare (6) risultati
    a questi mi piacerebbe inserire un controllo:
    cogente = Si presente = No
    se cogente = si e presente = no echo bollino rosso
    se cogente = si e presente = si echo bollino verde

    mi sa che mi sono incasinato, ergo vorrei un listato dei record che rilascino bollino rosso o verde a seconda della condizione
    thanks!.
    Il mio limite?
    gli array!:?