Spalten per Formular auswählen

Alles, was PHP betrifft, kann hier besprochen werden.

Spalten per Formular auswählen

Postby donsimon1991 » 27. May 2007 16:02

Ich möchte mithilfe von Checkboxen in einem Formular dem User ermöglichen, die Spalten auszuwählen, die er anschließend in einer anderen Datei in Form einer Tabelle sehen kann.

Die Werte der Tabelle hole ich mir aus MySQL-Tabellen.

Es sollen nur die Werte angezeigt werden, die in den Spalten vorkommen, die der User ausgewählt hat.

Code: Select all
...
$dataresult = mysql_query("SELECT;

if(isset($_POST["check1"]))
  $dataresult .= check1, ;
...


Wie kann ich herausfinden, wie viele Kontrollkästchen ausgewählt wurden?
Das ist wichtig, schließlich weiss ich sonst nicht, wo die Anführungsstriche oben und die geschlossene Klammer hin müssen.
donsimon1991
 
Posts: 18
Joined: 15. February 2007 15:46
Location: Hamburg

Postby KingCrunch » 27. May 2007 21:51

Dein geposteter Code ergibt keinen Sinn. Und so ganz folgen kann ich dir auch nicht -.-
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby donsimon1991 » 29. May 2007 10:51

Ich habe ein Formulat mit Checkboxen.

( Kommst du noch mit? )

Wenn man den Mauszeiger auf so eine Checkbox bewegt, dann kann

man da Häkchen machen.

Diesen Vorgang nennt man auswählen.

( Sag einfach bescheid, wenn du etwas nicht verstehst. )

Ausserdem habe ich ein Select-Menü, mit dem ich einer der Tabellen

aus meiner Datenbank auswählen kann.

Dieses Formular schicke ich dann an eine andere PHP-Datei.

In dieser PHP-Datei erscheinen alle Inhalte aus der Tabelle, die ich

vorher, in der Start-Datei ausgewählt hatte.

Es sollen aber nur die Spalten angezeigt werden, die ich in der Start-Datei

ausgewählt hatte.
donsimon1991
 
Posts: 18
Joined: 15. February 2007 15:46
Location: Hamburg

Postby Rene Knapp » 29. May 2007 14:09

Warum überprüfst du nicht zuerst einfach ob die Checkbox ausgewählt wurde.
Code: Select all
....
<input type="checkbox" name="table[0]" value="tablename1">
<input type="checkbox" name="table[1]" value="tablename2">
<input type="checkbox" name="table[2]" value="tablename3">
....
// n...Tables
<?php
....
$t=0;
for ($i=0;$i<=n;$i++)
{
      if (isset($_POST[table][$i]]))
         {
         $Table_get[$t]=$_POST[table][$i];
          $t++;
          }
}
....
?>


So und jetzt lässt du einfach alles ausgeben.
Code: Select all

$mysql_host='localhost';
$mysql_user='root';
$mysql_password='';
for ($ni=0;$ni<$t,$ni++)
{
$table_val=$Table_get[$ni];
$db=mysql_connect($mysql_host,$mysql_user,$mysql_password);

mysql_select_db("database");
$inquiry="SELECT * FROM $table_val";
........
//Ausgabe.....
}

Ich denk so müsste es gehen...

Wie deine Tabellenkonstellation jetzt aussieht, weiß ich natürlich auch nicht. Außerdem find ich, dass dein Post schon sehr eigenartig formuliert wurde. (da muss ich KingCrunch recht geben)
Vielleicht zeigst du uns ja ein paar Code-beispiele?
User avatar
Rene Knapp
 
Posts: 37
Joined: 26. September 2006 14:17

Postby KingCrunch » 29. May 2007 21:30

Insofern möchte ich auch gerne erwähnen, dass ein sarkastisches Kontra nicht unbedingt einer Antwort förderlich ist!
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby donsimon1991 » 22. June 2007 20:14

index.php:
Code: Select all
<?php
if(isset($_POST["lernen"]))
  include "zeigen.php";
 
else if(isset($_POST["testen"]))
  include "testen.php";
 

else { 
?>
<html>
<head>
<title>Französische Verben und deren Formen</title>
<style type="text/css">
table, tr, td { padding-top:10px; padding-bottom:10px; }
td {  }

.keinrahmen { border:1px solid gray; }
</style>
</head>
<body>
Bitte wählen Sie ein Verb aus.
<p>
<form action="index.php" method="POST">
<table border="1" width="100%">
<?php
mysql_connect("localhost", "root", "pipapo");
mysql_select_db("franzverben");

// Felder ermitteln
$fdresult = mysql_list_fields("franzverben", "avoir");

// Anzahl der Felder ermitteln
$numfds = mysql_num_fields($fdresult);

// Namen der Felder
echo "<tr>\n";
echo "<td rowspan='2' align='center'>";
// 2.Liste der Tabellen der aktuellen Datenbank
$tabresult = mysql_list_tables("franzverben");

// 3.Anzahl der Tabellen
$numtabs = mysql_num_rows($tabresult);

// 4.Schleife über alle Tabellen
echo "<select name='infinitiv'>\n";
for($t=0; $t<$numtabs; $t++)
{
  // 5.Name der Tabelle
  $tabname = mysql_result($tabresult,$t);
 
  echo "<option>$tabname</option>\n";
}
echo "</select></td>\n";


for($f=1; $f<$numfds; $f++)
{
  $fdname[$f] = mysql_field_name ($fdresult, $f);
  echo "  <td>\n";
  echo "    <input type='checkbox' name='$fdname[$f]' value='$fdname[$f]'>$fdname[$f]\n";
  echo "  </td>\n";
}
echo "\n</tr>\n";

echo "<tr align='center' valign='middle'>\n";
echo "<div class='keinrahmen'>\n";
echo "<td colspan='4'>\n";
echo "<input type='submit' name='lernen' value='Lernen/Üben'>\n";

echo "</td><td colspan='4'>\n";
echo "  <input type='submit' name='testen' value='Testen lassen'>\n";
echo "</td></div></tr>\n";
?>
</table>
</form>
</body>
</html>
<?php
}
?>



zeigen.php:
Code: Select all
<html>
<head>
<?php
echo "<title>Französische Verben -" . $_POST["infinitiv"] . "</title>";
?>
<style type="text/css">
a { width:100%; text-align:center; }

a:link    { color:#00FF00; background-color:blue; text-decoration:none; font-weight:bold; }
a:visited { color:#00FF00; background-color:blue; text-decoration:none; font-weight:bold; }
a:hover   { color:blue; background-color:#00FF00; text-decoration:none; font-weight:bold; }

</style>
</head>
<body>

<?php
$tabelle = $_POST["infinitiv"];

echo "<h1 align='center'>$tabelle</h1>";
echo "<table border width='100%'>";

mysql_connect("localhost", "root", "pipapo");
mysql_select_db("franzverben");

$dataresult = mysql_query("SELECT
                              *
                           FROM
                              $tabelle");

$fdresult = mysql_list_fields("franzverben", $tabelle);                             

$numdata = mysql_num_rows($dataresult);

$numfds = mysql_num_fields($fdresult);

// Array für personen definieren
$person = array("je/j'", "tu", "il/elle/on", "nous", "vous", "ils/elles");

// Tabellenüberschriften
echo "<tr>\n<th>Person</th>";
for($f=0; $f<$numfds; $f++)
{
  $fdname[$f] = mysql_field_name($fdresult, $f);
  echo "<th>$fdname[$f]</th>";
}

echo "\n</tr>";

for($i=0; $i<$numdata; $i++)
{
  echo "<tr>\n";
  echo "<th>$person[$i]</th>";
    for($f=0; $f<$numfds; $f++)
    {
      $data = mysql_result($dataresult, $i, $fdname[$f]);
      echo "<td>$data</td>";
    }
 
  echo "</tr>\n";
}
?>
</table>
<p>
<a href="index.php">Zurück</a>
</p>
</body>
</html>





edit: Ich wollte zuerst keine Codes posten, weil sie ersten sehr lang sind und zweitens vieles von meinem eigentlichen Problem ablenkt.
donsimon1991
 
Posts: 18
Joined: 15. February 2007 15:46
Location: Hamburg

Postby donsimon1991 » 22. June 2007 20:19

Wenn ihr mir sagt, wie man Bilder hochladen kann, dann kann ich auch noch ein paar Screenshots zeigen.

Das macht man ja nich mit [img], oder?
donsimon1991
 
Posts: 18
Joined: 15. February 2007 15:46
Location: Hamburg

Postby Rene Knapp » 23. June 2007 20:37

@ donsimon1991
Ja es ist wirklich nicht sinnvoll einfach nur so einen Code zu posten, ohne irgendwelcher Erklärung. :wink:

Ich hab doch schon mal was gepostet, oder hat es nicht geholfen??....
Und wenn ja: Wo lag das Problem?
User avatar
Rene Knapp
 
Posts: 37
Joined: 26. September 2006 14:17

Postby donsimon1991 » 24. June 2007 16:00

Rene Knapp wrote:@ donsimon1991
Ja es ist wirklich nicht sinnvoll einfach nur so einen Code zu posten, ohne irgendwelcher Erklärung. :wink:

Ich hab doch schon mal was gepostet, oder hat es nicht geholfen??....
Und wenn ja: Wo lag das Problem?



Das Problem ist, dass ich nicht deine Antwort verstehe.
Schreib doch einfach so ausführlich und in der Art und Weise wie ich, dann müsste ich es schon verstehen :wink:
donsimon1991
 
Posts: 18
Joined: 15. February 2007 15:46
Location: Hamburg

Postby Rene Knapp » 25. June 2007 13:38

donsimon1991 wrote:
Rene Knapp wrote:@ donsimon1991
Ja es ist wirklich nicht sinnvoll einfach nur so einen Code zu posten, ohne irgendwelcher Erklärung. :wink:

Ich hab doch schon mal was gepostet, oder hat es nicht geholfen??....
Und wenn ja: Wo lag das Problem?



Das Problem ist, dass ich nicht deine Antwort verstehe.
Schreib doch einfach so ausführlich und in der Art und Weise wie ich, dann müsste ich es schon verstehen :wink:


WAS!! :shock:

Ich hab keine ahnung was du eigentlich willst......
Sollen wir dir leicht dein projekt programmieren, überleg doch selbst ein bisschen ....
Wenn du nicht schreiben kannst was du nicht verstehst, dann brauchst du auch nicht zu erwarten, dass man dir helfen kann.
User avatar
Rene Knapp
 
Posts: 37
Joined: 26. September 2006 14:17


Return to PHP

Who is online

Users browsing this forum: No registered users and 15 guests