Flashhilfe.de - Flash Community

mySQL, datensätze über formular markieren

 


AntwortenRegistrieren Seite1  

wuestner#1
Benutzerbild von wuestner
Beiträge: 21
Registriert: Nov 2004

16.02.2008, 12:38

hallo ich habe folgendes problem bzw. vorhaben
also ich habe die seite 1 in der ich über eine while schleife alle datensätze auslese die einen bestimmten wert beinhalten, diese stelle ich in eine tabelle mit einer checkbox:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form action="root.php4" method="post">
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
PHP:
1
2
3
4
5
<? 
&nbsp; &nbsp;$query = <font color="#009900">"SELECT guestid,titel,nachname,vorname,zeitraum,appartement,personen,sonstiges FROM guests WHERE zeitraum LIKE '%-%' ORDER BY zeitraum"</font>;
&
nbsp; &nbsp;$result mysql_query($query);
&
nbsp; &nbsp;<font color="#0000FF">while</font>($row mysql_fetch_array($result))&nbsp; { echo&nbsp?>

  <tr>
    <td class="tabeline" width="58"><input name="auswahl" type="checkbox" class="form" id="auswahl" value="<? echo $row["guestid"] ?>" />
&nbsp;</td>
    <td class="tabeline" width="192"><strong><? echo $row["zeitraum"] ?></strong></td>
    <td class="tabeline" width="320"><strong><? echo $row["titel"]." ".$row["nachname"]." ".$row["vorname"]; ?></strong></td>
    <td class="tabeline" width="465"><? echo $row["appartement"] ?></td>
    <td class="tabeline" width="124" align="right"><? echo $row["sonstiges"] ?></td>
    <td class="tabeline" width="124" align="right"><? echo $row["personen"] ?></td>
  </tr>
 
PHP:
1
2
<? ;}&nbsp?>

</table>
<p>
  <input name="sessid" type="hidden" id="sessid" value="<? echo $sess ?>" />
  <input name="cat" type="hidden" id="cat" value="plan_edit" />
  <input class="form" type="submit" name="button" id="button" value="weiter" />
</p>
</form>


gut das funktioniert auch, bei der 2. seite sollen jetzt nur noch die markierten datensätze von seite 1 nochmals aufgezählt werden
und da steck ich fest, weil ich keine ahnung habe wie ich das anstelle, ich werde wahrscheinlich wie auf der 1. seite die datenbank öffnen mit den gleichen bedingungen (weil ichs ja so will), aber wie kann ich jetzt nur die markierten anzeigen.
in der ersten seite hat die checkbox wenn sie markeriert ist immer den wert $row["guestid"], der jeweils bei dem datensatz drinnen ist, über diesen wert möcht ich jetzt in der 2. seite beschränken!
kann mir da jemand helfen oder ist es schon kompliziert mein anliegen zu verstehen??

danke ulrich
Geändert von wuestner am 16.02.08 um 12:40 Uhr
vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

17.02.2008, 13:46

Hey wuestner,

also so wie ich das Verstanden hab ist dein ziel eine Auswahlseite zu erstellen, wenn man dann eine Auswahl mittles Checkbox gemacht hat, wier nur noch dieser Wert angezeigt.

Ich wirds so machen:
Du bekommst ja über deine Checkbock die "guest_id" übermittelt - welche hoffentlich einmalig in deiner db vorkommt. Auf der 2. Seite liest du die DB einfach nochmal aus - und zwar nur den gewünschten Datensatz.
PHP:
1
2
3
4
<?
SELECT guestid
,titel,nachname,vorname,zeitraum,appartement,personen,sonstiges FROM guests WHERE  guestid auswahl;
?>

Damit liest du nur die Zeile aus in der die "guestid" den Wert der vorher markierten checkbox hat..

Ich hoffe ich konnte weiterhelfen.

lg

public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
wuestner#3
Benutzerbild von wuestner
Beiträge: 21
Registriert: Nov 2004

Themenautor/in

17.02.2008, 13:49

ja so mein ichs, jedoch kann ich bei der 1. seite auch mehrere markieren und dann müssen event. mehrere aufgerufen werden muss ich dann das select nochmals machen, aber in einer while schleife??

vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

17.02.2008, 15:42

ach hab ich übersehen, dass du ne mehrfachauswahl hast.
Also wie dus jetzt hast, wird ja immer nur das zulatzt markierte Feld übertragen.
Also ich würde auf deiner 1. Seite die Checkboxen durchnummerieren. Sprich

<input type="checkbox" name="<?php echo auswahl[$count] ?>" value="<? echo $row["guestid"] ?>" />
und $count immer erhöhen.

Dann erhälts du auf der 2. Seite nen Array mit allen Markierungen - also die nummer mit der guestid.
den Array dann durchzählen:
$zaehl = count($auswahl);
und neu sortieren, damit nichtausgewählte elemente weg sind.
sort($auswahl);
und dann ne while schleife, in der du dann so oft wie die checkbox ausgewählt wurde die Daten auflistet!
Hab das ganze mal zusammengeschrieben:

2. Seite:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
print_r 
($auswahl);
$zaehl count($auswahl); // Anzahl der ausgew&auml;hlten eigenschaften
sort($auswahl); // Array neusortieren
$u 0;
while (
$u <= $zaehl) {
[..]
SELECT guestid,titel,nachname,vorname,zeitraum,appartement,personen,sonstiges FROM guests WHERE  guestid $auswahl[$u];
[..]
$u++;
}
?>
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Geändert von vindel am 17.02.08 um 15:42 Uhr
wuestner#5
Benutzerbild von wuestner
Beiträge: 21
Registriert: Nov 2004

Themenautor/in

17.02.2008, 17:08

ja genau das hab ich gemeint, habe es jetzt auch schon ziemlich geschafft, nur hängt es am schluss jeweils den min. und max. wert nochmals mit einer fehlermeldung dran

ActionScript:
1
2
Notice</b>:  Undefined offset:  4 in <b>/var/*/plan_edit.php4</b> on line <b>24</b>

<b>Notice</b>:  Undefined offset:  1 in <b>/var/*/
on line <b>28</b>


da habe ich z.b. 4 checkboxen ausgewählt, wenn ich z.b. 3 auswähle dann steht statt 4 halt 3!
weiß nicht an was das liegt, geht da die schleife weiter?

vindel#6
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

17.02.2008, 17:34

das pasiert wenn du vergisst wann du von 0 anfängst zu Zählen und wann von 1.
Also auf der 2. Seite wird oben durch "sort" die Nummerierung neu geschrieben - also bei 3 ausgewählten Optionen hast du dann 0,1 und 2.
Also iwo wird da mit dem "echten" (also von 1) gerechnet und woanders mit 0.. ich denke in der Bedingung der While schleife liegt ein Fehler..
sonst schick doch einfach den script / die stelle mal rüber
gruß

public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
wuestner#7
Benutzerbild von wuestner
Beiträge: 21
Registriert: Nov 2004

Themenautor/in

17.02.2008, 17:53

hat es etwas damit zu tun, dass ich auf der ersten seite einfach nur auswahl[] als checkboxname genommen habe und nicht dein php vorschlag?

seite2

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    <? 
    $auswahl 
$_POST['auswahl'];
   
$zaehl count($auswahl); 
   
sort($auswahl); 
   
$u 0
    while (
$u <= $zaehl) { 
       
$query "SELECT guestid,titel,nachname,vorname,zeitraum,appartement,personen,sonstiges FROM guests WHERE guestid LIKE '$auswahl[$u]' ORDER BY zeitraum";
       
$result mysql_query($query);
       
$row mysql_fetch_array($result);   
       
$dates explode(" - "$row["zeitraum"]);
 echo 
"[SPALTEA]<b>".$dates[0]."</b>[SPALTE]".$row["titel"]." ".$row["nachname"]." ".$row["vorname"]."[SPALTE]".str_replace("\n","",$row["sonstiges"])."<br>Personenanzahl: ".$row["personen"]."[SPALTE]".$row["appartement"]."[SPALTE]".$dates[1]."[SPALTEE]\n[GUESTEND]\n"
         
$u++;
    } 
?>


vindel#8
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

17.02.2008, 18:05

Also im Namen muss natürlich noch eine Variable sein mit einer Zahl - damit die Auswahl "durchnummeriert" wird. Aber ich dachte es läuft bis auf die letzte Auswahl? oder Zeigt er gar keine an?
Hier mein Test Script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
//Das ist Seite 2
$auswahl $_POST['auswahl'];
if(!empty(
$auswahl)) {
 
$zaehl count($auswahl);
 
sort($auswahl);
 
$u 0;
 while (
$u <= $zaehl) {
  echo 
"$auswahl[$u] <br>";
 
$u++;
  }
 }
?>

<?php
//Das ist Seite 1
$counter 1;
?>

<form action="?self" method="post">
<input name="<?php echo "auswahl[$counter]"?>" type="checkbox" class="form" id="auswahl" value="Auswahl 1" /><br>
<?php $counter++; ?>
<input name="<?php echo "auswahl[$counter]"?>" type="checkbox" class="form" id="auswahl" value="Auswahl 2" /><br>
<?php $counter++; ?>
<input name="<?php echo "auswahl[$counter]"?>" type="checkbox" class="form" id="auswahl" value="Auswahl 3" /><br>
<?php $counter++; ?>
<input name="<?php echo "auswahl[$counter]"?>" type="checkbox" class="form" id="auswahl" value="Auswahl 4" /><br>
<?php $counter++; ?>
<input name="<?php echo "auswahl[$counter]"?>" type="checkbox" class="form" id="auswahl" value="Auswahl 5" /><br>
<input type="Submit" name="machen" value="Zeigen">
</form>


Noch eine Frage: Die Guestid - was ist die - bzw worauf bezieht die sich.
Da der Array durch "sort()" alphabetisch geordnen wird.. evtl. musst due das durch rsort() oder so ersetzen..

public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
wuestner#9
Benutzerbild von wuestner
Beiträge: 21
Registriert: Nov 2004

Themenautor/in

17.02.2008, 18:33

also es zeigt mir die ausgewählten schon an, nur darunter kommen die zwei fehlerzeilen und eine nicht ausgefüllte (die ich vorher gepostet habe), das hat sich jetzt auch nicht geändert, habs auch mit rsort probiert
die guestid ist ein timestamp der in der db gespeichert ist

also es schaut zum beispiel so aus, wenn ich zb. zwei ausgewählt habe:

ActionScript:
1
2
3
4
5
6
7
8
9
10
[SPALTEA]<b>11.11.1111</b>[SPALTE]Wuester Ulrich[SPALTE]test[SPALTE]testapp[SPALTE]11.11.1111[SPALTEE]
[GUESTEND] <!-- ausgewählte Zeite 1 -->

[SPALTEA]<b>11.11.1111</b>[SPALTE]Test Susanne[SPALTE]text[SPALTE]testapp[SPALTE]22.22.2222[SPALTEE]
[GUESTEND] <!-- ausgewählte Zeite 2 -->

<b>Notice</b>:  Undefined offset:  2 in <b>/var/*/plan_edit.php4</b> on line <b>29</b>
<b>Notice</b>:  Undefined offset:  1 in <b>/var/*/
on line <b>33</b> <!-- Fehler -->
[SPALTEA]<b></b>[SPALTE]  [SPALTE] [SPALTE][SPALTE][SPALTEE]
[GUESTEND] <!-- leere Zeite -->


danke für deine hilfe
Geändert von wuestner am 17.02.08 um 18:34 Uhr
vindel#10
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

17.02.2008, 18:44

Also es liegt definitiv daran, dass du auf einenwert zugreifen willst, den es überhaupt nihct gibt - wie ich schon oben vermutet habe..
siehe: http://www.php-fehlermeldungen.de/topic32.html
schau doch mal in den gegebenen Zeilen (29, 33) deiner datei nach was da steht und inwiefern er beim Zählen einen Fehler machen könnte..

public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
wuestner#11
Benutzerbild von wuestner
Beiträge: 21
Registriert: Nov 2004

Themenautor/in

18.02.2008, 12:50

habs geschafft hab $u<=$zaehl durch $u<$zaehl ersetzt!

viel dank für deine hilfe


AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de