abonnement Unibet Coolblue Bitvavo
pi_25721145
quote:
Op donderdag 24 maart 2005 10:22 schreef saban het volgende:

[..]

<?
$string = "Dit moet ingekort worden door 20 karakters";
$string = substr("$string", 0, 20);
$string = "$string" . "...";
?>

Niet getest, je moet hem natuurlijk uitbreiden (bijvoorbeeld is de string niet eens 20 karakters lang).
kan het ook zo dat als de 20 karakters bereikt zijn, dat dán pas de puntjes er achter komen?
pi_25724414
quote:
Op donderdag 24 maart 2005 23:53 schreef jeroen-heeft-koffie-nodig het volgende:

[..]

kan het ook zo dat als de 20 karakters bereikt zijn, dat dán pas de puntjes er achter komen?
1
2
3
4
5
6
7
<?php
$string = "Dit moet ingekort worden door 20 karakters";
if(strlen($string) > 20)) {
$string = substr("$string", 0, 20);
$string = "$string" . "...";
}
?>
pi_25724857
quote:
Op donderdag 24 maart 2005 23:53 schreef jeroen-heeft-koffie-nodig het volgende:

[..]

kan het ook zo dat als de 20 karakters bereikt zijn, dat dán pas de puntjes er achter komen?
1
2
if(strlen($string > 20))
  $string = substr($string,0,18).'..' ;


Het lijkt me iig, dat de string met puntjes ook niet langer dan 20 tekens zou moeten zijn toch?
pi_25726380
Nou bedankt allemaal het is me gelukt (stond toch een foutje in).
Maar nu zit ik te kloten met while en if e.d.
ik heb een tabel met daarin mensen die een bepaalde fietstocht hebben gereden. Sommige meerdere keren (dit staat in het veld aantal).
ik wil nu zo sorteren dat iedereen die hem 1 keer heeft gefietst bijelkaar staan en 2 keer ook (enzoverder).

Maar wel dat mensen die hem 5 keer fietsen er ook bijstaan bij 4,3,2 en 1 keer fietsen.
Heb zelf wel wat zitten kloten, maar de header van de tabel wordt telkens opnioeuw gemaakt, tenzij ik m uit de whilelus haal.
Het moet iets worden als:
http://home.planet.nl/~bijma061/register.html

dit bak ik ervan: http://achterop23.coolinc(...)nc.info/register.php
pi_25726476
mijn code nog ff:
quote:
<?php
error_reporting(E_ALL);
// Maak verbinding met server
mysql_connect ("coolinc.info","achterop23_100", "qweqwe") or die(mysql_error());

// Selecteer database
mysql_select_db("achterop23_100") or die(mysql_error());


// Selecteer alle id's en titels van de tabel
$query = "SELECT * FROM register" or die(mysql_error());


$resultaat = mysql_query($query) or die(mysql_error());
echo "<table width=\"80%\" border=\"2\">


<tr>
<td>nummer</td>
<td>m/v</td>
<td>naam</td>
<td>plaats</td>
<td>club</td>
<td>aantal</td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>";
while ($rij = mysql_fetch_assoc($resultaat)){
if ($rij['registeraantal'] >= 1) {
print "1 keer gefietst";
echo"<tr><td>"; print $rij['registerid']; echo "</td>";
echo"<td>"; print $rij['registermv']; echo "</td>";
echo"<td>"; print $rij['registernaam']; echo "</td>";
echo"<td>"; print $rij['registerplaats']; echo "</td>";
echo"<td>"; print $rij['registerclub']; echo "</td>";
echo"<td>"; print $rij['registeraantal']; echo "</td>";
echo"<td>"; print $rij['registerj1']; echo "</td>";
echo"<td>"; print $rij['registerj2']; echo "</td>";
echo"<td>"; print $rij['registerj3']; echo "</td>";
}
if ($rij['registeraantal'] >= 2) {
print "2 keer gefietst";
echo"<tr><td>"; print $rij['registerid']; echo "</td>";
echo"<td>"; print $rij['registermv']; echo "</td>";
echo"<td>"; print $rij['registernaam']; echo "</td>";
echo"<td>"; print $rij['registerplaats']; echo "</td>";
echo"<td>"; print $rij['registerclub']; echo "</td>";
echo"<td>"; print $rij['registeraantal']; echo "</td>";
echo"<td>"; print $rij['registerj1']; echo "</td>";
echo"<td>"; print $rij['registerj2']; echo "</td>";
echo"<td>"; print $rij['registerj3']; echo "</td>";
}
if ($rij['registeraantal'] >= 3) {
print "3 keer gefietst";
echo"<tr><td>"; print $rij['registerid']; echo "</td>";
echo"<td>"; print $rij['registermv']; echo "</td>";
echo"<td>"; print $rij['registernaam']; echo "</td>";
echo"<td>"; print $rij['registerplaats']; echo "</td>";
echo"<td>"; print $rij['registerclub']; echo "</td>";
echo"<td>"; print $rij['registeraantal']; echo "</td>";
echo"<td>"; print $rij['registerj1']; echo "</td>";
echo"<td>"; print $rij['registerj2']; echo "</td>";
echo"<td>"; print $rij['registerj3']; echo "</td>";
}
}

echo"</tr></table>";
?>
pi_25727002
Sorteren doe je normaal gesproken in de database. In dit geval:

1
2
3
SELECT * 
FROM cols
ORDER BY registeraantal


Dan hou je in de loop bij met welke tabel je bezig bent: $huidigAantal. Die zet je voor de loop op 0.
Als $rij['registeraantal'] ongelijk is aan $huidigAantal, dan weet je dat je een nieuwe tabel moet beginnen. Een nieuwe tabel beginnen houd in:
- indien nodig de vorige tabel afsluiten
- $huidigAantal bijwerken
- het huidige aantal printen
- nieuwe tabel met header printen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25727092
quote:
Op vrijdag 25 maart 2005 11:04 schreef SuperRembo het volgende:
Sorteren doe je normaal gesproken in de database. In dit geval:
[ code verwijderd ]

Dan hou je in de loop bij met welke tabel je bezig bent: $huidigAantal. Die zet je voor de loop op 0.
Als $rij['registeraantal'] ongelijk is aan $huidigAantal, dan weet je dat je een nieuwe tabel moet beginnen. Een nieuwe tabel beginnen houd in:
- indien nodig de vorige tabel afsluiten
- $huidigAantal bijwerken
- het huidige aantal printen
- nieuwe tabel met header printen
thanks!
ik zat al aan complexe geneste loops te denken,

maar aan sorteren in de database had ik totaal niet gedacht
pi_25729056
Kan iemand mij een zetje in de goede richting geven?

Ik heb een tekst bv:

1
2
3
4
Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei


Nu wil ik alleen de zinnen beginnend met 'Bomen' uit de tekst halen.

Ik kan met preg_match het aantal er wel uithalen, maar ik wel ook de twee regels tonen. Wat kan ik hier het beste voor gebruiken.

Dit heb ik al geprobeerd, maar het resultaat is dan 0.
1
2
3
4
5
6
7
8
9
10
<?php
$string
= "
Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei"
;

$string = preg_match("/^Bomen/", $string);
echo
$string
?>
pi_25729270
De makkelijkste oplossing is om de string eerst op te splitsen in losse regels. Dat kan met split of explode.

[edit]

Het kan ook met een regexp

1$count = preg_match('/^Bomen.*/mi', $string, $matches);
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25731293
Dit werkt helaas niet. Het resultaat is dan 'Array' en dat is niet wat ik wil.
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$string
= "
Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei"
;

$string = explode ('\n', $string);

$count = preg_match('/^Bomen.*/mi', $string, $matches);
echo
$count
?>


Ook wanneer ik $matches of $string echo krijg ik hetzelfde resultaat.

Wat moet ik doen om de twee zinnen dit met bomen te beginnen als resultaat onder elkaar krijg
pi_25731384
quote:
Op vrijdag 25 maart 2005 13:42 schreef nummer9 het volgende:
Dit werkt helaas niet. Het resultaat is dan 'Array' en dat is niet wat ik wil.
Een array kun je ook niet zomaar echo'en

Doe eens dit:
1print_r($count);
pi_25731423
Je moet OF de string spilllen en dan jouw rexexp op de elementen van de array loslaten met een loopje OF je gebruikt mijn regexp maar dat ZONDER split

Die explode van je doet overigens ook niet wat je wil. '\n' is een string van 2 tekens, een backslash en een n. "\n" is een string van 1 teken, een linefeed.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25731507
quote:
Op vrijdag 25 maart 2005 13:42 schreef nummer9 het volgende:
Wat moet ik doen om de twee zinnen dit met bomen te beginnen als resultaat onder elkaar krijg
De twee zinnen die je zoekt staan in de array $matches. Die kan je dan zelf weer aan elkaar plakken met bijvoorbeeld implode() of join().
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25731535
Wat ik nu krijg is vaag, ik krijg nu een foutmelding op

1$count = preg_match('/^Bomen.*/mi', $string, $matches);


Wanneer ik onderstaande code uitvoer krijg ik deze foutmelding:

Warning: preg_match() expects parameter 2 to be string, array given in c:\wamp\www\test\test.php on line 55

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$string
= "
Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei"
;

$string = explode ('\n', $string);

$count = preg_match('/^Bomen.*/mi', $string, $matches);
print_r($count);
?>


Iemand nog tips waar ik het in moet zoeken?
pi_25731710
quote:
Op vrijdag 25 maart 2005 13:51 schreef SuperRembo het volgende:

[..]

De twee zinnen die je zoekt staan in de array $matches. Die kan je dan zelf weer aan elkaar plakken met bijvoorbeeld implode() of join().
Bedankt allemaal, ik kom al iets verder. Wanneer ik deze code uitvoer krijg ik echter alleen de zin 'Bomen krijgen weer bladeren'. Wat kan ik doen om te kijken wat er in de array $matches zit?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$string
= "
Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei
"
;

$count = preg_match('/^Bomen.*/mi', $string, $matches);

$resultaat = implode(",", $matches);

print
$resultaat;
?>


Nogmaals bedankt!
pi_25731886
quote:
Op vrijdag 25 maart 2005 14:00 schreef nummer9 het volgende:

Wanneer ik deze code uitvoer krijg ik echter alleen de zin 'Bomen krijgen weer bladeren'.
O ja, het moet natuurlijk preg_match_all zijn.
quote:
Wat kan ik doen om te kijken wat er in de array $matches zit?
Dat kan met var_dump of print_r.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25732290
quote:
Op vrijdag 25 maart 2005 14:07 schreef SuperRembo het volgende:

[..]

O ja, het moet natuurlijk preg_match_all zijn.
[..]

Dat kan met var_dump of print_r.
Beide zijn op te zoeken als ik niet zo snel resultaat wilde hebben. Ik heb nu inderdaad de resultaten. Bedankt allemaal en ik zal toch echt beter moeten zoeken!
pi_25733882
Je zou het zo kunnen doen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$string
= "Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei"
;

$string = explode ("\n", $string);

$match = "bomen";
$matches = array();

$x = 0;
foreach(
$string as $val) {
    if(
stristr( substr ( $val, 0, strlen($match) ), $match) ) $matches[] = $x;
    
$x++;
}

echo
"Zinnen die beginnen met ". $match .": ". implode(", ", $matches);
?>


Dit werkt niet omdat er nu letterlijk op de string '\n' gezocht wordt:
1
2
3
<?php
$string
= explode ('\n', $string);
?>

Door het tussen dubbele aanhalingstekens te zetten wordt het omgezet in een 'newline'-character.

-edit-
ik had dit topic niet de halve dag open moeten laten staan lama
pi_25746515
ik wil iets dat hij kijkt in de database, en dat de inhoud met het hoogste getal (in dit geval 'gebruikers_id') als resultaat dr uit komt rollen
pi_25746990
1select max(gebruikers_id) from table
pi_25747045
Dat kan met ORDER BY in combinatie met LIMIT 1.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zaterdag 26 maart 2005 @ 17:29:52 #112
43624 Martijn_77
It was a good year
pi_25760758
zijn er ook site waar je standaard stukken PHP kunt vinden?
Experience is what you get when you don't get what you wanted
Take my advice ... I don't use it anyway...
Een goede Fok! Search
Een goede Fok! Search
pi_25760850
Je kunt googelen naar 'php code snippets' (volgens mij heten stukjes 'snippets'... kutwoord)
Maar waarom zou je? Het is het leukst om het zelf te leren en schrijven
pi_25767632
loop tegen een klein probleempje aan:
heb deze code:
1
2
3
4
5
6
7
8
9
<?php
function Whois($string)
{
$string = explode("|",$string);
$whois = "SELECT * FROM `users` WHERE ID='".$string[0]."'";
$result = mysql_query($whois) or die(mysql_error());
return
$result;
}
?>


als $string wordt het volgende aan geleverd:
quote:
1|21-03-05|15:00
wat moet er gebeuren:
ik vraag de functie op om aan de hand van een ID een username te achterhalen en de username terug te geven..
ik krijg met $result een Resource id #5 terug...
oke ka ik mee leven:
dus ik zorg dat hij alleen kolom 2 pakt d.m.v. $result[2]
en toen was ie leeg
ditzelfde geldt voor [1] of [0] er komt niks terug
als ik get_resource_type() doe dan zegt ie wel netjs dat het een mysql result is???

ik snap em niet meer, wat zie ik over het hoofd...??
ow en ja ik ben 100% zeker van het feit dat ik de goede gegevens meegeef aan de whois functie

als ik de query uyitvoer inb phpmyadmin geeft hij ook geen fout, heb ook al de quotes bij de where clause weggehaald... niks

wie kan mij helpen???
pi_25768229
Je vergeet

1$row = mysql_fetch_assoc($result);


Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25768388
quote:
Op zaterdag 26 maart 2005 22:15 schreef SuperRembo het volgende:
Je vergeet
[ code verwijderd ]

die werkte niet maar
1
2
mysql_fetch_array($result)
return $result[1];

wel

dat ik daar niet op gekomen ben
pi_25772470
quote:
Op vrijdag 25 maart 2005 11:04 schreef SuperRembo het volgende:
Sorteren doe je normaal gesproken in de database. In dit geval:
[ code verwijderd ]

Dan hou je in de loop bij met welke tabel je bezig bent: $huidigAantal. Die zet je voor de loop op 0.
Als $rij['registeraantal'] ongelijk is aan $huidigAantal, dan weet je dat je een nieuwe tabel moet beginnen. Een nieuwe tabel beginnen houd in:
- indien nodig de vorige tabel afsluiten
- $huidigAantal bijwerken
- het huidige aantal printen
- nieuwe tabel met header printen
Dat is nu mooi gelukt http://achterop23.coolinc(...)nc.info/register.php

alleen hoe krijg ik een enter in een print of echo?

de code
quote:
$query = "SELECT * FROM register ORDER BY registeraantal" or die(mysql_error());

$resultaat = mysql_query($query) or die(mysql_error());
print "1 keer gefietst";
echo "<table border=\"0\">
<tr>
<td>nummer</td>
<td>naam</td>
</tr>";
$huidigaantal=0;
$aantalcheck=1;

while ($rij = mysql_fetch_assoc($resultaat)){
if ($aantalcheck < $rij['registeraantal']) {
echo"</tr></table>";
print $rij['registeraantal']; print " keer gefietst";
echo "<table border=\"0\">
<tr>
<td>nummer</td>
<td>naam</td>
</tr>";
$huidigaantal=0;
}
$huidigaantal=$huidigaantal+1;
echo"<tr><td>"; print $huidigaantal; echo "</td>";
echo"<td>"; print $rij['registernaam']; echo "</td>";
$aantalcheck = $rij['registeraantal'];
}

echo"</tr></table>";
?>


[ Bericht 20% gewijzigd door achterop23 op 27-03-2005 01:14:33 ]
pi_25772874
1print nl2br($rij['registernaam']);


Je hoeft overigens niet steeds een commando te herhalen als die hetzelfde is (print en echo zijn identiek, tenminste, op de manier waarop jij het gebruikt. hier het verschil).

Dat kan dus ook zo:

1
2
3
<?php
echo "<tr><td>".$huidigaantal."</td><td>".$rij['registernaam']."</td>";
?>
pi_25772927
Code wat opgeschoond:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$query = "SELECT * FROM register ORDER BY registeraantal";

$resultaat = mysql_query($query) or die(mysql_error());

while (($rij = mysql_fetch_assoc($resultaat))!==false){
   if ($rij['registeraantal'] != $huidigaantal) {
      if ($huidigaantal>0) {
         // sluit tabel
         echo "</tr></table>\n";
      }
      // begin nieuwe tabel
      $huidigaantal = $rij['registeraantal'];
      $nummer = 0;
      print $huidigaantal." keer gefietst\n";
      echo '<table>';
      echo '<tr><th>nummer</th><th>naam</th></tr>';
   }
   $nummer++;
   echo '<tr>';
   echo '<td>'.$nummer.'</td>';
   echo '<td>'.$rij['registernaam'].'</td>';
   echo "<tr>\n";
}


([ code] tags maakt code leesbaarder dan [ quote])

Een niewe regel in een string maak je zo: "\n", maar niet zo '\n'
De details lees je hier.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_25772976
quote:
Op zondag 27 maart 2005 01:33 schreef Heliospan het volgende:

1print nl2br($rij['registernaam']);
Wat heeft dat voor nut
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')