login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Mysqli (Opgelost)

Offline Alexjeee - 15/10/2014 12:00
Avatar van AlexjeeeLid Beste,

Ik heb al van meerdere mensen gehoorkom d dat het beter was om aan Mysqli te beginnen en dat ben ik ook gaan doen. Alleen ik er toch nog niet helemaal uit, dus ik wilde vragen of iemand mij 2 voorbeelden kon geven:

Ik heb hier het config bestand (Die op elke pagina wordt geincludeerd) en een random stukje code uit een pagina die gegevens ophaalt. Zou iemand voor mij die zodanig kunnen aanpassen naar Mysqli en opmerkingen erbij kan zetten?

Alvast bedankt! 

config:
  1. <?php
  2.  
  3. if(!defined('ALPHA') || ALPHA !== 1) {
  4. die('Deze pagina is niet rechtstreeks aan roepbaar!');
  5. }
  6.  
  7. if(!defined('BRAVO')) {
  8. define('BRAVO', true);
  9. }
  10.  
  11. include $_SERVER['DOCUMENT_ROOT'].'/conf/functions/datediff.php';
  12. include $_SERVER['DOCUMENT_ROOT'].'/conf/functions/log.php';
  13. include $_SERVER['DOCUMENT_ROOT'].'/conf/functions/ubb.php';
  14.  
  15. include $_SERVER['DOCUMENT_ROOT'].'/conf/classes/sidn_contract_gen.php';
  16. include $_SERVER['DOCUMENT_ROOT'].'/conf/classes/package_contract_gen.php';
  17. include $_SERVER['DOCUMENT_ROOT'].'/conf/classes/factuur_gen.php';
  18. include $_SERVER['DOCUMENT_ROOT'].'/conf/classes/login.php';
  19. include $_SERVER['DOCUMENT_ROOT'].'/conf/classes/httpsocket.php';
  20.  
  21. $mysqli = mysqli_connect("localhost", "Gebruikersnaam", "Wachtwoord", "Database");
  22.  
  23. $cron['logfile'] = 'crons/logs/log.%s.'.date('d-m-Y_H-i-s').'.txt';
  24.  
  25. $das['host'] = 'localhost';
  26.  
  27. $login = new Login();
  28. $da = new HTTPSocket();
  29. $server_ssl="Y";
  30. ?>


En een stukje random code:

Edit: Als ik het goed begrijp zou ik ook boven iedere query een datbase verbinding moeten maken. Maar dit lijkt me een beetje overbodig ?
  1. <?php
  2. $Asql = "SELECT tld, price, contract, actie, dns FROM domains";
  3. $Aquery = mysql_query($Asql) or die(mysql_error());
  4.  
  5. if(mysql_num_rows($Aquery) >= 1) {
  6. while(false !== ($Arow = mysql_fetch_assoc($Aquery))) {
  7. ?>
  8. <div style="float: left; width: 20%;">
  9. <?=$Arow['tld']; ?></div>
  10. <div style="float: left; width: 20%;">
  11. <?=$Arow['price']; ?></div>
  12. <div style="float: left; width: 20%;">
  13. <?=$Arow['contract']; ?></div>
  14. <div style="float: left; width: 20%;">
  15. <?=$Arow['actie']; ?></div>
  16. <div style="float: left; width: 20%;">
  17. <?=$Arow['dns']; ?></div>
  18. <div style="clear: left;"></div>
  19.  
  20. <?php
  21. }
  22. }else{
  23. echo 'Momenteel zijn er nog geen domein extensies aanwezig. U kunt ze opvragen via!';
  24. }
  25. ?>


Ik zou het zeer op prijs stellen 
Ik hoop dat het me niet al te veel werk uiteindelijk gaat opleveren dat Mysql omzetten naar Mysqli, zijn dan aardig wat pagina's die ik moet gaan aanpakken. Maar ook weer een mooie kans om me code op te schonen.

9 antwoorden

Gesponsorde links
Offline Thomas - 15/10/2014 12:06
Avatar van Thomas Moderator  Tutorial
Bedankt door: Jointjeff
Offline Alexjeee - 15/10/2014 12:47
Avatar van Alexjeee Lid Okee, maar nu heb ik dit stukje code:

  1. <?php
  2. if ($con->real_query(' SELECT * FROM news ORDER BY id DESC LIMIT 5 '));
  3. $res = new mysqli_result($con); // of new MySQLi_Result($con)
  4. // ophalen van resultaatrijen, gebruik je favoriete fetch functie
  5. while ($row = $res->fetch_assoc()) {
  6. $title = preg_replace('# #si', '_', $row['subject']);
  7. $news = wordwrap($Arow['message'], 120, '<br />', true);
  8. $news = substr($news, 0, 100).'...<br />';
  9. }
  10. ?>
  11. <b><font color="black"><div class="ititle">'.$row['subject'].'</div></font></b>
  12. <div class="nitem">
  13. '.ubb($news).'
  14. <a href="/?p=news&part=view&id='.$row['id'].'&title='.$title.'" id="tooltip" class="a_p" title=" '.$row['message'].' ">Meer...</a>
  15. </div><br />
  16. <?php
  17. }else{
  18. echo 'Momenteel zijn er nog geen Updates/Storingen.!';
  19. ?>


Maar hij blijft maar aangeven unexpected } op lijn blabla

Op de lijne van }else{

wat doe ik fout dan?
Offline Thomas - 15/10/2014 12:56
Avatar van Thomas Moderator
  1. <?php
  2. if ($con->real_query(' SELECT * FROM news ORDER BY id DESC LIMIT 5 '));
  3. ?>


... -_-


daarnaast: spring je code eens fatsoenlijk in, dan zie je waarschijnlijk ook sneller waar je de mist in gaat met je accolades.

Offline Alexjeee - 15/10/2014 13:04
Avatar van Alexjeee Lid Wat bedoel je met die: ...-_-
Bij een andere page werkt dat gewoon hoor...

Dus snap niet wat de fout daar is...
Offline Jointjeff - 15/10/2014 13:29 (laatste wijziging 15/10/2014 13:31)
Avatar van Jointjeff HTML interesse Je plaats een } else { terwijl er geen accolade geopend is bij de if-statement van je real_query.

Dus je werkt zo:
  1. if ( $con->real_query(' SELECT * FROM news ORDER BY id DESC LIMIT 5 ') ) {
  2. // query
  3. } else {
  4. // anders...
  5. }


Of zo:
  1. if ( $con->real_query(' SELECT * FROM news ORDER BY id DESC LIMIT 5 ') ):
  2. // query
  3. else:
  4. // anders
  5. endif;
Bedankt door: Alexjeee
Offline Alexjeee - 15/10/2014 13:34
Avatar van Alexjeee Lid dus als ik het goed begrijp zorgt mysqli ervoor dat je je html code wel tussen de echo '..' moet plaatsen. Om zo ook gebruik van de else te kunnen maken?
Offline Jointjeff - 15/10/2014 13:43 (laatste wijziging 15/10/2014 14:21)
Avatar van Jointjeff HTML interesse Hier de code. Hopelijk zie je dan ook wat er mis ging in je eigen code.
-- edit --
De code die hier stond was fout. Als je uitgaat van FangorN's tutorial zie je tal van voorbeelden. Dit is er een waarbij de query is aangepast naar die uit jouw script.

  1. <?php
  2. $res = mysqli_query($con, ' SELECT * FROM news ORDER BY id DESC LIMIT 5 ');
  3.  
  4. if (mysqli_num_rows($res)) {
  5. // $row = mysqli_fetch_assoc($res);
  6.  
  7. while ( $row = $res->fetch_assoc() ) {
  8. $title = preg_replace('# #si', '_', $row['subject']);
  9. $news = wordwrap($Arow['message'], 120, '<br />', true);
  10. $news = substr($news, 0, 100).'...<br />';
  11.  
  12. ?>
  13.  
  14. <b>
  15. <font color="black">
  16. <div class="ititle"><?php echo $row['subject']; ?></div>
  17. </font>
  18. </b>
  19. <div class="nitem">
  20. <?php ubb( $news ); ?>
  21. <a href="/?p=news&part=view&id=<?php echo $row['id']; ?>&title='.$title.'" id="tooltip" class="a_p" title="<?php echo $row['message']; ?>">Meer...</a>
  22. </div>
  23. <br />
  24.  
  25. <?php
  26. }
  27.  
  28. } else {
  29. // toon een mededeling dat er geen resultaten gevonden zijn
  30. // ...
  31. }
  32.  
  33. mysqli_free_result($res);
Offline Alexjeee - 15/10/2014 13:54
Avatar van Alexjeee Lid Okee thanks! Dat werkt, alleen de else laat die nog steeds niet zien...

Heb hem aangepast, want als er geen nieuws items zijn zou die een bericht moeten tonen met "Er zijn geen Updates/Storingen"

Maar dat doet die niet:

  1. <?php
  2. if ( $con->real_query(' SELECT * FROM news ORDER BY id DESC LIMIT 5 ') ) {
  3.  
  4. $res = new mysqli_result( $con ); // of new MySQLi_Result($con)
  5.  
  6. // ophalen van resultaatrijen, gebruik je favoriete fetch functie
  7. while ( $row = $res->fetch_assoc() ) {
  8.  
  9. $title = preg_replace('# #si', '_', $row['subject']);
  10. $news = wordwrap($row['message'], 120, '<br />', true);
  11. $news = substr($news, 0, 100).'...<br />';
  12. ?>
  13.  
  14. <b>
  15. <font color="black">
  16. <div class="ititle"><?php echo $row['subject']; ?></div>
  17. </font>
  18. </b>
  19. <div class="nitem">
  20. <?php echo ubb( $news ); ?>
  21. <a href="/?p=news&part=view&id=<?php echo $row['id']; ?>&title=<?php echo $row['title']; ?>" id="tooltip" class="a_p" title="<?php echo $row['message']; ?>">Meer...</a>
  22. </div>
  23. <br />
  24. <?php
  25. }
  26.  
  27. } else {
  28.  
  29. echo('Er zijn geen domeinen gevonden');
  30.  
  31. }
  32. ?>
Offline Thomas - 15/10/2014 14:12
Avatar van Thomas Moderator Je begint al met het ophalen van resultaten, zonder te controleren of er uberhaupt wel resultaten zijn...

Vaak is de structuur van een lap code met een query als volgt:
  1. $res = <je query>;
  2. if (<num_rows functie> > 0) {
  3. while(<haal een resultaatrij op m.b.v. $res>) {
  4. <doe zut met je resultaatrij>
  5. }
  6. } else {
  7. <toon boodschap dat er geen resultaten zijn>
  8. }
  9. <geef je resultaat vrij>


Zoveel staat ook in de tutorial.
Bedankt door: Jointjeff
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.295s