Zelfde waarde bij while
Nakain - 12/01/2007 02:15 (laatste wijziging 13/01/2007 00:14)
Onbekend
Hoi..
Betere titel kon ik ni verzinne
Duuuus..
Ik heb een pagina, waarop ik gegevens uit een database haal, dit door middel van een while-loop. Op elke rij heb ik een knop gezet 'Veranderen' en 'Verwijderen'. Als je op 'Veranderen' of 'Verwijderen' klikt, is het de bedoeling dat het enkel de gevraagde rij wijzigt of verwijderd. Dit doet hij dus niet, wanneer ik op 'Veranderen' klik verwerkt hij de gegevens, maar verder gebeurd er niets, ook geen error. Als ik de meegestuurde waarden echo dan krijg ik de gegevens van de laatste rij te zien, dus het moet gebeuren voor er gesubmit word.. Iemand een idee?
<?
$query= mysql_query("SELECT * FROM table WHERE unit='$obj->unit' ORDER BY username ASC, date DESC, time DESC") or die(mysql_error());
while ($get = mysql_fetch_object($query)) {
$status = $get->status;
$username = $get->username;
$level = $get->level;
?>
<tr>
<td width="30%"><a href="../profile.php?pd=<? echo $get->pid; ?>"><? echo $username; ?></a></td>
<td width="30%">
<input type="hidden" name="get_pid" value="<? echo $get->pid; ?>">
<input type="hidden" name="get_level" value="<? echo $level; ?>">
<input class="button" type="submit" name="update" value="Verander" /> <input class="button" type="submit" name="delete" value="Verwijder" />
</td>
</tr>
<?
}
?>
<?
$query = mysql_query ( "SELECT * FROM table WHERE unit='$obj->unit ' ORDER BY username ASC, date DESC, time DESC" ) or
die ( mysql_error ( ) ) ; $status = $get -> status ;
$username = $get -> username ;
$level = $get -> level ;
?>
<tr>
<td width="30%"><a href="../profile.php?pd=
<? echo $get -> pid ; ?> ">
<? echo $username ; ?> </a></td>
<td width="30%">
<input type="hidden" name="get_pid" value="
<? echo $get -> pid ; ?> ">
<input type="hidden" name="get_level" value="
<? echo $level ; ?> ">
<input class="button" type="submit" name="update" value="Verander" /> <input class="button" type="submit" name="delete" value="Verwijder" />
</td>
</tr>
<?
}
?>
14 antwoorden
Gesponsorde links
Kr4nKz1n - 12/01/2007 09:15
Onbekend
Ik zou het niet weten zo vroeg op de ochtend.
Want het is normaal dat hij de laatste pakt want je noemt ze allemaal get_pid, get_level en de knoppen heten allemaal update en delete.
Abbas - 12/01/2007 09:34
Crew .NET
ik denk dat je query verkeerd is...
<?
$query = mysql_query("SELECT * FROM table WHERE unit='" . $obj->unit . "' ...
<?
$query = mysql_query ( "SELECT * FROM table WHERE unit='" . $obj -> unit . "' ...
Ik kan me ook vergissen natuurlijk
Xan - 12/01/2007 09:43 (laatste wijziging 12/01/2007 09:45)
HTML interesse
Ik heb even wat voor je bedacht:
<?
$query= mysql_query("SELECT * FROM table WHERE unit='$obj->unit' ORDER BY username ASC, date DESC, time DESC") or die(mysql_error());
$records = mysql_num_rows($query);
for($i = 1; $i <= $records; $i++){
if(IsSet($_POST['update'.$i])){
echo $i.'word gewijzigd <br />';
}elseif(IsSet($_POST['delete'.$i])){
echo $i.'word delete <br />';
}
}
while ($get = mysql_fetch_object($query)) {
$status = $get->status;
$username = $get->username;
$level = $get->level;
$id = $get->id;
?>
<tr>
<td width="30%"><a href="../profile.php?pd=<? echo $get->pid; ?>"><? echo $username; ?></a></td>
<td width="30%">
<form method="post" action="">
<input type="hidden" name="get_pid" value="<? echo $get->pid; ?>" />
<input type="hidden" name="get_level" value="<? echo $level; ?>" />
<input class="button" type="submit" name="update<?=$id;?>" value="update<?=$id;?>" />
<input class="button" type="submit" name="delete<?=$id;?>" value="delete<?=$id;?>" />
</form>
</td>
</tr>
<?
}
?>
<?
$query = mysql_query ( "SELECT * FROM table WHERE unit='$obj->unit ' ORDER BY username ASC, date DESC, time DESC" ) or
die ( mysql_error ( ) ) ;
for ( $i = 1 ; $i <= $records ; $i ++ ) {
if ( IsSet ( $_POST [ 'update' . $i ] ) ) {
echo $i . 'word gewijzigd <br />' ;
} elseif ( IsSet ( $_POST [ 'delete' . $i ] ) ) {
echo $i . 'word delete <br />' ; }
}
$status = $get -> status ;
$username = $get -> username ;
$level = $get -> level ;
$id = $get -> id ;
?>
<tr>
<td width="30%"><a href="../profile.php?pd=
<? echo $get -> pid ; ?> ">
<? echo $username ; ?> </a></td>
<td width="30%">
<form method="post" action="">
<input type="hidden" name="get_pid" value="
<? echo $get -> pid ; ?> " />
<input type="hidden" name="get_level" value="
<? echo $level ; ?> " />
<input class="button" type="submit" name="update<?= $id ; ?> " value="update<?= $id ; ?> " />
<input class="button" type="submit" name="delete<?= $id ; ?> " value="delete<?= $id ; ?> " />
</form>
</td>
</tr>
<?
}
?>
Ik hoop dat je het begrijpt, en dat je er wat mee kan.
Je moet hem nog wel zelf even verder uitwerken.
xSc - 12/01/2007 09:52
Onbekend
Gebruik ipv mysql_fetch_object() de functie mysql_fetch_assoc(). Die is veel sneller.
Xan - 12/01/2007 09:57
HTML interesse
Ja dat weet ik, maar hij had het zo al in zijn voorbeeld staan.
Xan - 12/01/2007 10:24
HTML interesse
code...
Nakain - 12/01/2007 10:47 (laatste wijziging 13/01/2007 00:15)
Onbekend
<?
$query= mysql_query("SELECT * FROM member WHERE unit='" . $obj->unit . "' ORDER BY username ASC, date DESC, time DESC") or die(mysql_error());
$records = mysql_num_rows($query);
for($i = 1; $i <= $records; $i++){
if(IsSet($_POST['update'.$i])){
echo $i.'word gewijzigd <br />';
}elseif(IsSet($_POST['delete'.$i])){
echo $i.'word delete <br />';
}
}
while ($get = mysql_fetch_object($query)) {
$status = $get->status;
$username = $get->username;
$level = $get->level;
$pid = $get->pid;
?>
<tr>
<td width="30%"><a href="../profile.php?pd=<? echo $get->pid; ?>"><? echo $username; ?></a></td>
<td width="30%">
<input type="hidden" name="get_pid" value="<? echo $pid; ?>">
<input type="hidden" name="get_level" value="<? echo $level; ?>">
<input class="button" type="submit" name="update<?=$pid;?>" value="Verander" /> <input class="button" type="submit" name="delete<?=$pid;?>" value="Verwijder" />
</td>
</tr>
<?
$query = mysql_query ( "SELECT * FROM member WHERE unit='" . $obj -> unit . "' ORDER BY username ASC, date DESC, time DESC" ) or
die ( mysql_error ( ) ) ;
for ( $i = 1 ; $i <= $records ; $i ++ ) {
if ( IsSet ( $_POST [ 'update' . $i ] ) ) {
echo $i . 'word gewijzigd <br />' ;
} elseif ( IsSet ( $_POST [ 'delete' . $i ] ) ) {
echo $i . 'word delete <br />' ; }
}
$status = $get -> status ;
$username = $get -> username ;
$level = $get -> level ;
$pid = $get -> pid ;
?>
<tr>
<td width="30%"><a href="../profile.php?pd=
<? echo $get -> pid ; ?> ">
<? echo $username ; ?> </a></td>
<td width="30%">
<input type="hidden" name="get_pid" value="
<? echo $pid ; ?> ">
<input type="hidden" name="get_level" value="
<? echo $level ; ?> ">
<input class="button" type="submit" name="update<?= $pid ; ?> " value="Verander" /> <input class="button" type="submit" name="delete<?= $pid ; ?> " value="Verwijder" />
</td>
</tr>
Heb het ook al op een andere manier geprobeerd, gebaseerd op jou code, maar deze gaf hetzelfde weer..
Kr4nKz1n - 12/01/2007 11:07
Onbekend
Gebruik de post`s niet zo !!
<?
$query= mysql_query("SELECT * FROM member WHERE unit='" . $obj->unit . "' ORDER BY username ASC, date DESC, time DESC") or die(mysql_error());
$records = mysql_num_rows($query);
for($i = 1; $i <= $records; $i++){
if(IsSet($_POST['update'][$i])){
echo $i.'word gewijzigd <br />';
}elseif(IsSet($_POST['delete'][$i])){
echo $i.'word delete <br />';
}
}
while ($get = mysql_fetch_object($query)) {
$status = $get->status;
$username = $get->username;
$level = $get->level;
$pid = $get->pid;
?>
<tr>
<td width="30%"><a href="../profile.php?pd=<? echo $get->pid; ?>"><? echo $username; ?></a></td>
<td width="30%">
<input type="hidden" name="get_pid" value="<? echo $pid; ?>">
<input type="hidden" name="get_level" value="<? echo $level; ?>">
<input class="button" type="submit" name="update[<?=$pid;?>]" value="Verander" /> <input class="button" type="submit" name="delete[<?=$pid;?>]" value="Verwijder" />
</td>
</tr>
<?
$query = mysql_query ( "SELECT * FROM member WHERE unit='" . $obj -> unit . "' ORDER BY username ASC, date DESC, time DESC" ) or
die ( mysql_error ( ) ) ;
for ( $i = 1 ; $i <= $records ; $i ++ ) {
if ( IsSet ( $_POST [ 'update' ] [ $i ] ) ) {
echo $i . 'word gewijzigd <br />' ;
} elseif ( IsSet ( $_POST [ 'delete' ] [ $i ] ) ) {
echo $i . 'word delete <br />' ; }
}
$status = $get -> status ;
$username = $get -> username ;
$level = $get -> level ;
$pid = $get -> pid ;
?>
<tr>
<td width="30%"><a href="../profile.php?pd=
<? echo $get -> pid ; ?> ">
<? echo $username ; ?> </a></td>
<td width="30%">
<input type="hidden" name="get_pid" value="
<? echo $pid ; ?> ">
<input type="hidden" name="get_level" value="
<? echo $level ; ?> ">
<input class="button" type="submit" name="update[<?= $pid ; ?> ]" value="Verander" /> <input class="button" type="submit" name="delete[<?= $pid ; ?> ]" value="Verwijder" />
</td>
</tr>
Dan zo.
Nakain - 12/01/2007 11:13
Onbekend
Blijft hetzelfde..
Kr4nKz1n - 12/01/2007 11:25
Onbekend
Ja ik heb hem alleen netter gemaakt.
<?
$query= mysql_query("SELECT * FROM member WHERE unit='" . $obj->unit . "' ORDER BY username ASC, date DESC, time DESC") or die(mysql_error());
$records = mysql_num_rows($query);
?>
<?
$query = mysql_query ( "SELECT * FROM member WHERE unit='" . $obj -> unit . "' ORDER BY username ASC, date DESC, time DESC" ) or
die ( mysql_error ( ) ) ; ?>
Dit is ook erg slordig en dan die for-loop erna. Als je 35 regels hebt, krijg je dus 1 t/m 35, terwijl er ondertussen al 3 berichten zijn verwijdert, dus het id loopt t/m 38.
Kr4nKz1n - 12/01/2007 12:05 (laatste wijziging 12/01/2007 12:06)
Onbekend
<input type="button" value="Verwijder" onClick="window.location='.php?pagina=verwijder&id=<? echo $get->pid; ?>'">
<input type="button" value="Wijzig" onClick="window.location='.php?pagina=wijzig&id=<? echo $get->pid; ?>'">
<input type="button" value="Verwijder" onClick="window.location='.php?pagina=verwijder&id=
<? echo $get -> pid ; ?> '">
<input type="button" value="Wijzig" onClick="window.location='.php?pagina=wijzig&id=
<? echo $get -> pid ; ?> '">
Maak links van buttons.
Gesponsorde links
Dit onderwerp is gesloten .