PHP Array Daten in MySQL nutzen

Andreasb.

Lt. Junior Grade
Registriert
Jan. 2011
Beiträge
269
Hallo,

ich arbeite an einem kleinen php Script. Es geht darum mehrere Reihen einer MySQL Tabelle mit Hilfe eines HTML Formulars zu bearbeiten.

Dabei sollen einfach in einer Tabelle Checkboxen markiert werden und bei allen Einträgen dieser Felder "status" auf 1 gesetzt werden.

Dazu habe ich zwei Dateien erstellt:


1. Die Tabelle die alle "Accounts" anzeigt und das Formular mit den Checkboxen:

PHP:
<h2>Account Liste</h2>
					<br />
					<form action="user_set.php" method="post">
					<input type="button" value=" alle ausw&auml;hlen "onClick="this.value=check()">
					<input type="submit" value="Rechte &auml;ndern">
						<table "border=1">
							<tr>
								<td>ID:</td>
								<td>Name:</td>
								<td>Status:</td>
								<td>Freischalten:</td>
							</tr>
								<?php
									$sql = mysql_query("SELECT * FROM login ORDER BY id");
									while ($ds = mysql_fetch_object($sql)) {
										$id = $ds -> id;
										$name = $ds -> name;
										$status = $ds -> status;

								?>
							<tr>
								<td><? echo "$id "; ?> </td>
								<td><? echo "$name ";?> </td>
								<td><? echo "$status "; ?> </td>
								<td><? if($status == 0) { ?><input type="checkbox" name="status[]" value="<? echo $id ?>"><? } ?></td>
							</tr>


In der zweiten Datei sollen die Daten aktualisiert werden:

PHP:
<?php
include("");

$uid[] = $_POST['status'];

foreach ($uid as $key => $value)
{
	$query = "UPDATE login SET status = '1' WHERE id = '$value'";
	mysql_query($query);
}
?>


Dabei wird die Datenbank allerdings nicht aktualisiert. Es wird auch keine Fehlermeldung ausgegeben. Ich hoffe es kann mir jemand dabei helfen.
 
Du machst aus $uid implizit ein Array, welches wiederum ein Array hinzufügt. Es sollte also irgendwas wie
Code:
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
            [4] => 5
            [5] => 6
            [6] => 7
            [7] => 8
            [8] => 9
            [9] => 10
        )

)
herauskommen. Mach die eckigen Klammern weg, dann sollte es gehen. So updatest du immer die id "Array".
 
Ich dachte das error reporting is falsch gesetzt..

In Zukunft merk dir wie man sowas debuggt:
var_dump($query);
Dort würdest du dann sehn dass dort steht ... id='array' ...
Und dann kannst du print_r($value) machen, und du siehst was dir da per POST geschickt wird

Und in diesem Fall sicher nicht ganz uninteressant: Wenn eine checkbox nicht "gecheckt" ist, dann wird garnichts übertragen.
 
Von dem Fehler mal abgesehen: echo "$variable"; ? :D Versuchs mal mit echo $variable oder wenn du abenteuerlustig bist mit <?=$variable?>
 
Zurück
Oben