Domme ?? vraag over select

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick G

patrick G

09/09/2006 13:15:00
Quote Anchor link
Begrijp ik het nu goed, dat als je bv deze select maakt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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());
?>


Dat $chess_result een array is ?
Sorry hoor maar ben deze week begonnen met programmeeropleiding en ontdek opeens van alles....
 
PHP hulp

PHP hulp

18/11/2024 03:42:48
 
- SanThe -

- SanThe -

09/09/2006 13:21:00
Quote Anchor link
mysql_query

(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.
 
Niels Beckers

Niels Beckers

09/09/2006 13:28:00
Quote Anchor link
patrick je moet nog wel een mysql_fetch_assoc of mysql_fetch_object doen als je de gegevens wil opvragen, ook kun je beter de velden opnoemen dan een * te gebruiken.
dus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
?>
Gewijzigd op 01/01/1970 01:00:00 door Niels Beckers
 
Patrick G

patrick G

09/09/2006 13:39:00
Quote Anchor link
Dat is allemaal niet de vraag, evengoed bedankt. Wat ik met deze Querie wil doen werkt allemaal prima hoor.

Ik vraag me gewoon af, of het resultaat tijdelijk wordt opgeslagen in een array en of dit array dan $chess_result heet.
 
Niels Beckers

Niels Beckers

09/09/2006 13:47:00
Quote Anchor link
nee $chess_result dat voert de query uit, of hij gelukt is of niet meer kan je niet doen daarmee
 
- SanThe -

- SanThe -

09/09/2006 14:08:00
Quote Anchor link
Aanvulling op Niels: $info in het voorbeeld van Niels is wél een array();
 
Martijn B

Martijn B

09/09/2006 14:17:00
Quote Anchor link
Met de functie mysql_query() voer je een een query (vraag) uit op een database. Het resultaat van deze query wordt ergens in het geheugen gezet.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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 />';
}

?>


Maar ik draaf een beetje door ;D
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Patrick G

patrick G

09/09/2006 16:15:00
Quote Anchor link
Als ik iets in het geheugen zet, heb je toch ok een array?

Wat ik me namelijk afvraag , is of ik met resultaten van de Querie al kan gaan rekenen. Bv:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'];

?>

o.i.d.
en kun je dat dan op het scherm laten weergeven door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
while( $aRij = mysql_fetch_assoc($info) )
{

  echo $aRij['naam'] . ' - ' . $aRij['$score'] . '<br />';
}

?>


??
 
- SanThe -

- SanThe -

09/09/2006 16:23:00
Quote Anchor link
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.
 
Patrick G

patrick G

09/09/2006 17:10:00
Quote Anchor link
Dus als ik een optelling per speler wil toevoegen aan het array , moet ik dat doen voordat ik de pointer naar de resultaten zet met:
$chess_result = mysql_query($chess_SQL)

of zit ik nu te bazelen ?
 
- SanThe -

- SanThe -

09/09/2006 17:30:00
Quote Anchor link
Ik heb inderdaad geen idee wat je bedoelt. Wat wil je nu eigenlijk voor elkaar krijgen?
 
Patrick G

patrick G

09/09/2006 17:37:00
Quote Anchor link
ik haal uit de database met de select alle gegevens van alle spelers op. Daar staan echter nog niet de totalen van de uitslagen in.

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 ?
 
Mic

mic

12/09/2006 16:55:00
Quote Anchor link
dit is een mogelijke manier die simpel is maar toch handig :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
}

?>


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 ;)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.