- Home
- Categorie
- Coding e Sistemistica
- PHP
- [RISOLTO] Controllo se un dato è necessario
-
[RISOLTO] Controllo se un dato è necessario
Ciao a tutti sarà la primavera... mi sono piantato..
Ho una semplice tabellaID | sezione | presente | cogente |
1 200 No Si
2 200 Si NoRecupero 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...Chi mi aiuta?
Grazie.
-
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.
-
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.
-
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]
-
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.
-
Beh....non so quale dato devi visualizzare, ovvero il valore di quale campo, infatti la mia era una traccia da integrare
-
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!
-
Scusami...quale sarebbe la query 1?
-
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!
-
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]
-
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:
-
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ì.
-
.> * Inizia i messaggi con una maiuscola e termina con un punto.
- Scrivi in italiano corretto.
-
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?
-
.> * Inizia i messaggi con una maiuscola e termina con un punto.
-
.> * Inizia i messaggi con una maiuscola e termina con un punto.
-
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.
-
Esce anora il punto da solo
io, invece avevo scritto un sacco di cose... (gentili)
dove sbaglio?
-
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 .
Per alleggerire la lettura a chi dovrà leggerselo e studiarlo sei pregato di alleggerirlo di quanto non utile al problema riscontrato.
-
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 verdemi 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!:?