Archief - MYSQL: geeft enkel 1ste letter

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.

mrspanky

Legacy Member
Ik ben bezig met een profiel op men sit emogelijk temaken dus ook met een lijst me users, nu als ik een mooi lijst maak die hij uit de databse moet halen die die dat perfect maar hij pakt enkel de eerste letter.
Voorbeeld
je vult in gebruikersnaam: Tom
je krijgt gebruikersnaam: T
Alles zit inde database met varchar50
dus plaats genoeg en het zit er allemaal volledig in.

hier is men script al bij voorbaat dank.
PHP:
<html>
<head>
<title>leden</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
include 'connection.php';

// how many rows to show per page
$rowsPerPage = 5;

// by default we show first page
$pageNum = 1;

// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
    $pageNum = $_GET['page'];
}

// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;

$query  = "SELECT gebruikersnaam FROM `users` ORDER BY `gebruikersnaam` LIMIT $offset, $rowsPerPage";
$result = mysql_query($query) or die('Error, query failed');

// print the random numbers
while(list($var) = mysql_fetch_array($result))
{
            echo "<br><br><a href=\"leden_id.php?gebruikersnaam=".$var['gebruikersnaam']."\">".$var['gebruikersnaam']."";
}

// how many rows we have in database
$query   = "SELECT COUNT(*) AS numrows FROM users";
$result  = mysql_query($query) or die('Error, query failed');
$row     = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];

// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);

$self = $_SERVER['PHP_SELF'];

// creating 'previous' and 'next' link
// plus 'first page' and 'last page' link

// print 'previous' link only if we're not
// on page one
if ($pageNum > 1)
{
    $page = $pageNum - 1;
    $prev = " <a href=\"$self?page=$page\">[Prev]</a> ";
    
    $first = " <a href=\"$self?page=1\">[First Page]</a> ";
} 
else
{
    $prev  = ' [Prev] ';       // we're on page one, don't enable 'previous' link
    $first = ' [First Page] '; // nor 'first page' link
}

// print 'next' link only if we're not
// on the last page
if ($pageNum < $maxPage)
{
    $page = $pageNum + 1;
    $next = " <a href=\"$self?page=$page\">[Next]</a> ";
    
    $last = " <a href=\"$self?page=$maxPage\">[Last Page]</a> ";
} 
else
{
    $next = ' [Next] ';      // we're on the last page, don't enable 'next' link
    $last = ' [Last Page] '; // nor 'last page' link
}

// print the page navigation link
echo "<p><center>"  ;
echo  $first . $prev . " Showing page <strong>$pageNum</strong> of <strong>$maxPage</strong> pages " . $next . $last;
echo "</center>" ;

?>
</body>
</html>

NeoNeke

Legacy Member
while(list($var) = mysql_fetch_array($result))
{
echo "<br><br><a href=\"leden_id.php?gebruikersnaam=".$var['gebruikersnaam']."\">".$var['gebruikersnaam']."";
}

er staat hier geen </a> in, maar dat zou me verwonderen dat, dat de oplossing is. Verder als je op die link dan klikt ga je dan naar leden_id.php?gebruikersnaam=t of naar leden_id.php?gebruikersnaam=tom

of heb je dit gedaan om zelf bug te testen? Anders ben je zeker dat in de database de naam tom wel goed opgeslaan is en in de database niet enkel t zit?

NeoNeke

Legacy Member
ja nee 'k weet al wat er mis mee is, 'k heb net het commando list opgezocht in php manual en dat zorgt ervoor dat het misloopt :)

list maakt blijkbaar een soort van taalconstructie voor arrays, vandaar dat hij denk ik maar de eerste letter dan ook aanroept, aangezien hij niet weet wat of hoe juist roept hij maar het eerste item op in de array (wat voor een variabele, zijn eerste letter is). Theorie kan verkeerd zijn, 't is niet dat ik het ga uitproberen voor of het werkt ;)


if ($result) {
for ($i=0; $i < mysql_num_rows ($result); $i++) {
$rij= mysql_fetch_array($result);
echo "<br><br><a href=\"leden_id.php?gebruikersnaam=".$rij['gebruikersnaam']."\">".$rij['gebruikersnaam']."";
}
}

zal het doen (deze code is snel van een template afgehaald en aangepast kan nog een foutje inzitten

mrspanky

Legacy Member
Sweet het werkt echt merci kzou het zelf nooit gevonden hebben :) thx

orez

Legacy Member
NeoNeke zei:
if ($result) {
for ($i=0; $i < mysql_num_rows ($result); $i++) {
$rij= mysql_fetch_array($result);
echo "<br><br><a href=\"leden_id.php?gebruikersnaam=".$rij['gebruikersnaam']."\">".$rij['gebruikersnaam']."";
}
}

zal het doen (deze code is snel van een template afgehaald en aangepast kan nog een foutje inzitten

zelfs mysql_fetch_assoc gebruiken.

array heb je voor niets nodig. Die array is "dubbel" zo groot. omdat je via deze functie zowel de rijen kan ophalen via hun kolompositie [0] [1] ... en via hun kolomnaam ["gebruikersnaam"], je hebt enkel de kolomnaam nodig... dus fetch_assoc ;)

DJ_Trash

Legacy Member
ja die array vinnek ook beetje weird voor wat je er mee moet doen

NeoNeke

Legacy Member
orez zei:
zelfs mysql_fetch_assoc gebruiken.

array heb je voor niets nodig. Die array is "dubbel" zo groot. omdat je via deze functie zowel de rijen kan ophalen via hun kolompositie [0] [1] ... en via hun kolomnaam ["gebruikersnaam"], je hebt enkel de kolomnaam nodig... dus fetch_assoc ;)

idd da's de goeie manier, 'k zei het 't was snel genomen van nen template die ik gevonden had op onze schoolserver, dus je kan je al gaan afvragen wat voor vage code op onze schoolserver staat ;)
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