Hallo,

Ik ben bezig met een formulier schrijven die wanneer deze is ingevuld een mailtje stuurt naar 2 verschillende adressen. Dit lukt echter zit ik met een probleem:
Ik krijg het niet voor elkaar om ervoor te zorgen dat het formulier niet ingevuld kan worden wanneer de tables in de database nog niet bestaan. Ik heb veel gezocht en verschillende manieren geprobeerd waaronder de volgende:


<?php
$sql = "SELECT * FROM table ORDER BY datum ASC" && "SELECT * FROM table ORDER BY datum ASC";
$result = mysqli_query($connect, $sql);

if (mysqli_num_rows($result) < 1){
   echo "De tabellen voor het invoeren van de gegevens zijn nog niet aangemaakt. Probeer het later nog eens.";
   }else{
?>


Hierbij krijg ik de volgende melding (maakt niet uit of de tables wel of niet bestaan):
Error: Oeps er is iets fout gegaan op deze pagina! Probeer later nog eens aan te melden, of klik hier om terug te keren en opnieuw te proberen.Error type: 2: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given

Ook heb ik de volgende manier geprobeerd

<?php
$result = mysql_query('select 1 from `table`');

if($result !== FALSE)
else
{
   echo "table bestaat niet";
     }
?>


Ook deze krijg ik niet werkend, evenals andere constructies. Hoe los ik dit op?
Alvast bedankt :)

PS: er zijn 2 tables die ik gebruik voor dit formulier
want bij de check of de table wel bestaat, heb je nog niet gecontroleerd of alle kolommen wel aanwezig zijn.
en of die van het juiste type zijn.

Deze controle hoort thuis in een installatie procedure.
Of controleer jij bij elke include ook of de betreffende file wel aanwezig is?

Ergens houdt de controle op en ga je er vanuit dat de scripts+database aanwezig zijn.

Userdata wel controleren uiteraard (is de geuploade file aanwezig etc)
Bedankt voor al deze informatie,

Willem ik wil niet eigenwijs overkomen maar probeer het geheel gewoon te snappen, bedankt voor de informatie.

Allemaal bedankt voor de informatie erg fijn dat er zo gereageerd wordt. Ik ben nog maar net begonnen.

Echter zie ik dat ik het niet helemaal goed heb uitgelegd (excuses hiervoor) Het is nl een opdracht die ik moet maken en later als basis wil gebruiken voor meerdere formulieren op verschillende servers. In de opdracht wordt gevraagd dat wanneer de tabellen niet bestaan het formulier niet moet werken, wat is volgens jullie dan de beste oplossing? Moet ik het if else helemaal vergeten en een totaal andere aanpak gebruiken?

Nogmaals bedankt voor alle info!

Michel
Wanneer je dit op verschillende, willekeurige, servers wilt laten draaien, hoe kom je dan op dat moment aan de databasenaam, gebruikersnaam en het paswoord voor MySQL op die betreffende server ?

Zonder begin je namelijk echt niets.

En is dat dan de enige tabel ? Of zijn er ook nog ergens tabellen waar afhankelijkheden in staan ? Een database met slechts één tabel kom je namelijk niet zo erg vaak tegen.
@Michel op het moment dat je het formulier beschikbaar stelt / implementeert moet je er voor zorgen dat de tabel aangemaakt is/wordt, dit is onderdeel van de installatie / initialisatie van de formulier-functionaliteit.

Een metafoor. Je bent van plan om een autorit te gaan maken. Om je er verzekerd van te zijn dat je onderweg niet stil komt te staan zorg je ervoor dat je een volle tank hebt voordat je op stap gaat. Dan hoef je onderweg ook niet continu op de brandstofmeter te kijken omdat je dit vantevoren al geregeld hebt.

Hetzelfde geldt voor je formulier: vast onderdeel van de installatie is het aanmaken van de tabellen. Vervolgens zou je er van uit moeten kunnen gaan dat zodra deze functionaliteit actief is, de tabellen ook beschikbaar zijn. Er is dan geen reden om hier nogmaals expliciet in code op te controleren.

En wat natuurlijk altijd een goed idee is is het testen of de functionaliteit werkt. Dus nadat je tabellen+formulier+whatever ergens hebt geïnstalleerd doorloop je deze eenmalig en controleer je of alles het doet.

Reageren