Webdesign in Siegen

dynamische Variablen, Checkboxen aus MySQL-Tabelle = Problem

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

dynamische Variablen, Checkboxen aus MySQL-Tabelle = Problem

Beitragvon Dac-XP am 10.09.2005, 20:15

Hi!

Also... Die Situation ist Folgende:
Ich stehe tierisch unter Stress, mache Führerschein, Fachabitur, Browsergame und diverse Andere Homepageprojekte und Programmierarbeten auch noch.
Und jetzt hat es mir doch das Gehirn weggesemmelt...

Ich möchte beim Browsergame eine Benutzerliste mit vorrangestellter Checkbox haben

[X] Benutzername
[X] Benutzername
[X] Benutzername

So... Dann möchte ich im nachfolgendem Script die markierten Bneutzer löschen.

Wie muss ich jetzt die Checkboxen bennen (wahrscheinliche die Bneutzer-ID) und kann die nachher auch wieder auslesen?

Irgendwann hatte ich die Lösung mal im Kopf, kann sie aber nichtmehr rekonstruieren.

Ich hoffe, hier kann einem total fertigem geholfen werden. :cry:

MfG Dac! :wink:
Benutzeravatar
Dac-XP
Mitglied
 
Beiträge: 1943
Registriert: 23.06.2005, 19:47
Wohnort: Mönchengladbach / NRW

Beitragvon Manuel am 10.09.2005, 20:31

Hi Dac!

Ich weiss nicht ob es der beste Weg ist, aber ich würde das so machen:

Jeder Checkbox dynamisch einen Namen geben. (Check1 usw.)
Danach schickst du das Script ab an die gleiche Datei wieder nur nun mit Variablen die du mit POST/GET übergibst.

Beispiel: user.php?del1=5&del2=12

5 steht dann einfach für Check5. Zu dieser Checkbox suchst du dir dann einfach den passenden Namen raus und löschst diesen Eintrag in der Datenbank.
Das machst du dann so lange bis keine Variablen mehr übergeben werden...sonst könnte ich es mir noch vorstellen, dass du die einfach in ein Array alle reinschreibst und das dann übergibst.

Löschen weisst du?
Sonst hier: http://www.dynamic-webpages.de/50.tutor ... torialID=8

Lg,
Manuel ;-]
Benutzeravatar
Manuel
Site Admin
 
Beiträge: 9205
Registriert: 10.12.2004, 19:29
Wohnort: Asbach

Beitragvon Dac-XP am 11.09.2005, 08:10

Hi!

Löschen, erstellen usw... sind kein Problem, ich möchte nur im nachfolgendem Script wissen, welche Ich zu löschen habe.

Leider war deins auch nicht so hilfreich, weil das anschließende Script ja gar nicht weiß, wie die Variablen heißen. Und wie das mit dem Array funktionieren soll ist mir auch rätselhaft. Weil irgendwie wird die Funktionsweise des Arrays überall anders beschrieben.

Ich brauche aber trotzdem jeden Variablennamen einzelnd.

Hier mal ein kleines Codebeispiel, wie ich die Checkboxen generiere:

Code: Alles auswählen
<?php
  $query = "SELECT usr_id, usr_name FROM user";
  $erg = mysql_query($query);

  while($obj = mysql_fetch_object($erg))
    {
      echo "<input type='checkbox' name='$obj->usr_id' /> $obj->usr_name <br>";
    }

?>


So, das ist der grobe Code (ohne Sicherheitsabfragen und Sortierungen usw...).
Ich möchte einfach im nachfolgendem Script wissen, welcher Benutzer mit einem Häkchen versehen wurde.

Ich bedanke mich schon mal für einen Hilfeversuch!

MfG Dac! :wink:
Benutzeravatar
Dac-XP
Mitglied
 
Beiträge: 1943
Registriert: 23.06.2005, 19:47
Wohnort: Mönchengladbach / NRW

Beitragvon Paddy am 11.09.2005, 08:21

Also der Ansatz mit den Benutzer id's als Namen für die Checkbox ist gut.
Und dann hast du mehrere Möglichkeiten.Ich geh mal davon aus dein Formular benutzt method=post.

1. du durch läufst die ganze mysql Tabelle und machst dann ne Fallunterscheidung

Code: Alles auswählen
$result = mysql_query("SELECT id, user FROM Tabellenname");
while($row=mysql_fetch_assoc($result)){     //Schleife durch die mysql Tabelle
      $aktuelleid = $row['id'];
      if(isset($_POST[$aktuelleid]){                    //ist die checkbox makiert
      myscql_query("DELETE FROM Tabellenname WHERE id = $aktuelleid");
      }
}


2. Du kannst natürlich auch mit ner Schleife durch die Checkboxids laufen. Dafür musst du dir aber die ids aus dem Formular merken (Eher umständliche Möglichkeit, aber schneller bei einer riesigen Anzahl von Benutzern)

und es gibt bestimmt noch mehr Möglichkeiten die sind aber alle irgendwie Abwandlungen von den beiden

Gruß Paddy
Benutzeravatar
Paddy
Mitglied
 
Beiträge: 89
Registriert: 23.01.2005, 18:01
Wohnort: Mendig

Beitragvon Malte am 11.09.2005, 16:14

Zu dem code hab ich was ähnliches wie Paddy:


<?php
$query = "SELECT usr_id, usr_name FROM user";
$erg = mysql_query($query);

while($obj = mysql_fetch_object($erg))
{
echo "<input type='checkbox' value='delete_me' name='CHECK$obj->usr_id' /> $obj->usr_name <br>";
}

?>


<?php
$query = "SELECT usr_id, usr_name FROM user";
$erg = mysql_query($query);

while($obj = mysql_fetch_object($erg))
{
$check = $_POST["CHECK".$obj->usr_id];
If ($check == "delete_me") {
mysql_query("DELETE FROM `users` WHERE `usr_id` = '".$obj->usr_id."'");
}
}

?>
[x] <<< Nail here for new Monitor
Benutzeravatar
Malte
Mitglied
 
Beiträge: 365
Registriert: 01.04.2005, 10:27
Wohnort: Zuhause

Beitragvon Dac-XP am 12.09.2005, 15:30

Hi!

Also danke für eure Antworten! Ich werde es jetz mal mit der Methode von Paddy versuchen.

Irgendwie logisch, und deprimierend, dass ich nicht selbst draufgekommen bin. Leider ist diese Methode aber auch langsam. bei über 10.000 Datensätzen kann das etwas dauern. Da müsste ich mir noch etwas anderes überlegen.

Vielleicht eine Art Zwischen-Relay, umd die Daten zu Puffern und alle gesamt zu synchronisieren...

Auf jeden Fall danke für die Hilfe!

MfG Dac! :wink:
Benutzeravatar
Dac-XP
Mitglied
 
Beiträge: 1943
Registriert: 23.06.2005, 19:47
Wohnort: Mönchengladbach / NRW

Beitragvon Paddy am 12.09.2005, 22:48

Hi hab ja gesagt das du dir bei größeren Datensätzen, lieber die id's durchgehst! Ich denk mal du wirst ja in deiner Liste wo man Benutzer löschen kann nicht alle Benutzer aus deine Datenbank dann drin haben oder?

Also ich würd mir dann irgendwie ein array machen, in dem die ids die mit checkbox anzuwählen sind speichern und die dann in ner Schleife durchlaufen, anstatt der ganzen Datenbank.

Gruß Paddy
Benutzeravatar
Paddy
Mitglied
 
Beiträge: 89
Registriert: 23.01.2005, 18:01
Wohnort: Mendig

Beitragvon Dac-XP am 13.09.2005, 11:39

Habe jetzt sowieso die IDverwendet, klappt ausgezeichnet!
Eigentlich war die Lösung ja auch ganz logisch...

Auf jeden Fall bedanke ich mich

MfG Dac! :wink:
Benutzeravatar
Dac-XP
Mitglied
 
Beiträge: 1943
Registriert: 23.06.2005, 19:47
Wohnort: Mönchengladbach / NRW

Beitragvon Rene am 13.09.2005, 16:36

Wäre toll wenn du dein Code noch für andere Nutzer die nicht so weit sind hier posten könntest.
;)

lg
Bild
Rene
Mitglied
 
Beiträge: 1188
Registriert: 28.02.2005, 20:10
Wohnort: nähe Ravensburg

Beitragvon Dac-XP am 13.09.2005, 17:32

mhh, ich erstell einfach mal ein komplettes Beispielprogramm, um der Community einen Gefallen zu tun (ein Newsscript oder so)

Was wäre euch denn recht?

MfG Dac! :wink:
Benutzeravatar
Dac-XP
Mitglied
 
Beiträge: 1943
Registriert: 23.06.2005, 19:47
Wohnort: Mönchengladbach / NRW

Beitragvon Rene am 13.09.2005, 18:58

Ähm nen Newsscript haben wir doch ;)

Ne mir gings einfach um die Lösung von dir.
Passend zu dem Thread wenn einer das mal durchliest.
Vielleicht werd auch ich noch was lernen.

Drum sollte man immer seine Endlösungen posten

lg
Bild
Rene
Mitglied
 
Beiträge: 1188
Registriert: 28.02.2005, 20:10
Wohnort: nähe Ravensburg


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast