Resource id #5

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Wouter reyntjens

wouter reyntjens

12/05/2007 01:07:00
Quote Anchor link
Ik probeer al een hele tijd het hoogste id uit mijn db te halen maar ik krijg altijd een fout! Ik gebruik momenteel deze code:

$test = mysql_query("SELECT * FROM website ORDER BY id DESC LIMIT 0,1");
echo $test;

en het lukt niet:s, ziet iemand mijn fout?
 
PHP hulp

PHP hulp

17/11/2024 03:42:33
 

12/05/2007 02:11:00
Quote Anchor link
Je bent op de goede weg.
En de melding die je krijgt is helemaal mooi. Er is resultaat teruggekomen van je query. Omdat deze resultaten nog direct gebruikt kunnen worden moet deze eerst nog gefetchd worden.
Hiervoor zijn verschillende mogelijkheden:
- fetch_array (geeft een array terug met kolomnaam en volgnummer)
- fetch_assoc (geeft een array terug met kolomnaam)
- fetch_object (geeft een object terug met kolomnaam)
Normaal fetch je in een while loop [while($row = mysql....) {} ] maar omdat je nu maar één resultaat hebt hoe je ook maar één keer te fetchen. Dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    // jouwcode ......
    $row = mysql_fetch_assoc($test);
    echo $row['websitenaam']; // merk op dat je websitenaam moet vervangen door de naam van een tabel.
    print_r($row); // geeft een overzicht van alle kolomen met daarbij behorende waarde
?>
 
Jan Koehoorn

Jan Koehoorn

12/05/2007 09:42:00
Quote Anchor link
Aanvulling: in de praktijk heb je het meeste aan mysql_fetch_assoc, qua gebruiksvriendelijkheid en snelheid. mysql_fetch_object is een factor 2 trager.
 
Wouter reyntjens

wouter reyntjens

12/05/2007 10:11:00
Quote Anchor link
Bedankt, waar ik naartoe wil is het volgende :

ik zou graag op mijn website een random werk laten verschijnen, ik had gedacht om door middel van een random getal te werken :

$i= rand(0, count($test));

Hierna zou hij het getal $i, uit de tabel moeten halen en dat weergeven. ( de titel, de uitleg van dat nummer die in de db zitten.)

Hoe zou ik dat dan doen?
 

12/05/2007 12:06:00
Quote Anchor link
Zijn verschillende mogelijkheden. Bv:
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
17
18
19
<?php
    // Eerst gaan we alle records ophalen
    $sql = "SELECT * FROM tabel";
    $resultaat = mysql_query($sql);
    // Hier komen alle records in
    $records = array();
    while($record = mysql_fetch_assoc($resultaat))
    {

        // De record toevoegen aan de record array;
        $records[] = $record;
    }

    // Aantal records
    $aantal = count($records);
    $aantal --; // Want array begint op 0
    // Pak een random

    $record = $records[rand(0,$aantal)];
    // Print array met record:
    print_r($record);
?>
 
JvG G

JvG G

12/05/2007 12:47:00
Quote Anchor link
Of je gebruikt de functie RAND in je SQL query. Zo haal je niet onnodige informatie op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= "SELECT gegevens FROM tabel ORDER BY RAND LIMIT 0,1";
[
/code]
Gewijzigd op 01/01/1970 01:00:00 door JvG G
 
Wouter reyntjens

wouter reyntjens

12/05/2007 20:42:00
Quote Anchor link
Het werkt, bedankt!

Jullie kunnen het resultaat al bekijken op klik, ik ben er nog aan bezig dus er kan hier en daar wel eens een foutje inzitten.
Gewijzigd op 01/01/1970 01:00:00 door wouter reyntjens
 
- SanThe -

- SanThe -

12/05/2007 20:47:00
Quote Anchor link
Ziet er erg strak uit. Maar dit kan natuurlijk niet:
<title>Untitled Document</title>
 
Wouter reyntjens

wouter reyntjens

12/05/2007 20:49:00
Quote Anchor link
Ik ben alles nog aan het opbouwen hé, ik ga als titel een variabele gebruiken.

Het portfolio dat ik momenteel heb kan je vinden op : klik
 
- SanThe -

- SanThe -

12/05/2007 20:51:00
Quote Anchor link
Het was ook niet echt heel serieus bedoeld. ;-))
Ik had al gelezen dat er nog hard aan wordt gewerkt.

Succes verder.
 
Wouter reyntjens

wouter reyntjens

12/05/2007 20:52:00
Quote Anchor link
Bedankt:p
 
John Cena

John Cena

29/01/2008 10:39:00
Quote Anchor link
Ik heb door deze tips al een heel stuk meer informatie en uitkomst, maar wat ik wil is alle namen uit de database halen. Op het moment haalt hij er maar eentje uit en geeft hij de woorden Array & Naam nog weer. Hoe haal ik die eruit?

PHP:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
                
                mysql_connect('localhost','root', '');
                mysql_select_db('werk');
                $results = mysql_query('SELECT `Naam` FROM `werknemers`');      
                $row = mysql_fetch_assoc($results);
                echo $row['werk'];
                print_r($row);
                
                ?>


Uitkomst:
Array ([Naam] => Snoek )

Als iemand mij kan helpen, heel graag!
 
- wes  -

- wes -

29/01/2008 10:43:00
 
Joren de Wit

Joren de Wit

29/01/2008 10:45:00
Quote Anchor link
De fouten die je maakt:
- Backticks in je query.
- Ontbrekende foutafhandeling.
- Geen controle of er wel records uit de database opgehaald zijn.
- Geen while loop waarin je de resultaten fetched.
- Je gebruikt $row['werk'] terwijl je de kolom niet ophaalt in je query.

Beter zou zijn:
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
17
18
19
20
21
22
<?php
$sQuery
= "
    SELECT naam
    FROM werknemers
"
;

if(!$rResult = mysql_query($sQuery))
{

    trigger_error(mysql_error().'<br />In query: '.$sQuery);
}

elseif(mysql_num_rows($rResult) == 0)
{

    trigger_error('Geen records opgehaald met query: '.$sQuery);
}

else
{
    while($row = mysql_fetch_assoc($rResult))
    {

        echo $row['naam'].'<br />';
    }
}

?>
 
John Cena

John Cena

29/01/2008 10:52:00
Quote Anchor link
Jaaaaah :) Het werkt nu!

Maar nu heb ik dus met een optie geen rekening gehouden, het is de bedoeling dat de namen onder elkaar in een select lijstje komen, nu staan ze dus allemaal naast elkaar.

Dat had ik opzich van te voren kunnen bedenken, maar tja :(

Is er een manier omdat nog goed voor elkaar te krijgen?
 
John Cena

John Cena

29/01/2008 10:52:00
Quote Anchor link
Jaaaaah :) Het werkt nu!

Maar nu heb ik dus met een optie geen rekening gehouden, het is de bedoeling dat de namen onder elkaar in een select lijstje komen, nu staan ze dus allemaal naast elkaar.

Dat had ik opzich van te voren kunnen bedenken, maar tja :(

Is er een manier omdat nog goed voor elkaar te krijgen?
 
Joren de Wit

Joren de Wit

29/01/2008 11:03:00
Quote Anchor link
Dat heeft enkel te maken met de weergaven van de gegevens en is dus een PHP aangelegenheid:
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
17
18
19
20
21
22
23
24
25
26
<?php
$sQuery
= "
    SELECT
        id,
        naam
    FROM werknemers
"
;

if(!$rResult = mysql_query($sQuery))
{

    trigger_error(mysql_error().'<br />In query: '.$sQuery);
}

elseif(mysql_num_rows($rResult) == 0)
{

    trigger_error('Geen records opgehaald met query: '.$sQuery);
}

else
{
    echo '<select name="naam">';
    while($row = mysql_fetch_assoc($rResult))
    {

        echo '<option value="'.$row['id'].'">'.$row['naam'].'</option>';
    }

    echo '</select>';
}

?>

Zoiets zal dat bijvoorbeeld worden.
 
John Cena

John Cena

29/01/2008 11:16:00
Quote Anchor link
Het werkt nu!

Nu heb ik nog 1 vraag, ik wil dat hij die naam onthoud voor een volgende pagina waarin de uren voor dat personeelslid weer weg worden geschreven naar een andere tabel. Kan ik hem nu gewoon een name meegeven? Waar doe ik dat binnen die echo statements?

Chilion
Gewijzigd op 01/01/1970 01:00:00 door John Cena
 
Joren de Wit

Joren de Wit

29/01/2008 11:17:00
Quote Anchor link
De query is natuurlijk maar een voorbeeld, die moet je wel even naar je eigen situatie aanpassen...

Ik kan niet ruiken hoe jouw datamodel eruit ziet ;-)
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
John Cena

John Cena

29/01/2008 11:22:00
Quote Anchor link
Blanche schreef op 29.01.2008 11:17:
De query is natuurlijk maar een voorbeeld, die moet je wel even naar je eigen situatie aanpassen...

Ik kan niet ruiken hoe jouw datamodel eruit ziet ;-)


Bedankt man, alles werkt nu naar behoren :D

Ik ga nu ff stoeien met het registreren van de uren van de werknemers die hij vervolgens weer in SQL moet gaan plaatsen :)

Stay alerted, ik heb vast straks weer een vraag :P Ben beginnend PHP'r ;)

Chilion
 
John Cena

John Cena

29/01/2008 11:33:00
Quote Anchor link
Hij werkt dus nog niet helemaal zoals het hoort ;)
Ik heb grotendeels jou text overgenomen, dit heb ik er nu staan:

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
17
18
19
20
21
22
23
<?php
                mysql_connect('localhost','root', '');
                mysql_select_db('werk');
$sQuery = "SELECT personeelsnummer, naam FROM werknemers";

if(!$rResult = mysql_query($sQuery))
{

    trigger_error(mysql_error().'<br />In query: '.$sQuery);
}

elseif(mysql_num_rows($rResult) == 0)
{

    trigger_error('Geen records opgehaald met query: '.$sQuery);
}

else
{
    echo '<select name="naam">';
    while($row = mysql_fetch_assoc($rResult))
    {

        echo '<option value="'.$row['id'].'">'.$row['naam'].'</option>';
    }

    echo '</select>';
}

?>


De select heeft een naam, dat is "naam", alleen wanneer ik hem verzend (submitknop) dan blijft POST[naam] leeg ofzo. Hij laat tenminste niks zien wanneer ik de variable uit laat draaien.

Hoe kan dit? Komt het doordat de naam nu in PHP staat? Dat mag niks uitmaken toch?

Mod-edit:
Bumpen
Bumpen binnen 24 uur is niet toegestaan. Gebruik tot die tijd je edit knopje om je bericht aan te passen.

(Bumpen is het herhaaldelijk plaatsen van reacties op een thread of onderwerp in een internetforum teneinde deze thread bovenaan de lijst te houden zodat het langer onder de aandacht van de bezoekers blijft. Dit wordt meestal als irritant ervaren en daardoor niet geaccepteerd door de moderator(s) van het forum waardoor degene die bumpt een waarschuwing of ban kan krijgen. Ook kan de gebumpte thread gesloten worden, wat inhoudt dat er geen reacties meer aan toegevoegd kunnen worden. bron:WikiPedia)
Gewijzigd op 01/01/1970 01:00:00 door John Cena
 

Pagina: 1 2 volgende »



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.