Warum kostenlos registrieren?

Nur als registriertes Mitglied hast Du vollen Zugriff auf alle Funktionen unserer Website. So kannst Du eigene Fragen stellen und hast die volle Übersicht über neue interessante Themen im Forum.
Jetzt kostenlos registrieren.

Login


T_String

Fragen oder Probleme mit HTML, PHP oder CSS?

Beitragvon nicky777 am 08.06.2006, 20:10

Jo mir ist auch schon aufgefallen, dass das hier nen bisschen komisch ist aber ich probiers jetzt mal und geb gleich rückmeldung.
Aber ich bin halt ein sehr schwer von Begriff seiender Kerl und unser Lehrer hat uns nie was über die Unterschiede erzählt...
cya
David

PS: Wenn wer für bekloppt gehalten wird, dann ich :P :P :P
nicky777
 
Beiträge: 495
Registriert: 02.12.2004, 17:37
Wohnort: Siegen


Beitragvon nicky777 am 08.06.2006, 20:16

Bin jetzt sogar schon so weit, dass er erkennt welches der Badwords angeklickt ist.
Jetzt nurnoch die Frage- ich habe folgende Zeile:

Code: Alles auswählen
<input type=\"Checkbox\" name=\"badword_loeschen[]\" value=\"$arr_row[ID]\">


Hake ich nun die Checkbox an- wird dann $arr_row[ID] in den Index des Arrays badword_loeschen[] geschrieben oder in die eigentliche Variable?
nicky777
 
Beiträge: 495
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon dragonl am 08.06.2006, 21:09

Tja, jetzt wirds komplizierter !
<input>'s dürfen niemals den selben namen habe !
Warum nicht ?
Besipiel:
Code: Alles auswählen
<form action="auswerten.php" method="GET">
  <input name="badword_loeschen" value="boeseswort1">
  <input name="badword_loeschen" value="boeseswort2">
  <input name="badword_loeschen" value="boeseswort3">
</form>

Du hattest "badword_loeschen[]" ich erinner wieder an dein "ö", keine SONDERZEICHEN ! Wir sind hier ja jetzt bei HTML und nicht mehr bei PHP, daher ist "[" und "]" ein Sonderzeichen.
Wir wissen ja auch, das Daten aus einem Formular (<form>) als eine art String (?badword_loeschen=badwort1&badword_loeschen=badwort2&badword_loeschen=badwort3) an das verarbeitende Dokument (action="auswerten.php") übertragen (method="GET") werden.

Das verarbeitende Dokument greift nun mit $_GET['badword_loeschen'] auf einen Variable zu, aber auf welche den ??? Richtig, das weiss nur ein/e Hellseher/in !
DESHALB müssen <input>'s verschiedene Namen haben !

Des weiteren hat ein <input> vom type="Checkbox" kein Elemnt namen "value", warum auch, entweder es ist gecheckt (true) oder nicht (false).
Dementsprechend muss es ungefähr voldermaßen aussehen:
Code: Alles auswählen
<form action="auswerten.php" method="GET">
  <input name="badword_loeschen1">
  <input name="badword_loeschen2">
  <input name="badword_loeschen3">
<!-- oder -->
  <input name="badword_1">
  <input name="badword_2">
  <input name="badword_3">
<!-- oder -->
  <input name="badword_id_1">
  <input name="badword_id_2">
  <input name="badword_id_3">
<!-- oder ähnlich -->
</form>

hier wird dan folgendes (bei keiner gecheckten box) übertragen:
"?badword_loeschen1=false&badword_loeschen2=false&badword_loeschen3=false&badword_1=false&badword_2=false&badword_3=false&badword_id_1=false&badword_id_2=false&badword_id_3=false"


HMM... mir scheint das es dir bzw. evtl.der ganzen Klasse noch einiges an Grundwissen über HTML fehlt.
Sorry, nix gegen dich Persönlich, aber euch dan schon was in PHP-schreiben zulassen ist irgendwo schon Verantwortungslos.

http://de.selfhtml.org <-- dort kanst du alles über HTML erfahren.
Da habe ich mein bescheidenes Wissen unter anderrem auch her, und ich hatte keinen Lehrer für sowas ;)

MfG
Dragonl

PS. Wünsche dir trotzalledem viel Erfolg :)
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon nicky777 am 08.06.2006, 21:19

Unser Lehrer hat gemeint wir sollten, da Inputs echt nicht die selben Namen haben dürfen einfach ein Array benutzen:

<input type=\"Checkbox\" name=\"badword_loeschen[]\" value=\"$arr_row[ID]\">


Jedes Mal wenn eine Checkbox angeklickt wird, wird ein neues Arrayelemnt erstellt- bzw $arr_row[ID] wird in ein Element von badword_loeschen[] geschrieben.

Später wenns an die Funktion des löschens geht sollten wir wie folgt vorgehen:

Code: Alles auswählen
$conn = sqlconnect();
    foreach($badword_loeschen as $key)
    {
        $str_sql="DELETE FROM badwords WHERE 'ID' = '$key'";
        $result = mysql_query($str_sql);

    }


Hier wird nun das array durchlaufen und überall, wo die ID $key entspricht wird das badword gelöscht.
Und $key ist ja nix anderes als die ID.

Nur leider weiß ich nicht genau, wie ich das bewerkstelligen soll- mit deiner Methode könnte man dann ja garnicht beliebig viele Badwords einlesen und löschen...
nicky777
 
Beiträge: 495
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon dragonl am 08.06.2006, 21:49

OKAY ! Tut mir leid ! War mein Fehler !
Ehrlich, hätte nicht gedacht das das funktioniert, aber mein Testergebniss sacht was anderres :)

Ich habe folgendes Testscript verwendet:
Code: Alles auswählen
<html>
  <head>
    <title>htmlarray</title>
  </head>
  <body>
 
    <form action="" method="GET">
      bad1<input type="checkbox" name="bad_array[]" value="bad1" />
      bad2<input type="checkbox" name="bad_array[]" value="bad2" />
      bad3<input type="checkbox" name="bad_array[]" value="bad3" />
      bad4<input type="checkbox" name="bad_array[]" value="bad4" />
      <input type="submit" value="Speichern" />
    </form>
   
    <?php
      foreach($_GET['bad_array'] as $bad_word){
              echo $bad_word.'<br>';
              }
    ?>
 
  </body>
</html>

Und es hat die Wörter ausgegeben die ich gecheckt hatte, verblüffend. Danke, wieder was gelernt :D

So, mit diesem Testscript sollte dan auch deine Frage beantwortet werden können:
Hake ich nun die Checkbox an- wird dann $arr_row[ID] in den Index des Arrays badword_loeschen[] geschrieben oder in die eigentliche Variable?

Übertragen werden die Werte alle einzelnd also ?badword_loeschen[]=wort1&badword_loeschen[]=wort2&badwo......
$_GET['badword_loeschen'] ist dan aber ein Array welches die einzelnen Wörter enthält und kann von deiner foreach-Schleife verarbeitet werden.

MfG
Dragonl

PS. noch mal tschuldigung, vieleicht wäre ein lehrer doch etwas von vorteil :) *fg* MfG

EDIT:
Ups, ich habe da wat falsch verstanden !
Der Wert von "$arr_row['ID']" wird in das value="" geschrieben wenn die Ausgabe der entsprechenden Zeile über PHP (echo) läuft.
z.B.: echo "<input... ...value=\"$arr_row['ID']\">";
Richtig !
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon nicky777 am 08.06.2006, 22:09

Naja- also wenn du dir dein bisheriges Wissen selbst bei gebracht hast verdient das schon Respekt.
Ich denk ich hätte das nicht geschafft aber mein Lehrer hilft uns auch leider nicht sonderlich viel.
Ich habe nun das komplette Programm so geschrieben, dass es keine Fehler mehr gibt und theoretisch müssten alle angehakten Wörter aus der Datenbank verschwinden sobald ich auf "Löschen" klicke.
Leider macht er nix- entweder geht jetzt wieder die Pimpfige Fehlersuche los oder es ist was ganz entscheidendes falsch.
Ich denk aber, dass ich bereits sehr nah am Ergebnis bin^^

Code: Alles auswählen
function anzeigen()
  {
    $str_sql = "SELECT * FROM badwords";
    $result = mysql_query($str_sql);
    if(!$result)
    {
       mysql_error();
    }
   echo "<form action=\"badwordfilter.php\" method=\"POST\"><table>";

    while($arr_row = mysql_fetch_array($result))
    {
        echo "<td>$arr_row[mist]</td><td><input type=\"Checkbox\" name=\"badword_loeschen[]\" value=\"$arr_row[ID]\"></td></tr>";
    }

   echo "<tr><td><input type=\"Submit\" name=\"button\" value=\"Loeschen\"></td></tr>";
   echo "</table></form>";


  }

  function badword_loeschen($badword_loeschen)
  {
   $conn = sqlconnect();
    foreach($badword_loeschen as $key)
    {
        $str_sql="DELETE FROM badwords WHERE 'ID' = '$key'";
        $result = mysql_query($str_sql);
    }
    mysql_close($conn);
  }


Selbstverständlich ist das nicht mein Kompletter Code sondern nur das wichtigste :)

PS: Brauchst dich nicht zu entschuldigen- das hier ist ein Forum und wenn jeder Perfekt wäre gäbts sowas ja nicht :wink: :wink:
nicky777
 
Beiträge: 495
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon dragonl am 08.06.2006, 22:29

Benutze mal folgende Funktion:
Code: Alles auswählen
  function badword_loeschen($badword_loeschen)
  {
   echo "####Funktion - badword_loeschen";
   $conn = sqlconnect();
    foreach($badword_loeschen as $key)
    {
        echo "- $key<br>";
        $str_sql="DELETE FROM badwords WHERE 'ID' = '$key'";
        $result = mysql_query($str_sql);
    }
    mysql_close($conn);
  }

Jetzt, sollte einmal beim Aufruf der Funktion ein Text angezeiget werden und jedes zu löschende Wort bzw. die ID.

So kann man auch ganz gut Fehler finden, wenn dan bestimmte $variablen leer sind weil man sich irgendwo vertippt hat, oder ganze Funktionen gar nicht erst aufgerufen werden ect. (Eigenkontrolle).

MfG
Dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon nicky777 am 09.06.2006, 13:27

So etwas habe ich bereits gemacht und wenn ich $key ausgebe gibt er mir immer die ID des jeweils angeklickten wortes aus.
Und das wäre ja auch richtig so- wenn ich beispielsweise dann id:10 und id:11 anklicke gibt er mir diese beiden Zahlen dann auch aus^^
Leider geht das löschen immer noch nicht wo es doch logisch wäre...
cya
David
nicky777
 
Beiträge: 495
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon dragonl am 09.06.2006, 19:06

Hallo nicky777,

versuch mal im SQLstatement die einfachen Anführungszeichen (') um $key herum weg zulassen.
In ID wird ja nur eine Zahl gespeichert und kein String
Code: Alles auswählen
$blubb1=6;
$blubb2="6";
echo (is_string($blubb1)? "string":"kein String"); // Ausgabe: kein string.
echo (is_string($blubb2)? "string":"kein String"); // Ausgabe: string.

Wäre gut möglich das deshalb nix gelöscht wird, wiel einfach keine übereinstimmung der ID und des $key statfindet.
Denn in ID ist ein numerischer Wert und '$key' ist ein String.
num != string

MfG
Dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon nicky777 am 09.06.2006, 22:50

WIE GEIL IST DAS DENN?!!?!?!
ES GEHT!!!
Das Löschen klappt einwandtfrei!
THX!!! :P :P :P
nicky777
 
Beiträge: 495
Registriert: 02.12.2004, 17:37
Wohnort: Siegen

Beitragvon dragonl am 09.06.2006, 23:28

Ach wo, kein Problem :oops:
Das Konzept war ja schließlich von dir !
Ausserdem hat du mir ja auch was beigebracht ;)

Ich wünsch dir noch was und viel Erfolg weiterhin !

MfG
Dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Vorherige

Zurück zu HTML, PHP & Co.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste