Domme ?? vraag over select
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$chess_SQL = "SELECT * FROM schaak_a
WHERE
id_schaaka='$op_zoek'
OR id_schaaka='$op_zoek2'";
$chess_result = mysql_query($chess_SQL) or die(mysql_error());
?>
$chess_SQL = "SELECT * FROM schaak_a
WHERE
id_schaaka='$op_zoek'
OR id_schaaka='$op_zoek2'";
$chess_result = mysql_query($chess_SQL) or die(mysql_error());
?>
Dat $chess_result een array is ?
Sorry hoor maar ben deze week begonnen met programmeeropleiding en ontdek opeens van alles....
(PHP 3, PHP 4, PHP 5)
mysql_query -- Verstuur een MySQL query
Beschrijving
resource mysql_query ( string query [, resource link_identifier] )
mysql_query() stuurt een query naar de huidige actieve database op de server die wordt geassocieerd met de gegeven link identifier. Als link_identifier niet wordt gegeven, wordt de laatst geopende link aangenomen. Als er geen link open is, probeert de functie een link te maken alsof mysql_connect() wordt aangeroepen zonder argumenten, en die te gebruiken.
Opmerking: De query string moet niet eindigen met een puntkomma.
Alleen voor SELECT, SHOW, EXPLAIN en DESCRIBE queries geeft mysql_query() een resource identifier terug of FALSE als de query niet correct werd uitgevoerd. Voor andere soorten SQL queries geeft mysql_query() TRUE terug bij succes en FALSE bij een fout. Een niet-FALSE waarde geeft aan dat de query legaal was en kon worden uitgevoerd door de server. Hij geeft echter niets aan over het aantal rijen betrokken of teruggegeven. Het is zeer goed mogelijk dat een query goed wordt uitgevoerd maar geen rijen wijzigt of teruggeeft.
dus
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$chess_SQL = "SELECT * FROM schaak_a
WHERE
id_schaaka='$op_zoek'
OR id_schaaka='$op_zoek2'";
$chess_result = mysql_query($chess_SQL) or die(mysql_error());
$info = mysql_fetch_assoc($chess_result);
echo 'Het id = '.$info['id'];
// als het veld zonoemt in database
?>
$chess_SQL = "SELECT * FROM schaak_a
WHERE
id_schaaka='$op_zoek'
OR id_schaaka='$op_zoek2'";
$chess_result = mysql_query($chess_SQL) or die(mysql_error());
$info = mysql_fetch_assoc($chess_result);
echo 'Het id = '.$info['id'];
// als het veld zonoemt in database
?>
Gewijzigd op 01/01/1970 01:00:00 door Niels Beckers
Ik vraag me gewoon af, of het resultaat tijdelijk wordt opgeslagen in een array en of dit array dan $chess_result heet.
nee $chess_result dat voert de query uit, of hij gelukt is of niet meer kan je niet doen daarmee
Aanvulling op Niels: $info in het voorbeeld van Niels is wél een array();
Om nu het resultaat uit het geheugen te gebruiken hebben we een adres nodig. Dit adres is van type resource, dit wordt (als alles goed gaat ) terug gegeven door mysql_query() .
Deze resource komt dan als parameter in de mysql_fetch_* functies. Met het resultaat van deze fetch functies kun je iets doen.
edit:
Als je een lijst met gebruikers wil ophalen dan zul je de fetch functies meerdere keren moeten aanroepen. Dit omdat de functies maar 1 gebruiker (rij) per aanroep terug geven.
Je moet in dit geval dus een loop maken, voorbeeldje:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
# Query uitvoeren
$rAdres = mysql_query('SELECT id, voornaam, achternaam FROM gebruikers');
# Als de query fout was
if( $rAdres === false )
{
die('Die laatste query ging niet best...');
}
# Voor iedere rij(gebruiker) in het resultaat
while( $aRij = mysql_fetch_assoc($rAdres) )
{
echo $aRij['voornaam'] . ' - ' . $aRij['achernaam'] . '<br />';
}
?>
# Query uitvoeren
$rAdres = mysql_query('SELECT id, voornaam, achternaam FROM gebruikers');
# Als de query fout was
if( $rAdres === false )
{
die('Die laatste query ging niet best...');
}
# Voor iedere rij(gebruiker) in het resultaat
while( $aRij = mysql_fetch_assoc($rAdres) )
{
echo $aRij['voornaam'] . ' - ' . $aRij['achernaam'] . '<br />';
}
?>
Maar ik draaf een beetje door ;D
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Wat ik me namelijk afvraag , is of ik met resultaten van de Querie al kan gaan rekenen. Bv:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$chess_SQL = "SELECT * FROM schaak_a
WHERE
id_schaaka='$op_zoek'
OR id_schaaka='$op_zoek2'";
$chess_result = mysql_query($chess_SQL) or die(mysql_error());
$info = mysql_fetch_assoc($chess_result);
$score ($info) = $schaak_a['ronde1'] + $schaak_a['ronde2'];
?>
$chess_SQL = "SELECT * FROM schaak_a
WHERE
id_schaaka='$op_zoek'
OR id_schaaka='$op_zoek2'";
$chess_result = mysql_query($chess_SQL) or die(mysql_error());
$info = mysql_fetch_assoc($chess_result);
$score ($info) = $schaak_a['ronde1'] + $schaak_a['ronde2'];
?>
o.i.d.
en kun je dat dan op het scherm laten weergeven door:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
while( $aRij = mysql_fetch_assoc($info) )
{
echo $aRij['naam'] . ' - ' . $aRij['$score'] . '<br />';
}
?>
while( $aRij = mysql_fetch_assoc($info) )
{
echo $aRij['naam'] . ' - ' . $aRij['$score'] . '<br />';
}
?>
??
Je resultaten zitten in een array(). In dat array() zitten de gevonden records. In $chess_result zit, zeg maar, de pointer naar alle resultaten. In $info zit nu één array() met de gegevens van één record uit de resultaten.
$chess_result = mysql_query($chess_SQL)
of zit ik nu te bazelen ?
Ik heb inderdaad geen idee wat je bedoelt. Wat wil je nu eigenlijk voor elkaar krijgen?
Daarna wil ik een totaal maken per speler van de uitslagen die in deze database zijn opgeslagen
Die wil ik toevoegen aan de gegevens PER SPELER
Daarna wil ik de gegevens van alle spelers, gesorteerd op totaal in een WHILE lus weergeven.
Waar en hoe kan ik dan de optelling maken, deze moet toch eerst in het array worden geplaatst voordat ik de WHILE lus kan ingaan ?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<? $chess_result = mysql_query($chess_SQL) or die(mysql_error());
while (list($eersteveld, $tweedeveld, $derderveld, $enzovoort) = mysql_fetch_row($chess_result))
{
$somspeler = $eersteveld+tweedeveld+derderveld+enzovoort;
echo $somspeler;
}
?>
while (list($eersteveld, $tweedeveld, $derderveld, $enzovoort) = mysql_fetch_row($chess_result))
{
$somspeler = $eersteveld+tweedeveld+derderveld+enzovoort;
echo $somspeler;
}
?>
Zo haal je met je while lus per speler in je database (die voldoet aan je query) al zijn gegevens op en schrijf je het resultaat naar het scherm. Je kan er natuurlijk ook andere dingen mee doen eens je de infromatie hebt maar dat hangt van jou af he ;)