Hoe laat ik alleen de eerste of laatste rij zien uit een tabel
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)
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
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();
?>
$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
Is dit alle code?
Dit is de tweede code:
Code (php)
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
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();
?>
$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.
Je gebruikt $mysqli i.p.v $conn.
Code (php)
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
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();
?>
$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.
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)
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 -
Als de tabel 25 records heeft en je zoekt 5 records vanaf record 50 zal je weinig vinden.
De code is nu
Code (php)
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
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();
?>
$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 -
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 -
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?