Archief - PHP: bleh, tgaat niet zoals het moet

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Dr33tN

Legacy Member
Ik wil dus dat alle records met hetzelfde id, op één rij komen. Dit zijn 6 woorden telkens in een andere taal. Wat ik nu krijg is hetvolgende:
http://users.skynet.be/ph.decramer/fout.jpg
1. Zoals je ziet, wanneer er een taal niet ingevuld is, wordt dat een hele wir-war.
2. Op de eerste rij van mijn tabel zie je een checkbox staan... op z'n eentje dan nog wel... dat is niet de bedoeling.
3. Als ik een rij aanvink en "verwijder" dan verwijdert hij een totaal andere rij.
4. De kleur van de rijen slaan tilt.

Wat het zou moeten zijn:
- Voor welke taal er NIETS ingevuld is, moet de cel leeg gelaten worden.
- de juiste rij moet verwijdert worden.
- juiste rijkleuren gebruiken (afwisselend grijs, wit)

Alvast bedankt! Hier is mijn code:
PHP:
<?php
	session_start();
	if($_SESSION['ingelogd']){
		include("../connect.php");
		$query = mysql_query("SELECT * FROM mainmenu ORDER BY type_id, lang_id");
	  	
?>
<html>
	<head><link rel="stylesheet" type="text/css" href="../style.css"></head>
	<body leftmargin="0" topmargin="0">
		<ul>
		<form action="delete.php?t=mainmenu" method="post">
		<table width="600" class="detail">
		<tr><td>Spaans</td><td>Engels</td><td>Duits</td><td>Frans</td><td>Nederlands</td><td>Russisch</td><td>Selecteer</td></tr>
		<?php
		$prevtype_id = -1;
			while($rij = mysql_fetch_object($query)){
				$i++;
				if($i%2==0){$color = "#FFFFFF";}else{$color = "#F4F4F4";}
				if($rij->type_id != $prevtype_id){
					echo "<td><input type='checkbox' name='delete_id[]' value='".$rij->type_id."'></td><tr bgcolor=".$color."><td><li type='square'>".$rij->mainmenu_text."</li></td>";
					$prevtype_id = $rij->type_id;
				}else{
					echo "<td>".$rij->mainmenu_text."</td>";
				}
			}
		?>
		<tr><td colspan="7">&nbsp;</td></tr>
		<tr><td colspan="7"><div align="right">
            <input name="del" type="submit" value="Verwijderen">
          </div></td></tr>
		</table>
		</form>
		</ul>	
	</body>
</html>
<?
}
?>

edit: Nog even voor de duidelijkheid > in delete.php zit geen fout!

sneax

Legacy Member
kunt ge ni gewoon uw dbase design zeggen en dan ook zeggen welke output ge precies wilt, dat het ni werkt op de manier die gij nu doet is toch half logisch denk ik, ge zegt het zelf - er is niet voor elke taal een woord

ik zou oftewel met verschillende queries werken als bv. uw talen nooit zullen uitbreiden, als ge makkelijk talen wilt bijvoegen en makkelijk woorden wilt bijvoegen zou ik met 3 tables werken (talen, woorden en een table die de twee aan elkaar ligt via hun id's)

icerulez

Legacy Member
Kunde de structuur van u database es tonen (dus welke velden je hebt, en wat er in staat).


En je html is ook fout denk ik, je blijt TD's openen, maar je sluit of opent nooit een TR (alé, je opent 1 maal een tr, maar je sluit hem nergens)

*edit, moest ik jou zijn zou ik het niet direct in de html steken, ik zou eerst alles in een array steken (2dimentionele array), en dan pas in html zetten, dan wete je heveel elementen je per rij hebt, en dan gaan je vakjes nooit verkeerd staan.


zoiets dus (ma kben wel nie zeker, aangezien ik je database structuur nie ken)

PHP:
 while($rij = mysql_fetch_object($query)){
                    $elementen[$rij->type_id][$rij->lang_id] = $rij->mainmenu_text;
            } 

			foreach($elementen AS $key=>$data)
			{
				$table .= '<tr>'; 
				for($i=0;$i<4;$i++)
				{
					$table .= '<td>'.$data[$i].'</td>';
				}
				$table .= '<td><input type="checkbox" name="delete_id[]" value="'.$key.'"></td></tr>';
			}

			echo $table;

sneax

Legacy Member
yup da kunt ge eigenlijk doen alles in nen array steken en dan via de array alles outputten
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan