Hoe laat ik alleen de eerste of laatste rij zien uit een tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stephan voskamp

stephan voskamp

23/07/2017 08:13:45
Quote Anchor link
Het uiteindelijke hoofddoel is om te komen tot een scorebord voor onze honkbalvereniging.
Op Instrucables heb ik een scorebord gevonden die je met arduino kan programmeren en met een tv afstandbediening kan aansturen.
Aangezien de afstand groot is tussen de bedienplek en het bord heb ik besloten om een gprs module te gebruiken.
In de tussentijd met veel tutorials een app gemaakt met MIT appinventor en ben nu zo ver dat ik met deze app in mijn database een regel kan schrijven. Direct naar de gprs module schrijven is niet mogelijk, dus ik gebruik mijn homepage als interface. Arduino moet dus via gprs de php op mijn homepage opvragen om de gegevensreeks op te halen.

Ik heb 0 ervaring met php, maar heb al in de gaten dat de syntax lastig is.
Inmiddels al veel google uren erop zitten, maar zit volledig vast.

Wat werkt is om een lijst te genereren is :

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
$servername
= "localhost";
$username = "user";
$password = "password";
$dbname = "db_score";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}


$sql = "SELECT Guest, Home, Inning, Strike, Balls, Outs, BattingTurns FROM Score";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "Guests: " . $row["Guest"]. " - Home: " . $row["Home"]. "Inning: " . $row["Inning"]."Strike: " . $row["Strike"]."Balls: " . $row["Balls"]."Outs: " . $row["Outs"]."BarringTurns: " . $row["BattingTurns"]. "<br>";
    }
}
else {
    echo "0 results";
}

$conn->close();
?>



Deze heb ik ook geprobeerd:

$query = "SELECT Volgnr, Guest FROM Score ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

/* fetch associative array */
while ($row = $result->fetch_assoc()) {
printf ("%s (%s)\n", $row["Volgnr"], $row["Guest"]);
}

/* free result set */
$result->free();

https://nl.piliapp.com/php-syntax-check/ geeft aan dat het goed is maar server geeft een melding
Backend fatal error: PHP Fatal error: Call to a member function query() on null in /home//public_html/Score4.php on line 18\n
Regel 18 is : if ($result = $mysqli->query($query)) {

Ik ben van alles aan het proberen, maar loop volledig vast.

Weet iemand een oplossing?

Groeten. Stephan
 
PHP hulp

PHP hulp

30/11/2024 05:39:02
 
- Ariën  -
Beheerder

- Ariën -

23/07/2017 08:46:15
Quote Anchor link
De code in je codeblok werkt wel, zeg je. Maar je tweede code niet omdat daar een connectie mist. Of gebruik je die in een eigen gemaakte functie?

Is dit alle code?
 
Stephan voskamp

stephan voskamp

23/07/2017 09:31:30
Quote Anchor link
Hallo Ariën.

Dit is de tweede code:

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
27
28
29
30
31
<?php
$servername
= "localhost";
$username = "user";
$password = "password";
$dbname = "db_score";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    //echo "je bent door de connectiecheck";
}


$query = "SELECT Volgnr, Guest FROM Score ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Volgnr"], $row["Guest"]);
    }


    /* free result set */
    $result->free();
}



    $conn->close();
?>


Toevoeging op 23/07/2017 09:32:33:

Wat de query precies doet weet ik niet. Het enige wat ik wil is 1 rij met komma gescheiden waarden.
 
- Ariën  -
Beheerder

- Ariën -

23/07/2017 09:35:39
Quote Anchor link
Je gebruikt $mysqli i.p.v $conn.
 
Stephan voskamp

stephan voskamp

23/07/2017 15:04:24
Quote Anchor link
De code is aangepast, maar geeft geen output op de homepage

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
27
28
<?php
$servername
= "localhost";
$username = "user";
$password = "password";
$dbname = "db_score";


// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    //echo "je bent door de connectiecheck";
}
$query = "SELECT Volgnr, Guest FROM Score ORDER by ID ASC LIMIT 50,5";

if ($result = $conn->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
      // printf ("%s (%s)\n", $row["Volgnr"], $row["Guest"]);
    echo "Volgnr: " . $row["Volgnr"]. "Guest: " . $row["Guest"]. "<br>";      
    }

    /* free result set */
    $result->free();
}

    $conn->close();
?>


De tabel heeft nu 25 records.
ook de optie printf ("%s (%s)\n", $row["Volgnr"], $row["Guest"]) heb ik geprobeerd.

Nu blijft de homepage blanco en in het foutenlog staat niets?
Ik ben nu wel een stapje verder.
 
- Ariën  -
Beheerder

- Ariën -

23/07/2017 15:25:08
Quote Anchor link
Zet eens bovenaan dit neer:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>

Dan ben ik benieuwd of we wel error gaan zien. Misschien dat je foutmeldingen uit hebt staan?
Ook raad ik aan om foutafhandeling op je query te bouwen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php // syntax kleurtjes tonen op het forum
if ($result = $conn->query($query)) {
    // haal hier alles op!
} else {
    echo "Foutmelding:". $mysqli->error;
}

?>


Verder raad ik ook aan om niet zomaar te kopiëren en te plakken met de hoop dat het goed werkt. Zorg dat je op zijn minst weet wat je doet, en hoe bepaalde functies of procedures werken.

Het internet mag dan wel bomvol PHP-tips en truuks staan, maar helaas zitten er ook voorbeelden bij die juist de verkeerde kant opgaan, met inefficiënte of zelfs onveilige code tot gevolg.
Gewijzigd op 23/07/2017 15:27:19 door - Ariën -
 
Adoptive Solution

Adoptive Solution

23/07/2017 16:07:19
Quote Anchor link
Als de tabel 25 records heeft en je zoekt 5 records vanaf record 50 zal je weinig vinden.
 
Stephan voskamp

stephan voskamp

23/07/2017 16:12:31
Quote Anchor link
Hoi Ariën,

De code is nu
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
27
28
29
30
<?php
$servername
= "localhost";
$username = "*****";
$password = "*";
$dbname = "****";

error_reporting(E_ALL);
ini_set('display_errors',1);

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    //echo "je bent door de connectiecheck";
}
$query = "SELECT Volgnr, Guest FROM Score ORDER by ID ASC LIMIT 50,5";

if ($result = $conn->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
      // printf ("%s (%s)\n", $row["Volgnr"], $row["Guest"]);
    echo "Volgnr: " . $row["Volgnr"]. "Guest: " . $row["Guest"]. "<br>";      
    }

    /* free result set */
    $result->free();
}

    $conn->close();
?>


Of moet ik nog een keer beginnen met <?php.

Je staat de spijker exact op zijn kop met jouw opmerking. Ik heb al veel trucs op internet geprobeerd, maar begrijp eigenlijk niet wat ik aan het doen ben.
Dan heb je ook nog gewoon mysql en mysqli wat ook geloof ik weer iets anders is.

In het foutenlog staat wel iets, maar dit heeft betrekking op joomla.

Ik ga de foutenafhandeling er in proberen te zetten.
Om te kijken of ik een stap door ben gekomen, heb ik wat echo's erin gezet, maar die zie ik ook niet verschijnen op de homepage.
Gewijzigd op 23/07/2017 16:15:36 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

23/07/2017 16:18:04
Quote Anchor link
Ik raad aan om eens te debuggen, en in elke if-statement een echo te plaatsen.
Dan weet je wat er wel en niet wordt uitgevoerd.

Maar de redenatie van Adoptive Solution zou wel eens correct kunnen zijn. Je script werkt wel, maar de data is dan niet toereikend in de reeks die je opvraagt.

$conn->num_rows kan je ook eens uitvoeren, om te kijken hoeveel records je query ophaalt.
Gewijzigd op 23/07/2017 16:18:21 door - Ariën -
 
Stephan voskamp

stephan voskamp

23/07/2017 16:26:34
Quote Anchor link
Yes!!

Adoptive sultion heeft een goede tip gegeven. Ik heb de statement opgezocht een aangepast.
Toen zag ik dat in de statement : $query = "SELECT Volgnr, Guest FROM Score ORDER by ID ASC LIMIT 50,5";
nog ID stond ipv Volgnr.
De statement is nu $query = "SELECT Volgnr, Guest FROM Score ORDER by Volgnr DESC LIMIT 1";

Het resultaat is nu : Volgnr: 41Guest: 11
Dit is precies wat ik nodig heb. Thanks!!!!


Toevoeging op 23/07/2017 16:27:34:

Weet iemand een goede link naar een nederlandse php tutorial?
 



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.