Hi mensen,

ik ben dus nu bezig met die 'pokemon' site van mijn broertje, en ik kom er alleen nu niet meer uit!

Weet iemand waarom dit niet werkt? (het zet alleen een witte pagina op het scherm (error reporting staat aan)

<?php
if((isset($_GET['act']) && $_GET['act'] == "mijn")){
$i = 1;
$sql1 = "SELECT p_id FROM ".$_SESSION['user_id']."_pokemon WHERE id = '".$i."'";
$sql2 = "SELECT * FROM pokemon WHERE id = '".$idd."'";
while ($i <= 300) {
$res1 = mysql_query($sql1);
while ($row1 = mysql_fetch_array($res1)) {
$idd = $row1['p_id'];
if (mysql_num_rows($res1) == 0) {
exit();
}
$res = mysql_query($sql2);
$row = mysql_fecth_array($res2)
echo '<tr>
<td class="rij">
'.$row['id'].'
</td>
<td class="rij">
<a href="'.$row['link'].'">'.$row['naam'].'</a>
</td>
<td class="rij">
'.$row['type'].'
</td>
<td align="center" valign="middle" class="rij">
<a href="index.php?add='.$row['id'].'"><img src="images/add.gif" border="0"></a>
</td>
</tr>';

}
$i++;
}
exit();
}
?>

MvG,
niek
een systeem van pakweg 500 regels
Dat is een klein systeempje waar je nu een kapitale fout in hebt zitten. Natuurlijk mag je verder bouwen op drijfzand, maar je weet nu al dat je vroeg of laat hopeloos in de problemen gaat komen.

De database is de kern van het systeem, als dan het datamodel niet goed is, heb je een probleem dat je z.s.m. moet oplossen. Verder bouwen is zinloos.
maar wat is dan het nadeel van deze manier?
Maar is er geen mogelijkheid om het te fixen zoals het nu is? zonder dat ik dat moet doen? dan maak ik namelijk alls alles goed werkt wel ff een testsite, en daar normaliseer ik dan de hele boel, dan kan ik het dan in een keer omklappen... Ik heb nu namelijk niet meer zo heel veel tijd meer...
Het probleem dat je nu hebt, is wel op te lossen. Een goed systeem hier van maken, is onmogelijk.

Begin eens om exit() er uit te gooien en dit te vervangen door een keurige foutmelding. Vervolgens ga je na iedere if ook een else neerzetten. Hier produceer je wat output, een echo, zodat je weet waar je in het script bent gebleven.

Maar ga gooi jouw database is vredesnaam z.s.m. weg en ga iets beters maken. Dit gaat je nog heel veel problemen opleveren.

En 500 regels code, dat is echt helemaal niets. Meestal bestaat alleen de foutafhandeling al uit meer regels... Een opmerking als
als ik achter iedere query 'or die(mysql_error())' zet
geeft ook aan dat er nog hele stukken script ontbreken. Dit had namelijk niet eens mogen ontbreken! (of een variant hierop, maar in elk geval iets van foutafhandeling)
500 is voor mij veel :p

Maar ik krijg niks op het scherm, ook niet een foutmelding, maar ook niet het script-deel dat hiervoor komt! (error_reporting staat aan (E_ALL))...

Normaal zou er nog een tabel boven moeten staan, maar dat doet ie nu ook niet, dat betekent dus dat er iets fout is met het script waardoor ie het niet kan runnen, het moet dit scriipt wel zijn, maar ik kmo er niet uit.

Ik ga het dusnu proberen te fixen, als het werkt, dan ga ik op localhost het 'normaliseren' en het dan in een klap uploaden zonder dat iemand er last van heeft gehad..

MvG,
Niekk
<?php
if (isset($_GET['pokemon'])) {
echo '<tr><td class="cellborder" align="center">';
$q1 = "SELECT pokemon FROM login WHERE id = '".$_SESSION['user_id']."'";
$r1 = mysql_query($q1) or die(mysql_error());
while ($row1 = mysql_fetch_array($r1)) {
$id = $row1['pokemon'];
}
$ids = explode(",",$id);
$q2 = "SELECT naam FROM pokemon WHERE id = '".$_GET['pokemon']."'";
$r2 = mysql_query($q2) or die(mysql_error());
while ($row2 = mysql_fetch_array($r2)) {
echo "<h2>".$row2['naam']."</h2>";
}
foreach($ids as $_GET['pokemon']) {
$q3 = "SELECT level FROM login WHERE id = '".$_SESSION['user_id']."'";
$r3 = mysql_query($q3) or die(mysql_error());
while ($row3 = mysql_fetch_array($r3)) {
echo "level";
}
}
echo '</td></tr>';
exit();
}
?>

Dat is wat ik nu heb, in de tabel 'login' staan alle gebruikers, in de tabel 'pokemon' staan alle pokemons.

in de tabel login staan de pokemon van de gebruiker op deze manier opgeslagen, op id: 12,53,147 enz.
Maar ik heb daar ook een veld 'level' bv: 45,3,88

eerste level hoort bij eerste pokemon enz. maar ik kom er aleen nu niet meer uit, wat het script moet doen is dus de pokemon die met GET gegeven is (pagina.php?pokemon=12 bijvoorbeeld). die pokemon moet worden gezocht in de db, en dan ge-echo't worden met level.

Dit is dus wat ik tot nu toe heb, en ik kom er niet meer uit. (wat het nu o phet scherm zet is de naam van de pokemon, en daaronder (bij iedere pokemon!)
levellevel (2 keer dus...)
in de tabel login staan de pokemon van de gebruiker op deze manier opgeslagen, op id: 12,53,147 enz.
Maar ik heb daar ook een veld 'level' bv: 45,3,88
Ik krijg de indruk dat het allemaal iets te hoog gegrepen is. In 1 record mag slechts 1 gegeven staan. Daar kan dus nooit 12, 53 en 147 in staan. Dit hadden 3 records moeten zijn.

Ik kan je dus niets anders aanraden dan de boel te vergeten en opnieuw te beginnen. Ga je eens verdiepen in normalisatie en hoe je databases moet gebruiken. Dat is niet eenvoudig, maar altijd nog eenvoudiger dan met allerlei lapmiddelen de boel die je nu hebt aan de praat krijgen. (en onderhouden...)
dus ik moet een soort tabel hebben met dit:

id | pokemon_id | user_id | level

?
gemene jattert!

:)

Reageren