Mysqli simpel select met 1 record

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yoeri Achterbergen

Yoeri Achterbergen

12/06/2020 21:13:00
Quote Anchor link
Hi,

Ik probeer om resultaat te krijgen met een simple SELECT query met mysqli.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$result
= $mysqli->query("SELECT name FROM persons WHERE p_id='1801'")
$row = $result->fetch_assoc();
echo $row['name'];
?>


Het betreft steeds maar een enkel resultaat dus een loop is niet nodig omdat elke ID uniek is uiteraard.
Maar op een of andere manier blijf mijn resultaat leeg, terwijl als ik de resultaten tel dan geeft ie aan dat er een is.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if ($result = $mysqli->query("SELECT name FROM persons WHERE post_id='1801'")) {
      print_r($result);
}

?>

Output:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysqli_result Object ( [current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 1 [type] => 0 )


Wat heb ik fout staan in de code of wat mist er?
 
PHP hulp

PHP hulp

10/07/2020 23:48:47
 
Adoptive Solution

Adoptive Solution

12/06/2020 21:25:52
Quote Anchor link
Een ; ontbreekt aan het eind van regel 2.
 
Yoeri Achterbergen

Yoeri Achterbergen

12/06/2020 21:32:24
Quote Anchor link
Ohoh dat word tijd voor een brilletje XD
 
- Ariën -
Beheerder

- Ariën -

12/06/2020 21:36:19
Quote Anchor link
Of je zet je error_reporting en display_errors voluit aan.
Dan schreeuwt PHP wel met de errors.
Gewijzigd op 12/06/2020 21:36:35 door - Ariën -
 
Rob Doemaarwat

Rob Doemaarwat

12/06/2020 21:48:07
Quote Anchor link
Andere tip: gebruik een "echte" editor, die toont gewoon een "rode kringel" - net als de gemiddelde tekstverwerker. Zelf gebruik ik Visual Studio Code (gratis - en nog een berg gratis plug-ins), maar er zijn genoeg andere (betaalde) alternatieven.
 
Thomas van den Heuvel

Thomas van den Heuvel

13/06/2020 22:16:48
Quote Anchor link
Misschien offtopic, maar...

Hier ligt mogelijk ook een wat dieper probleem aan ten grondslag, namelijk hoe je code ontwikkelt en/of hoe je jezelf PHP aan het (aan)leren bent.

@Ariën en @Rob noemen hier al twee voorbeelden van hulpmiddelen die min of meer hetzelfde doel dienen: het geven van visuele hints dat er iets mis is met code. In het eerste geval krijg je dan gewoon foutmeldingen op je scherm gedumpt die bijna altijd direct de vinger op de zere plek leggen. En in het tweede geval kan een semi-intelligente editor de fout al detecteren voordat de code uberhaupt de eerste keer wordt uitgevoerd.

Vaak komt het oplossen van dit soort basale -het betreft immers een fout van de syntax-orde-, en mogelijk ook andere, programmeerproblemen neer op het verzamelen van informatie, of daar zal in ieder geval de zoektocht vaak starten. Het analytisch verzamelen van informatie, om zo in te zoomen op het probleemgebied (oftewel debuggen) is een vaardigheid die je gaandeweg leert als je bezig bent met programmeren... althans, dat zou je verwachten. Misschien speelt dit minder in een Google-/knip-en-plakgeneratie of wanneer je hier meer hobbymatig mee bezig bent?

Op het moment dat er een (heel) groot verschil is tussen de moeilijkheidsgraad van de fout (parse error) en de materie waar je mee bezig bent (database-communicatie) zou je ook kunnen stellen dat je qua ontwikkeling een beetje bent scheefgegroeid, of dat je misschien, in een wat gunstiger geval, wat meer koffie nodig hebt.

Deze site wordt bezocht door een redelijk divers publiek, van mensen die daadwerkelijk in de PHP/IT-sector bezig zijn tot studenten die misschien toch wat eerder aan hun huiswerk hadden moeten beginnen. Het is vaak moeilijk inschatten op welk niveau je in moet haken om te kunnen helpen bij het oplossen van het vraagstuk. Voor al deze mensen is het echter belangrijk dat je continu aan je skillset werkt zodat je op den duur vraagstukken zelf op kunt lossen. En eerlijk gezegd, deze vraag had dit forum eigenlijk niet kunnen bereiken als je zelf wat eenvoudige voorzieningen had getroffen om de ontwikkeling van code naar een wat hoger niveau te tillen.

Programmeren is een beetje als bergbeklimmen. Afhankelijk van je uitrusting, conditie en ervaring kun je hogere bergen bedwingen. Maar waar hier dus een beetje sprake van is is dat we jou de berg opduwen. Je zit dan weliswaar op den duur op een (iets) hoger niveau, maar je hebt dan nog steeds niet de middelen om zélf hogerop te komen. En staat dus binnenkort hier weer te toeteren met een ander vraagstuk van een soortgelijke orde.

Het is dus wellicht hoog tijd dat je even wat minder code klopt, en wat meer tijd stopt in het nadenken over hoe je code klopt.

Om antwoord te geven op je vraag:
Quote:
Wat heb ik fout staan in de code of wat mist er?

Er ontbreken waarschijnlijk een of meer van de volgende zaken:
- een goede editor
- een serverconfiguratie die de ontwikkeling van code bevordert
- misschien inderdaad tijd voor een bril?

Zelfredzaamheid, een onderzoekende aard en een nauwgezette werkhouding helpen natuurlijk ook mee.

Pluspunten voor het zelf proberen op te lossen van het probleem, maar als je tegen een blank scherm aan staart, dan is de kans aanwezig dat de uitvoering van de code het einde van het script niet eens haalt. Nu zou je dit dus kunnen ondervangen door het aanzetten + weergeven van foutmeldingen, maar je had ook simpelweg iets aan het einde van je PHP-bestand kunnen zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
// ...
// code met een fout erin
// ...

?>
[einde]

Als je geen "[einde]" ziet dan is het in ieder geval niet pluis. Maar het aanwezig zijn van deze boodschap is ook geen garantie dat code helemaal foutvrij is, dus voor ontwikkeling loont het altijd de moeite om alle foutmeldingsfunctionaliteit gewoon (en minimaal) op "output" te zetten zodat fouten direct op je scherm verschijnen.
Gewijzigd op 13/06/2020 22:25:35 door Thomas van den Heuvel
 



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.