Vraag tijdens het aanmaken van gastenboek

Status
Niet open voor verdere reacties.
In de bijlage een klein werkend concept wat je zelf verder kan uitbreiden.
 

Bijlagen

  • database1.zip
    1,1 KB · Weergaven: 33
In de bijlage een klein werkend concept wat je zelf verder kan uitbreiden.
Eh, waarom ga je voor elke query een dure connection openen en sluiten?
Persoonlijk zie ik zelf niet echt een reden om $db->query() in een aparte functie te kapselen.

Als je iemand MySQLi wilt aanleren, doe het doen liever op de efficiënte wijze.
 
Eh, waarom ga je voor elke query een dure connection openen en sluiten?
Persoonlijk zie ik zelf niet echt een reden om $db->query() in een aparte functie te kapselen.
Het is voor TS handiger om een werkend voorbeeldje te krijgen die TS zelf kan aanpassen. Dat kan al gauw 15 berichtjes schelen. Maar je hebt gelijk, het telkens opzetten van de connectie gaat ten koste van de performance. Gezien de kennis bij TS leek mij dit een makkelijk te volgen flow in dit voorbeeld. En ja, de connectie hoort buiten de functie. Eigenlijk had ik het beter direct erbuiten kunnen houden.

TS is natuurlijk vrij om de connectie buiten de functie op te zetten en eventueel de query in de body te zetten. In dat geval vervalt de functie.
Overigens is het wel gebruikelijk dat sql afhandeling in een functie wordt gedaan, zeker bij grotere applicaties die met een API werken.

Voorbeeld uit cms:
$dict = NewDataDictionary($db);
$dict->ExecuteSQLArray($sqlarray);
 
Laatst bewerkt:
Hallo allemaal

Met deze opdracht heb ik nog steeds een rare bug. Als ik de data invoer voor de gastenboek (zie eerste screenshot) zie ik belangrijke informatie niet verschijnen in de gastenboek (zie tweede screenshot).

Eerste screenshot :

Schermafbeelding 2018-03-27 om 08.07.34.png

Tweede screenshot:

Schermafbeelding 2018-03-27 om 08.07.49.png

Dit is de html van de formulier:

HTML:
   <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
        <tr>
            <form id="form1" name="form1" method="post" action="addguestbook.php">
                <td>
                    <table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
                        <tr>
                            <td width="117"><label>Naam</label></td>
                            <td width="14">:</td>
                            <td width="357"><input name="name" type="text" id="name" size="40" required=""/></td>
                        </tr>
                        <tr>
                            <td><label>Sport</label></td>
                            <td>:</td>
                            <td>
                             <select required>
                                    <option value="">Kies een sport</option>  
                                    <option value="tennis">Tennis</option>
                                    <option value="voetbal">Voetbal</option>
                                    <option value="running">Running</option>
                                    <option value="tafeltennis">Tafeltennis</option>
                                    <option value="squash">Squash</option>
                                    <option value="wielrennen">Wielrennen</option>
                                    <option value="boksen">Boksen</option>
                             </select>
                            </td>
                        </tr>
                        <tr>
                            <td valign="top"><label>Boodschap</label></td>
                            <td valign="top">:</td>
                            <td><textarea name="comment" cols="40" rows="3" id="comment" required=""></textarea></td>
                        </tr>
                        <tr>
                            <td valign="top"><label>Beoefenaar</label></td>
                            <td valign="top">:</td>
                            <td>
                                <select name="beoefenaar">
                                    <option value="false" selected="selected">No</option>
                                    <option value="true">Yes</option>
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td><input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Submit2" value="Reset" /></td>
                        </tr>
                    </table>
                </td>
            </form>
        </tr>
    </table>

En de tabel in de database ziet er zo uit:

Schermafbeelding 2018-03-27 om 08.11.23.png

In zie, in 1-2-3, geen rare dingen die dat kunnen veroorzaken; jullie wel? De database moet lig zo blijven:

Dit zijn de gegevens van de tabel in de database (deze structuur moet zo blijven):

ID (INT, AUTO_INCREMENT, PRIMARY KEY, NOT NULL)
Naam (50 karakters, NOT NULL)
Boodschap (TEKST, NOT NULL)
Datum (datetime)
Sport (30 karakters)
Beoefenaar (BOOLEAN, default FALSE)
 
Laatst bewerkt:
Hoe wil je de sporten in je selectbox ophalen als die geen name heeft ;-)?

Eigenlijk zou dat toch op moeten vallen als je de andere juist wel getoond krijgt? De werking is haast hetzelfde, dus als je vergelijkt had je het makkelijk zelf kunnen vinden.
"Just debugging"!
 
Laatst bewerkt:
Voor de sport werkt het nu (iid geen 'name' :D )

Maar voor deze, werkt het nog niet, bv. als ik voor 'Yes' zou kiezen, laat het altijd '0' zien in de gastenboek ��

HTML:
<select name="beoefenaar">
<option value="false" selected="selected">No</option>
<option value="true">Yes</option>
</select>

Verder, als ik een nieuwe 'entry' wil maken in de gastenboek (guestbook.html) en vanaf de gastenboek-formulier op 'Gastenboek bekijken' klik, verschijnt een lege gastenboek (why?)
 
Laatst bewerkt:
Kijk naar je datatype in je databasetabel, en wat je erin probeert te plaatsen. ;)

En over je lege gastenboek. Is die echt leeg? Staat de data nig in de database? Is er wel html-code zichtbaar?
Zorg voor goede foutafhandeling en zet error_reporting op maximaal en display_errors aan.
 
Laatst bewerkt:
Het is gelukt :) ik heb zelf een functionaliteit toegevoegd, waardoor een berichtje wordt geplaatst als het gastenboek leeg is.
 
Maar hoevaak is een gastenboek nou leeg :p?
Het lijkt me niet echt de bedoeling dat je steeds berichten gaat verwijderen. ;)
 
Ik neem aan dat je dan geen nieuw bericht plaatst, maar gewoon een bericht toont in de strekking van: "Het gastenboek is nog leeg, klik hier om een bericht te plaatsen."
 
Dat is dus een melding, en geen nieuw bericht ;).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan