MySQL Update, hat jemand eine Idee?

splat

Erfahrenes Mitglied
Hi,

ich komme gerade bei einem sql update nicht mehr weiter, und bevor ich hier noch weiter vor mich hin grübel,
frag ich besser mal hier um Rat.. Also ich habe hier folgende 3 Tabellen:

Code:
events:
id | name
------------------
 1 | Weihnachten
 2 | Geburtstag 
 3 | Ostern     
 4 | Neujahr
 ....


message
id | message   | checkbox
--------------------------
 1 | apfel     | 0
 2 | birne     | 1
 3 | pflaume   | 0
 4 | orange    | 0
 ....


events_messages:
event_id | message_id
--------------------------
 3       | 1
 3       | 2
 2       | 3
 3       | 4
 1       | 5
 ....

Jetzt lasse ich mir das Event der Id 3 mit allen Messages wie folgt anzeigen:

PHP:
$event = mysql_fetch_array(mysql_query("SELECT name FROM events WHERE id = $id")
$qid_messages = mysql_query("SELECT m.id, m.message, m.checkbox FROM message m, events_messages em WHERE em.message_id = m.id AND em.event_id = 3");

Das ganze sieht dann in etwa so aus -> siehe Anhang...


Bis jetzt kann man nur den Namen des Events ändern, und alle Messages die zum löschen markiert sind, werden wie folgt gelöscht:

PHP:
$qid = mysql_query("
UPDATE events SET
  name = '$event[name]'
WHERE id = $id
");

foreach ($frm as $key => $value) {
  if(substr($key, 0, 7) == 'delete_' && $value == 1) {
    mysql_query("
      DELETE FROM events_messages WHERE event_id = '$id'
      AND message_id = '".substr($key, 7)."'
    ");
  }
}

Ich kriege es aber absolut nicht hin, einfach alle Messages komplett mit der Checkbox updaten zu lassen.
Die Sache mit dem löschen ging ja noch, aber ich weiß nicht so recht, wie ich jetzt alle Messages samt Inhalt durchgehen lassen kann..
Das Formular sieht in etwa jetzt so aus... geht das so überhaupt? Oder fange ich da schon komplett falsch an?

HTML:
<table>
  <tr>
    <td>Name:</td>
    <td><input type="text" name="name" value="<?php echo $event['name']; ?>"></td>
  </tr>
  <tr>
    <td>Messages:</td>
    <td>
      <table>
    	<tr>
  	  <td>Remove</td>
	  <td>Message</td>
  	  <td></td>
    	</tr>
    	<?php while ($message = mysql_fetch_object($qid_messages)) { ?>
	  <tr>
  	    <input type="hidden" name="message_id" value="<?php echo $message->id;?>">
	    <td><input type="checkbox" name="delete_<?php echo $message->id;?>"></td>
  	    <td><input type="text" name="message_<?php echo $message->id;?>" value="<?php echo $message->message;?>"></td>
    	    <td><input type="checkbox" name="checkbox_<?php echo $message->id;?>" <?=ischecked($message->checkbox)?>></td>
	  </tr>
	<?php } ?>
	<tr>
  	  <td>&nbsp;</td>
    	  <td><input type="text" name="new_message" value=""></td>
    	  <td><input type="checkbox" name="new_message_checkbox"></td>
    	</tr>
      </table>
    </td>
  </tr>
  <tr>
    <td><input type="submit" value="Save changes"></td>
  </tr>
</table>



Ich hoffe das sind jetzt nicht zu viele Informationen auf einmal.. aber besser zuviel als zu wenig. :)

Gruß, Marc
 

Anhänge

  • 27289attachment.png
    27289attachment.png
    1,8 KB · Aufrufe: 8
Zurück