php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.04.2005, 14:44  
Gast
 
Beiträge: n/a
Standard [Erledigt] Auswertung von Mehrfachauswahllisten

Hi @ll,

ich habe ein Problem mit der Auswertung von Mehrfachauswahllisten.
Ich moechte mit PHP & MySQL eine Auswertung erstellen, in der maximal eine Kombination aller drei Mehrfachauswahllisten zulaessig und moeglich ist. Allerdings weiss ich nicht, wie man dies in PHP und MySQL realisieren kann. Hier der Code des bisherigen Standes der Arbeit:
PHP-Code:
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
<?
        
if (isset($HTTP_POST_VARS['submit']) AND $HTTP_POST_VARS['submit'] == "Abschicken") {
                                       if (isset(
$HTTP_POST_VARS['1'])) {
                                
$bla1 = array();
                                
$bla1 $HTTP_POST_VARS['1'];
                                while (list(
$key$value) = each ($bla1)) {
                                        if (
$key == "0") {
                                                
$a1 $value;
                                        } else {
                                                
$a1 .= " OR Themfeld =".$value;
                                        }
                                }
                        }
                       if (isset(
$HTTP_POST_VARS['2'])) {
                                
$bla2 = array();
                                
$bla2 $HTTP_POST_VARS['2'];
                                while (list(
$key$value) = each ($bla2)) {
                                        if (
$key == "0") {
                                                
$a2 $value;
                                        } else {
                                                
$a2 .= " OR Land =".$value;
                                        }
                                }
                        }
                        if (isset(
$HTTP_POST_VARS['3'])) {
                                
$bla3 = array();
                                
$bla3 $HTTP_POST_VARS['3'];
                                while (list(
$key$value) = each ($bla3)) {
                                        if (
$key == "0") {
                                                
$a3 $value;
                                        } else {
                                                
$a3 .= " OR Thember =".$value;
                                        }
                                }
             }
                }
?>
<form action="komplexe_abfrage.php" method="post">
<table>
<tr>
        <td>
                Themenfelder:

                <select multiple size="4" name="1[]">
                        <option value="92001"> Wirtschaft
                        <option value="92002"> Wissenschaft
                        <option value="92003"> Verwaltung
                        <option value="92004"> Kultur
                </select>
        </td>
        <td>
                L&auml;nder:

                <select multiple size="11" name="2[]">
                        <option value="100000"> Deutschland
                        <option value="100001"> Bulgarien
                        <option value="100002"> Estland
                        <option value="100003"> Lettland
                        <option value="100004"> Litauen
                        <option value="100005"> Polen
                        <option value="100006"> Rum&auml;nien
                        <option value="100007"> Slowakei
                        <option value="100008"> Slowenien
                        <option value="100009"> Tschechien
                        <option value="100010"> Ungarn
                </select>
        </td>
        <td>
                Themenbereiche:

                <select multiple size="22" name="3[]">
                        <option value="91001"> B&uuml;rgerbeziehungen
                        <option value="91002"> Dienstleistungen
                        <option value="91003"> EU-F&ouml;rderprogramme
                        <option value="91004"> Geistes- und Sozialwissenschaften, Geschichte
                        <option value="91005"> Gemeinde, St&auml;dte und Kreispartnerschaften
                        <option value="91006"> Geographie
                        <option value="91007"> Handel
                        <option value="91008"> Handwerk
                        <option value="91009"> Industrie und Produzierendes Gewerbe
                        <option value="91010"> Ingenieurwissenschaften
                        <option value="91011"> Kultur und Kunst
                        <option value="91012"> Kulturwissenschaften
                        <option value="91013"> Land- und Forstwirtschaft
                        <option value="91014"> Naturwissenschaftliche Grundlagenforschung
                        <option value="91015"> Rechtswissenschaften
                        <option value="91016"> Stadt- und Regionalentwicklung / Strukturpolitik
                        <option value="91017"> Tourismus
                        <option value="91018"> Transport und Logistik
                        <option value="91019"> Umweltwissenschaften
                        <option value="91020"> Verwaltung / Fortbildung
                        <option value="91021"> Wirtschaftsf&ouml;rderung
                        <option value="91022"> Wirtschaftswissenschaften
                </select>
        </td>
</tr>
<tr>
        <td>
                <input type="submit" name="submit" value="Abschicken"> <input type="reset">
        </td>
</tr>
</table>
</form>
<table border="0" width="460">
<?
$db 
mysql_connect ($host,$benutzer,$kenn)
or exit (
"Keine Verbindung hergestellt!");
mysql_select_db ("owkn",$db)
or exit (
"Datenbank nicht geöffnet");
$sql4="SELECT
DISTINCT
u.Unternehmen_ID
FROM Unternehmen u
WHERE u.Themfeld = "
.$a1;
$result4=mysql_query($sql4$db);
$autor4=array();
while(
$row4=mysql_fetch_row($result4)){
array_push($autor4$row4);
}
#print_r($autor4);
?>
<? 
for ($i=0;$i<count($autor4);$i++)
{
?>
    <tr>
      <td valign="top" align="left" width="5"></td>
      <td valign="top" align="left" nowrap><h4><? echo "<a href=\"Ergebnis.php?action=Ergebnis&ds_id_u=".$autor4[$i][0]."\">".$autor4[$i][0]."</a>";?></h4></td>
    </tr>
<??>
</table>






<table border="0" width="460">
<?
$db 
mysql_connect ($host,$benutzer,$kenn)
or exit (
"Keine Verbindung hergestellt!");
mysql_select_db ("owkn",$db)
or exit (
"Datenbank nicht geöffnet");
$sql5="SELECT
DISTINCT
w.Wissenschaft_ID
FROM Wissenschaftler w
WHERE w.Themfeld = "
.$a1;
$result5=mysql_query($sql5$db);
$autor5=array();
while(
$row5=mysql_fetch_row($result5)){
array_push($autor5$row5);
}
#print_r($autor5);
?>
<? 
for ($i=0;$i<count($autor5);$i++)
{
?>
    <tr>
      <td valign="top" align="left" width="5"></td>
      <td valign="top" align="left" nowrap><h4><? echo "<a href=\"Ergebnis.php?action=Ergebnis&ds_id_w=".$autor5[$i][0]."\">".$autor5[$i][0]."</a>";?></h4></td>
    </tr>
<??>
</table>






<table border="0" width="460">
<?
$db 
mysql_connect ($host,$benutzer,$kenn)
or exit (
"Keine Verbindung hergestellt!");
mysql_select_db ("owkn",$db)
or exit (
"Datenbank nicht geöffnet");
$sql2="SELECT
DISTINCT
v.Koerpscha_ID
FROM Verwaltung v
WHERE v.Themfeld = "
.$a1;
$result2=mysql_query($sql2$db);
$autor2=array();
while(
$row2=mysql_fetch_row($result2)){
array_push($autor2$row2);
}
#print_r($autor2);
?>
<? 
for ($i=0;$i<count($autor2);$i++)
{
?>
    <tr>
      <td valign="top" align="left" width="5"></td>
      <td valign="top" align="left" nowrap><h4><? echo "<a href=\"Ergebnis.php?action=Ergebnis&ds_id_v=".$autor2[$i][0]."\">".$autor2[$i][0]."</a>";?></h4></td>
    </tr>
<??>
</table>






<table border="0" width="460">
<?
$db 
mysql_connect ($host,$benutzer,$kenn)
or exit (
"Keine Verbindung hergestellt!");
mysql_select_db ("owkn",$db)
or exit (
"Datenbank nicht geöffnet");
$sql="SELECT
DISTINCT
k.Kultur_ID
FROM K_Einr k
WHERE k.Themfeld = "
.$a1;
$result=mysql_query($sql$db);
$autor=array();
while(
$row=mysql_fetch_row($result)){
array_push($autor$row);
}
#print_r($autor);
?>
<? 
for ($i=0;$i<count($autor);$i++)
{
?>
    <tr>
      <td valign="top" align="left" width="5"></td>
      <td valign="top" align="left" nowrap><h4><? echo "<a href=\"Ergebnis.php?action=Ergebnis&ds_id_k=".$autor[$i][0]."\">".$autor[$i][0]."</a>";?></h4></td>
    </tr>
<??>
</table>
</body>
</html>
Die ausschliessliche Auswahl von Themenfeldern funktioniert. Jedoch soll auch eine zusaetzliche oder alleinge Auswahl von Laendern und oder Themenbereichen moeglich sein.

Vielen Dank fuer eure Hilfe!

Gruss, Stefan
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.04.2005, 14:46  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

http://php-faq.de/q/q-formular-select-multiple.html
robo47 ist offline   Mit Zitat antworten
Alt 21.04.2005, 14:58  
Gast
 
Beiträge: n/a
Standard

Sorry, aber ich bezweifle, dass der Tipp wirklich weiterhilft. Schliesslich geht es darum, nicht nur EINE, sondern MEHRERE <select multiple>s zu verarbeiten.
  Mit Zitat antworten
Alt 21.04.2005, 15:01  
Gast
 
Beiträge: n/a
Standard

Waeren evtl. SWITCH-CASE-Abfragen eine Moeglichkeit?
  Mit Zitat antworten
Alt 21.04.2005, 15:10  
Gast
 
Beiträge: n/a
Standard

zuallerst solltest du dir vernünftige variablennamen überlegen, du greifst zwar über das $_POST array darauf zu, aber "3" als variable... nene, das hat kein stil

ansonsten bekommst du ein array mit den selektiereten form-values zurück
  Mit Zitat antworten
Alt 21.04.2005, 15:22  
Gast
 
Beiträge: n/a
Standard

@ hautzi: Ist erledigt, die Variablennamen sind geaendert. Aber das ist leider nicht das wesentliche Problem...
  Mit Zitat antworten
Alt 21.04.2005, 15:30  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

3 multiple selectboxen Namens fld1,fld2,fld3
Dann kannst du dein SQL so zusammensetzen.

PHP-Code:
if (isset($_POST['submit'])) {
  
$flds=Array();
  if (!empty(
$_POST['fld1'])) $flds[]="Feld1 IN ('".implode("','",$_POST['fld1'])."')";
  if (!empty(
$_POST['fld2'])) $flds[]="Feld2 IN ('".implode("','",$_POST['fld2'])."')";
  if (!empty(
$_POST['fld3'])) $flds[]="Feld3 IN ('".implode("','",$_POST['fld3'])."')";
  
$sql "SELECT ... FROM ... ".((empty($flds))?"":" WHERE ".implode(" AND ",$flds));
  echo 
$sql;

Die Umsetzung überlasse ich dir.
DiBo33 ist offline   Mit Zitat antworten
Alt 21.04.2005, 15:49  
Gast
 
Beiträge: n/a
Standard

@DiBo33: Vielen Dank fuer Deinen Tipp!

Allerdings habe ich bei der Konstruktion des SQL-Statements Probleme damit, dass innerhalb der <select>s auf verschiedene SQL-Tabellen zugegriffen wird. Kann ich da auch mit mehreren SQL-Abfragen arbeiten, wie ich es bisher gemacht habe (s. o.)?
  Mit Zitat antworten
Alt 21.04.2005, 15:56  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Why not?

PHP-Code:
$where = ((empty($flds))?"":" WHERE ".implode(" AND ",$flds));
$sql1="SELECT ... FROM Tabelle1 ".$where;
$sql2="SELECT ... FROM Tabelle2 ".$where;
//... 
DiBo33 ist offline   Mit Zitat antworten
Alt 21.04.2005, 16:10  
Gast
 
Beiträge: n/a
Standard

So werden alle Datenbankeintraege aus allen Tabellen auf einmal ausgegeben - allerdings nur, wenn man gar nichts in den <select>-Listen auswaehlt und "submit" drueckt...
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Auswertung erstellen rezix PHP Tipps 2008 5 15.02.2008 17:58
Auswertung von Veranstaltungstabelle maeck PHP Tipps 2006 10 01.11.2006 23:39
Tabelle für einzelne Spieler und Auswertung ChrisV PHP Tipps 2006 5 11.03.2006 21:39
Auswertung einer Pulldownmenus PHP Tipps 2005-2 2 23.10.2005 12:47
Auswertung Server, Hosting und Workstations 4 23.07.2005 15:11
Auswertung von Multiple Select-Listen PHP Tipps 2005-2 4 11.07.2005 17:52
[Erledigt] Auswertung und Uebertragung von Werten in Links PHP Tipps 2005-2 0 15.06.2005 12:12
Schleife in Formular Auswertung DDogg PHP Tipps 2005 2 20.04.2005 15:44
auswertung a la array PHP Tipps 2005 3 18.04.2005 14:08
auswertung checkbox ergibt "array" PHP Tipps 2005 11 08.02.2005 23:50
Fehlermeldung bei SQL Auswertung Datenbanken 8 18.01.2005 16:51
Formularübergab Auswertung mit $name oder mit $_POST['name'] PHP Tipps 2004 1 21.10.2004 21:05
Auswertung mit globalen Variablen duerov PHP Tipps 2004 4 07.09.2004 14:23
checkbox auswertung PHP Tipps 2004 1 31.08.2004 21:08
Smarty Templates + Radio Buttons + Auswertung Transmitter PHP-Fortgeschrittene 0 05.07.2004 18:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select multiple php auswertung, mysql checkboxauswertung, html formular vorlagen mehrfachauswahllisten, aushwahl mit auswertung html, list($name,$value)=each($http_post_vars), php href select liste auswerten, smarty \$http_post_vars[1]\, html mehrfachauswahllisten, mehrfachauswahllisten, http://www.php.de/datenbanken/21665-auswertung-von-mehrfachauswahllisten.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.