10. april 2003 - 16:51Der er
4 kommentarer og 2 løsninger
HASTER:Længere og dynamisk SQL query.. Laves ud fra en masse valg
Hej,
Jeg har et problem med at få sammensat noget kode, som ud fra nogle valg en bruger gør - konstruere en SQL query og viser noget data fra SQL-databasen.
Hele senariet er som flg.
1. Siden laves (dynamsik) og viser en dropdown box hvor man kan vælge "E-mail", "Mobil" eller "Begge". En anden dropdown box hvor man kan vælge "Dreng", "Pige" eller "Begge". Der er også to felter som hedder "fra år" og "til år". 2. På samme side bliver der, dynamisk, lavet en masse checkboxe hvor man kan sætte kryds i som man ønsker det. 3. Når der trykkes send, skal der genereres en SQL sætning som finder de valgte ting frem i en database.
SQL strukturen er som flg.
Tabel: interesser id (int) - Unikt ID navn (varchar) - F.eks. "Hus og Have" webnavn (varchar) - F.eks. "husoghave"
Tabel: profiler id (int) - Unikt ID fornavn (varchar) - F.eks. Thomas efternavn (varchar) - F.eks. Jørgensen kon (varchar) - F.eks. dreng email (varchar) - F.eks. secret@pornohouse.dk mobil (int) - F.eks. 12345678 kode (varchar) - F.eks. ********
Tabel: profilinteresser id (int) - Unikt ID pid (int) - Svare til den tilknyttet profils ID iid (int) - Svare til ID i tabelen interesser har (int) - Er bare 1, kunne undværes - da jeg ikke bruger den (endnu?)
Man skal så kunne søge på f.eks.
Køn: Dreng Født mellem: 1970-1980 Har mobil Interessere sig for: "Hus og Have", "PDA og Mobiltelefoner" samt "Familieøkonomi"
Så skal den lave en liste med alle de profiler som opfylder dette ønske. Hvis man har krydset af at det skal være en uden mobil, må den gerne tage dem med som har en mobil, men skal bare kun skrive e-mail adressen ud på personen... (til brug ved mailingliste etc.)
Håber der er nogle der kan hjælpe, flere point gives gerne!
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
10. april 2003 - 17:31#1
Noget i den stil:
select prof.* from profilinteresser pint, profiler prof, interesser int where prof.kon='Dreng' and (prof.alder<=1970 or prof.alder>=1980) AND mobil IS NOT NULL and pint.pid=prof.id and (int.navn='Hus og Have' OR int.navn='PDA og Mobiltelefoner' OR int.navn='Familieøkonomi') AND pint.iid=int.id
Går ud fra at du har en række kaldet alder i tabellen profiler Går ud fra at standard værdien for mobiltelfons nummer er NULL
Ups ja, alder er med i profiler, det glemte jeg... Din Query ser også ud som jeg cirka havde gættet på den skulle se ud, men;
Jeg skal bruge noget PHP kode, som kan lave den ud fra nogle variabler...
Alle de checkbox'e som bliver vist og som man kan sætte X i, bliver lavet ud fra denne her kode:
$tael = 0; $query = mysql_query("SELECT navn, webnavn, id FROM interesser ORDER BY navn"); while ($row = mysql_fetch_array($query)) { if ($tael == "0") { echo (" <tr>\n"); } elseif ($tael % 3 == "0") { echo (" </tr>\n"); echo (" <tr>\n"); } $id = $row["id"]; $navn = stripslashes($row["navn"]); $webnavn = $row["webnavn"]; echo (" <td width=\"250\" valign=\"top\"><input type=\"checkbox\" name=\"$webnavn\" value=\"$navn\">$navn</td>\n"); $tael++;
Hvis man sætter X i flere boxe så skal der kun vises de profiler, som har et entry i profilinteresser hvor "iid" passer det det "id" som interessen har...
Det skal bruges til at lave en liste over folk som har specielle interesser.
Håber det giver mening?
Synes godt om
Slettet bruger
11. april 2003 - 00:04#3
En lille rettelse til dig så: I den ovenstående løkke: echo (" <td width=\"250\" valign=\"top\"><input type=\"checkbox\" name=\"int_$tael\" value=\"$id\">$navn</td>\n"); Efter løkken: echo '<input type="hidden" value="'.$tael.'" name="intnumber"/>
Hvor du laver dit sql kald... går udfra der postes! $intid = array(); for($i=0;$i<$_POST[intnumber];$i++) { if(isset($_POST["int_$i"]) { $intid[]=$_POST["int_$i"]; } }
$intsql = "(int.id=".implode(" OR int.id=",$intid).")";
Bare lidt alm SELECT med nogle LIKE'er i... Og forinden lidt IF/ELSE hvor den sætter nogle variabler som den skal paste ind i min SQL Query... Det var jo mega nemt, når man lige fik et par dage uden computer og stress...
Grunden til du får point, er pga. din lille rettelse, måske ikke 20 point værd vil nogle sige, men skidt - jeg er mega lykkelig over det virker :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.