Hallo allemaal,

Wie kan mij uitleggen hoe ik een tabel zo kan benaderen, dat gegevens uit die tabel (een namenlijst) met één tegelijk worden opgehaald? Ik vermoed dat er iets moet zijn, dat aangeeft op welke positie in de tabel het gegeven moet worden opgehaald?

Ik wil de uitkomst gebruiken om deze te kunnen hyperlinken naar een bepaalde pagina. Ik lees wel overal hoe je een hele tabel kunt ophalen maar nergens hoe je een tabel één voor één kunt uitlezen.

Ik heb nu zoiets gemaakt:

"SELECT * FROM users WHERE rang LIKE '0' AND id LIKE '1'";

maar dat werkt niet want de id nummers zijn niet sequentieel aanwezig.

Is er misschien zoiets als: neem de naam op de eerste positie, dan de naam op de tweede positie, etc. ?

Afijn, ik ben een echte beginneling en weet nog te weinig van al die codes af, dus wil kan mij helpen?

Hartelijke groet,
Hans Fokker
Ik snap toch niet helemaal wat je bedoelt. Waarom wil je een tabel één voor één uitlezen? Wil je bijvoorbeeld verschillende pagina's maken met daarop steeds de volgende naam of zo?
Ik wil inderdaad zoiets maken. Ik wil de namen plaatsen op één zelfde pagina, en van elk resultaat (naam) een nieuwe hyperlink maken naar een andere pagina.

Het gaat om een website van een basisschool met in de database 'rang' een groep leerlingnamen. Via de pagina kan de persoonlijke pagina van de leerling worden gekozen.
Okee duidelijk.
Op je overzichtspagina haal je alle leerlingen op alfabet op met hun id erbij:
<?php
$sql = "
SELECT id, achternaam
FROM leerlingen
ORDER BY achternaam
";
if (!$res = mysql_query ($sql)) {
trigger_error (mysql_errno () . ': ' . mysql_error ());
echo '<pre>';
echo $sql;
echo '</pre>';
}
else {
while ($row = mysql_fetch_assoc ($res)) {
echo '<p><a href="leerling.php?id=' . $row['id'] . '">' . $row['achternaam'] . '</a></p>';
}
}
?>
Op de pagina leerling.php kun je nu via $_GET['id'] de juiste leerling uit de DB halen:
<?php
// hier hoort eigenlijk een veiligheidscheck, iets als: if (is_numeric ($_GET['id']))
$sql = "
SELECT achternaam, veld2, veld3
FROM leerlingen
WHERE id = " . $_GET['id'];
if (!$res = mysql_query ($sql)) {
trigger_error (mysql_errno () . ': ' . mysql_error ());
echo '<pre>';
echo $sql;
echo '</pre>';
}
else {
$row = mysql_fetch_assoc ($res));
echo '<p>' . $row['achternaam'] . '</p>';
// en de rest van de velden
}

?>
De TS bedoeld denk ik meer iets in de trend van
SELECT kolom
FROM tabel
WHERE kolom = conditie
LIMIT 0,1

Die geeft de eerste regel uit de tabel. Op de tweede pagina zou die zo zijn:

SELECT kolom
FROM tabel
WHERE kolom = conditie
LIMIT 1,1

Etc, etc. Nu zijn de cijfers achter LIMIT gemakkleijk te vervangen door variabelen die je uit $_GET kan halen ofzo...

Elwin
Om toch ook de databases wat duidelijker voor mezelf te maken ga ik dit proberen te maken :)

Dus ik ga beginnen met de tabellen te maken en dan een form om ze te laten zien en dan 1 voor 1 aanklikbaar d.m.v. een link en dan zonodig te kunnen wijzigen.

Maar zien of dit gaat lukken :)\

PS gezien de warmte kan de uitwerking ook vanavond of morgen worden.
Elwin schreef op 26.07.2006 14:00
De TS bedoeld denk ik meer iets in de trend van
SELECT kolom
FROM tabel
WHERE kolom = conditie
LIMIT 0,1
Elwin

Als je het zo doet, moet je de conditie weghalen, anders gaat het fout. Het zou zo kunnen, maar ik vind mijn manier eenvoudiger. Het is trouwens "in de trant van en niet "in de trend van". Zo'n verspreking heet een malapropisme.
Bedankt Jan,

Ik denk dat je verder met me mee hebt gedacht dan mijn vraag is. Ik heb namelijk bestaande pagina's waarheen ik wil gaan linken, leerling1.php, leerling2.php, etc.

Ik bedoel wel een overzichtspagina te krijgen met de leerlingnamen apart uitgelezen, zoals Elwin ook beschrijft, om vervolgens aan iedere naam een pagina (leerling1.php etc.) te linken.

De uitkomst van het script leerling.php geeft de melding 'De pagina kan niet worden weergegeven'. Ik begrijp de bedoeling van jouw script denk ik wel, maar de pagina's die je op die manier aanmaakt zijn dan allemaal identiek, en dat is in mijn voorbeeld niet de bedoeling.

Wat is de bedoeling van veld2, veld 3? Zoekt deze naar een positie in de tabel?

Alvast bedankt!
Het opgegeven van veld1, veld2, etc. zijn de veldnamen die je zelf wellicht nog in je tabel hebt staan zoals bijv. het adres en/of mentor. Dit hoeft niet is slechts een optie die je kan doen en of weglaten.

Wil je standaard alles uit je tabel hebben dan doe je dit:


<?php
// query om alles te selecteren van tabel
$sql = "SELECT * FROM tabel";
?>
Ik denk dat de oplossing van Elwin voor mij kan werken. Door het gebruiken van de optie LIMIT 0,1 kan ik iedere naam apart uit de tabel apart ophalen. Het gebruiken van die code kende ik niet. Wat betekenen de 0 en 1 in 0,1?

Ik ben nog wel nieuwsgierig naar je opmerking over het vervangen door variabelen die je uit $_GET kunt halen?

En Lissy, bedankt! Fijn dat een newbie hier ook zo goed geholpen wordt.

Reageren