Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [php] print vanuit database aanpassen (https://forum.scholieren.com/showthread.php?t=383443)

Ik 19-02-2003 20:43

[php] print vanuit database aanpassen
 
Met de volgende code wordt het gastenboek getoond:

PHP-code:

<?php
  
include("../connect.php");
  
$sql="SELECT DATE_FORMAT(datum,'%d-%m-%Y %H:%i:%s') AS stringdatum, naam, cijfer, reactie FROM gastenboek ORDER by datum DESC";
  
$res=mysql_query($sql$db);
  while (
$ligne mysql_fetch_object ($res))
  {
   print 
"<tr>";
   print 
"<td>$ligne->stringdatum</td>";
   print 
"<td>$ligne->naam</td>";
   print 
"<td>$ligne->cijfer</td>";
   print 
"<td>$ligne->reactie</td>";
   print 
"</tr>";
  }
  
mysql_free_result ($res);
  
mysql_close($db);
 
?>

In de kolom "cijfer" zit ook een aantal malen het getal "0". Deze stammen nog uit de tijd toen ik deze functie nog niet had toegevoegd.
Mijn vraag is nou hoe ik die "0"-en die in het gastenboek worden weergegeven kan veranderen in "-". Het lukt me maar niet...

Enlightenment 19-02-2003 20:46

Je wilt alle 0-en in een string veranderen naar een streepje?

Martin 19-02-2003 20:46

Dat moet toch kunnen met str_replace?

Enlightenment 19-02-2003 20:48

Citaat:

Martin schreef:
Dat moet toch kunnen met str_replace?
Ja dat is heel makkelijk, maar ik weet niet precies wat hij nou wilt, dus vraag ik het ff :)

Ik 19-02-2003 20:57

Citaat:

Enlightenment schreef:
Je wilt alle 0-en in een string veranderen naar een streepje?
ja, klopt.
Alle 0-en in de kolom getal, moeten voordat ze worden geprint in een - worden veranderd.


Heb wat met if, then, = geprobeerd, maar dat lukte niet. Is dat logisch?

Martin 19-02-2003 21:00

Citaat:

Ik schreef:
Heb wat met if, then, = geprobeerd, maar dat lukte niet. Is dat logisch?
Het is inderdaad nogal logisch ;)

Doe dit eens:

PHP-code:

$var str_replace("0","-",$var); 


Ik 19-02-2003 21:08

Citaat:

Martin schreef:
Het is inderdaad nogal logisch ;)

Doe dit eens:

PHP-code:

$var str_replace("0","-",$var); 


thanks...alleen mijn 10-en worden nou "1-" :D

Ik 19-02-2003 21:10

Citaat:

Ik schreef:
thanks...alleen mijn 10-en worden nou "1-" :D
oke, provisorisch opgelost:

PHP-code:

$ligne->cijfer str_replace("0","-",$ligne->cijfer);
$ligne->cijfer str_replace("1-","10",$ligne->cijfer); 

Kan dit netter? :D

Harrie 19-02-2003 21:10

Citaat:

Ik schreef:
thanks...alleen mijn 10-en worden nou "1-" :D

$var = str_replace("0","-",$var);
$var = str_replace("1-","10",$var);
:p

of als je voor elke 0 een spatie hebt:
$var = str_replace(" 0","-",$var);

Ik 19-02-2003 21:12

Citaat:

Harrie schreef:
$var = str_replace("0","-",$var);
$var = str_replace("1-","10",$var);

Ik was lekker sneller :D:P

Triloxigen 19-02-2003 21:18

if ($var == "0") $var = "-";

Of is het echt als er ook meerdere troep in een string zitten?

Enlightenment 19-02-2003 21:19

Het zou ook zo kunnen:
PHP-code:

while (strstr($string,'0'))
 
substr_replace($string,'0',strpos($string,'-')); 


Ik 19-02-2003 21:20

ennuh...hoe kan je dit dan voor "24-06-2002 00:00:00" toepassen? Dat de "0"-en dus verdwijnen? De "0" voor de "6" en tussen de "2"-en moet natuurlijk blijven :)

Enlightenment 19-02-2003 21:29

Citaat:

Ik schreef:
ennuh...hoe kan je dit dan voor "24-06-2002 00:00:00" toepassen? Dat de "0"-en dus verdwijnen? De "0" voor de "6" en tussen de "2"-en moet natuurlijk blijven :)
Citaat:

Ik schreef:
ja, klopt.
Alle 0-en in de kolom getal, moeten voordat ze worden geprint in een - worden veranderd.


Heb wat met if, then, = geprobeerd, maar dat lukte niet. Is dat logisch?

Je wilde alle 0-en in een string (die van de kolom getal dus) veranderen naar een streepje. Maar nu zeg je dat je dat niet altijd wilt? Wat is het nou? :p

TouchOfDarkness 19-02-2003 22:33

wat is je kolomtype voor die datum dan??

als dat een timestamp(14) is, dan komt een zerofilled datum er zo uit: 00000000000000; dan kan je in je code toch wel afvangen dat als je output dat formaat heeft, geef dan een streepje? of is het niet altijd zo dat er een volledig lege datum uit komt?

eerlijk gezegd vind ik die str_replace() oplossing niet echt handig.

Ik 20-02-2003 07:33

Citaat:

Enlightenment schreef:
Je wilde alle 0-en in een string (die van de kolom getal dus) veranderen naar een streepje. Maar nu zeg je dat je dat niet altijd wilt? Wat is het nou? :p
:P

Ik 20-02-2003 07:40

Citaat:

TouchOfDarkness schreef:
wat is je kolomtype voor die datum dan??

als dat een timestamp(14) is, dan komt een zerofilled datum er zo uit: 00000000000000; dan kan je in je code toch wel afvangen dat als je output dat formaat heeft, geef dan een streepje? of is het niet altijd zo dat er een volledig lege datum uit komt?

eerlijk gezegd vind ik die str_replace() oplossing niet echt handig.

nope.
De datum staat er wel altijd, maar de tijd niet. Die tijd ( 00:00:00) moet gewoon helemaal verdwijnen, zodat uitsluitend de datum overblijft.
Een tijd van (00:00:00) komt wat ongeloofwaardig over, nietwaar? :)

Ik 20-02-2003 07:49

ah, ik heb ontdekt hoe ik het kan oplossen. zal met regulieren expressies moeten werken dan. pff...kijk ik nog wel naar., ik moet allang aan het werk zijn voor mijn stage :D

Bedank! :)

eddie 20-02-2003 08:18

Dit zou moeten werken:
Code:

SELECT
  DATE_FORMAT(datum,'%d-%m-%Y %H:%i:%s') AS stringdatum,
  naam,
  IF( cijfer = 0, '-', CAST( cijfer AS CHAR( 6 ) ) ) AS cijfer,
  reactie
FROM
  gastenboek
ORDER
  by datum DESC

http://www.mysql.com/doc/en/Control_flow_functions.html

JJzD 20-02-2003 11:05

je zou uit je timestamp ook enkel de datum kunnen opvragen :)

Ik 20-02-2003 11:45

Citaat:

JJzD schreef:
je zou uit je timestamp ook enkel de datum kunnen opvragen :)
nope
Er zijn een rijen waarin de tijd opgevraagd dient te worden :P

P=Hp² 20-02-2003 13:38

Waarom sla je de data (datums :confused: ) niet met php op als time()-timestamp? Dan kan je er met date() elk formaat uithalen dat je wilt.

Ik 20-02-2003 14:22

Citaat:

P=Hp² schreef:
Waarom sla je de data (datums :confused: ) niet met php op als time()-timestamp? Dan kan je er met date() elk formaat uithalen dat je wilt.
omdat, zoals ik al zei, deze functie te zijner tijd is uitgebreid. Ik heb een kolom met die informatie erin, maar in de ene regel moet het op een andere manier dan in een andere regel, omdat er nog "ode" gegevens tussen staan.

zazzie 20-02-2003 20:01

als je datum in je databees dit format (24-06-2002 00:00:00) heeft en je wilt alleen de datum dan kan je die toch ook gewoon op de spatie exploden?

PHP-code:

$data=explode(" "$row[datum]);
$datum=data[0]; 

:confused:

Ik 20-02-2003 20:26

Citaat:

zazzie schreef:
als je datum in je databees dit format (24-06-2002 00:00:00) heeft en je wilt alleen de datum dan kan je die toch ook gewoon op de spatie exploden?

PHP-code:

$data=explode(" "$row[datum]);
$datum=data[0]; 

:confused:

Als je goed leest zie je dat ik dan niet het gewenste resultaat bereik.

Maar is heb het al hoe ik het wil, dus deze topic mag dicht :)


Alle tijden zijn GMT +1. Het is nu 06:16.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.