PDA

View Full Version : [PHP] Problema di "ragionamento" ... [ci sto impazzendo!!]


PhoEniX-VooDoo
24-07-2008, 15:28
Ciao ragazzi, devo creare un modo per ottenere dinamicamente una query nel seguente modo:


Nel Database c'e una grossa tabella che tra i vari campi contente anche (semplificando): campo1, campo2, campo3, campo4, campo5, campo6, campo7

Io devo riuscire in php a creare una query cosė composta:

Select bla bla bla && campo1 || campo2 || campo3 || campo4 || campo5 || campo6 || campo7 = 'yes'

il problema sono gli || che non trovo un modo dinamico per generarli, poichč i campi (1..7) sono scelti in base a delle checkbox e possono essere selezionati tutti, solo uno, solo alcuni...

:muro: :muro:

k8__
24-07-2008, 16:03
Mi posteresti il codice del form?
Le checkbox selezionate devono essere minimo 1?

Fammi Sapere.

PhoEniX-VooDoo
24-07-2008, 16:27
Mi posteresti il codice del form?
Le checkbox selezionate devono essere minimo 1?

Fammi Sapere.


il form con le checkbox


<form action="searchex.php" method="post">

<table align="center" class="stats">
<tr>

<td><input type="checkbox" value="1" name="c1">Campo1</td>
<td><input type="checkbox" value="1" name="c2">Campo2</td>
<td><input type="checkbox" value="1" name="c3">Campo3</td>
<td><input type="checkbox" value="1" name="c4">Campo4</td>
<td><input type="checkbox" value="1" name="c5">Campo5</td>
<td><input type="checkbox" value="1" name="c6">Campo5</td>
<td><input type="checkbox" value="1" name="c7">Campo7</td>
<td><input type="submit" value="OK" name="button"></td>
</tr>
</table>

</form>



Le checkbox possono essere selezionate tutte, come nessuna (fanno parte di un modulo di ricerca).

k8__
24-07-2008, 18:45
Dimmi se č ok

<?php
$query = "SELECT * FROM `tabella`";
$i=0;
foreach($_POST as $dato => $valore){
if(preg_match("/^c([0-9])$/",$dato)){
if($i == 0){
$query.="WHERE $dato == 'yes'";
} else {
$query.=" || WHERE $dato == 'yes'";
}
}
$i++;
}
$query.=";";
echo $query;
?>

Ciao

-MiStO-
25-07-2008, 09:12
non conosco php quindi non posso essere specifico ma, intuitivamente, potresti costruirti la stringa della query dinamicamente
controlli il valore della checkbox e se attivata aggiungi il "pezzetto" di query correlato
tipo
query = "select blabla"
if checkbox1 then query = query & "where campo1 = 'ok' " e cosė via...

alla fine hai la query completa da eseguire :)

k8__
25-07-2008, 16:24
non conosco php quindi non posso essere specifico ma, intuitivamente, potresti costruirti la stringa della query dinamicamente
controlli il valore della checkbox e se attivata aggiungi il "pezzetto" di query correlato
tipo
query = "select blabla"
if checkbox1 then query = query & "where campo1 = 'ok' " e cosė via...

alla fine hai la query completa da eseguire :)
Esattamente. :)

PhoEniX-VooDoo
25-07-2008, 18:15
Grazie infinite a tutti ;)

Infatti ieri sera poco prima di staccare ho avuto il "lampo" e intravvisto la soluzione, schematizzando ho fatto in modo che un determinato campo controllase se di quelli che lo precedono almeno uno sia attivo/settato; se si stampavo '|| Campo n' altrimenti solo 'Campo n'.
Chiaramente per il primo ho fatto solo il controllo, se attivo stampa 'Campo 1' senno nulla.

Certe volte delle cose ti sembrano impossibili, poi ci arrivi in un attimo... :p


Grazie cmq a tutti, sempre pronti a dare una mano ;)


Bye!