Hallo Allemaal,

ik ben bezig met een hobbyproject (website voor Miatasatsevenum) hierbij heb ik met Fabrik een formulier gemaakt waarbij ik het ID wil gebruiken om op de website een teller te laten lopen van het aantal inschrijvingen.

nu heb ik in Joomla al een extension waarmee ik PHP script kan laden en de verbinding met de database is ook al tot stand gebracht

$conn = new mysqli($servername, $username, $password, $dbname);

maar nu wil ik de laatste entry van de database kolom "id" gebruiken om te tonen op de website.
ik heb hier het volgende voor bedacht alleen mijn kennis is niet toerijkend en werkt het dus ook niet

$sql = "SELECT id FROM inschrijfformulier";
{
echo "id: " . $sql["id"];
}

dit zal wel te simpel gedacht zijn, maar hoe zou het dan moeten ?
is er iemand die mij kan helpen met dit script ?

alvast bedankt

Grtz Manfred

[size=xsmall]Toevoeging op 01/01/2018 13:29:33:[/size]

Ik ben inmiddels al wat wijzer,
ik wil eigenlijk gewoon records tellen in een mysql db.
Echter uit mijn code komt geen result

// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
$sql = mysqli_query("SELECT * FROM inschrijfformulier");
$itv = mysqli_num_rows($sql);
echo "a". $itv;
//mysqli_close($conn);

zou iemand eens kunnen kijken waar er verkeerd gaat ?

Grtz Manfred
Voor het gemak zou ik procedureel (de mysqli_***() functies) en object-oriënted (objecten en dus met een '->') niet door elkaar gebruiken. Het kán wel, maar het kan wel verwarrend werken.

Tevens zou ik eens goede foutafhandeling gebruiken met mysqli_error(....)

Verder heb we ook code-tags op het forum om code-blokken beter leesbaarder te maken. Zie de 'Veelgestelde Vragen'.
Je selecteert nergens een database, dit is de vierde parameter van mysqli_connect.

En wat @Ariën zegt, MySQLi werkt met objecten, dus er is iets voor te zeggen om enkel de object georiënteerde variant te gebruiken.

Daarnaast is mysqli_connect een alias. Aliassen hebben een nogal onzeker bestaan en kunnen mogelijk (voortijdig) geschrapt worden. Reden te meer om gewoon van de OOP-variant gebruik te maken. Of in ieder geval het gebruik van aliassen te vermijden.
**quoteknip**

Oke bedankt voor de info.
Kunnen jullie een advies geven hoe ik het dan het beste kan oplossen.

Grtz Manfred

Ik zou als eerst een database meegeven in de vierde parameter van mysqli_connect()

Verder raad ik aan om te verdiepen in de OO-variant van MySQLi. Dus met de pijltjes ( -> ).
om nog op de vraag zelf in te gaan:


$sql = mysqli_query("SELECT * FROM inschrijfformulier");


je mist hier een parameter: $conn:

$sql = mysqli_query($conn, "SELECT * FROM inschrijfformulier");


Maar je kunt je indenken dat SELECT * in veel toepassingen nogal wat data op gaat leveren. Vergelijk: in de supermarkt je als manager afvragen hoeveel cola er nog staat en je medewerker 4 pallets aan kratten op laten halen naar kantoor en tot de conclusie komen dat er 400 flessen zijn.

Je had ook de medewerker het magazijn in kunnen sturen met de vraag "tel de cola flessen" en hem met het kladje met het getal "400" terug kunnen laten komen.

Oftewel:


$sql = mysqli_query($conn, "SELECT COUNT(*) AS aantal FROM inschrijfformulier");


Bij 10 inschrijvingen met een naam en een emailadres merk je het verschil waarschijnlijk niet zo erg.
Maar als de query's ingewikkelder worden, en uit meerdere tabellen informatie moeten halen je uiteindelijk aan het getal 400.000 komt, ga je merken dat je vele MB's vanuit je database verzamelt (en evt. naar PHP overpompt.)
Zeker in combinatie met de * uit de query, waarbij je misschien ongemerkt ook nog de pdf-handleiding en een hi-res foto mee pakt van je producten.

Beter wen je je dan aan om te pakken wat je nodig hebt: alleen het aantal
Hallo allemaal,

Ik heb het inmiddels werkend, bedankt voor de hulp

Reageren