IF statement
Ik heb een database met erg veel records (odbc)
Als hierin een nummer staat wat begint met +314 dan moet de <td> van dat nummer een andere achtergrond krijgen.
Ik doe het nu zo:
Code (php)
Nu wordt de achtergrond veranderd van de td van het nummer +31402631183
Als ik bij "+31402631183" alleen "+314" invul, dan verandert er niks.
Ik wil dus, dat als er +314 voor een nummer staat, dat dan de achtergrond verandert, ongeacht wat het gehele nummer is.
Iemand iedeeën?
voor regexp tut:
http://www.phphulp.nl/php/tutorials/4/520/
Gewijzigd op 01/01/1970 01:00:00 door koen
Ik heb even een test gemaakt:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$res = odbc_result($result,$i);
if (preg_match("/+314/i", $res ))
{
echo "Gevonden";
} else {
echo "Niet gevonden";
}
?>
$res = odbc_result($result,$i);
if (preg_match("/+314/i", $res ))
{
echo "Gevonden";
} else {
echo "Niet gevonden";
}
?>
Wat doe ik fout?
Gewijzigd op 01/01/1970 01:00:00 door Robin Avoort
dat heeft te maken met case sensitivity...
niet met nr,s...
probeer eens een '.' achter de getallen in je preg_match
de punt, moet die achter de /, of ervoor?
Robin schreef op 04.11.2009 10:39:
de i weggehaald, een punt neergezet, geen ander resultaat :(
de punt, moet die achter de /, of ervoor?
de punt, moet die achter de /, of ervoor?
erachter, want hij moet ge escaped worden.
over strtr
(volgens de tut)
Reguliere expressies zijn ondanks al dit werk nog opmerkelijk snel, ondanks dit is preg_match sneller dan de strtr en str_replace functies in php. Zie: http://www.simplemachines.org/community/index.php?topic=175031.0;imode
@turmin: het script dat je stuurde werkt, maar als ik het zo verander:
Code (php)
Dan werkt het niet meer...
Of moet ik het anders veranderen?
EDIT: kan het zijn dat het niet werkt, omdat er meerdere nummers in de database staan? datie daarom zegt: Niet zelfde?
Gewijzigd op 01/01/1970 01:00:00 door Robin Avoort
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$res = odbc_result($result,$i);
if (preg_match("/\+314\. /", $res ))
{
echo "Gevonden";
} else {
echo "Niet gevonden";
}
?>
$res = odbc_result($result,$i);
if (preg_match("/\+314\. /", $res ))
{
echo "Gevonden";
} else {
echo "Niet gevonden";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door koen
Zou het evt met een query kunnen?
edit:
maar ik laat het nu even over aan degenen die hier meer verstand van hebben.
(editte, omdat ik niet extra posts wil hebben voor dit soort opmerkingen (A))
Gewijzigd op 01/01/1970 01:00:00 door koen
Ben bang dat het niet gaat lukken :(
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$res = odbc_result($result,$i);
if (preg_match("/\+314\. /", $res ))
{
echo "Gevonden";
} else {
echo "Niet gevonden";
}
?>
$res = odbc_result($result,$i);
if (preg_match("/\+314\. /", $res ))
{
echo "Gevonden";
} else {
echo "Niet gevonden";
}
?>
valt me nu pas op... waar haal je $result en $i vandaan??
ook bij je reactie op turmin, zodra je die regel gebruikt werkt het niet...
Gewijzigd op 01/01/1970 01:00:00 door koen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$query = "SELECT TOP 20 CallId, OriginationNumber, OriginationName, CalledNumber, CalledName, StartDate, EndDate, State, DisconnectReason, StartTime, EndTime
FROM Table_1 ORDER BY CallId DESC";
$result = odbc_exec($conn, $query);
while(odbc_fetch_row($result))
{
echo "<tr>";
for($i=1;$i<=odbc_num_fields($result);$i++)
{
if(????)
echo "<td bgcolor='yellow'>";
else
echo "<td>";
if(odbc_result($result,$i))
echo odbc_result($result,$i);
else
echo "-";
echo "</td>";
}
echo "</tr>";
}
?>
$query = "SELECT TOP 20 CallId, OriginationNumber, OriginationName, CalledNumber, CalledName, StartDate, EndDate, State, DisconnectReason, StartTime, EndTime
FROM Table_1 ORDER BY CallId DESC";
$result = odbc_exec($conn, $query);
while(odbc_fetch_row($result))
{
echo "<tr>";
for($i=1;$i<=odbc_num_fields($result);$i++)
{
if(????)
echo "<td bgcolor='yellow'>";
else
echo "<td>";
if(odbc_result($result,$i))
echo odbc_result($result,$i);
else
echo "-";
echo "</td>";
}
echo "</tr>";
}
?>
$result om query uit te voeren, $i zit in de while loop
Robin schreef op 04.11.2009 11:24:
$result om query uit te voeren, $i zit in de while loop
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$query = "SELECT TOP 20 CallId, OriginationNumber, OriginationName, CalledNumber, CalledName, StartDate, EndDate, State, DisconnectReason, StartTime, EndTime
FROM Table_1 ORDER BY CallId DESC";
$result = odbc_exec($conn, $query);
while(odbc_fetch_row($result))
{
echo "<tr>";
for($i=1;$i<=odbc_num_fields($result);$i++)
{
if(????)
echo "<td bgcolor='yellow'>";
else
echo "<td>";
if(odbc_result($result,$i))
echo odbc_result($result,$i);
else
echo "-";
echo "</td>";
}
echo "</tr>";
}
?>
$query = "SELECT TOP 20 CallId, OriginationNumber, OriginationName, CalledNumber, CalledName, StartDate, EndDate, State, DisconnectReason, StartTime, EndTime
FROM Table_1 ORDER BY CallId DESC";
$result = odbc_exec($conn, $query);
while(odbc_fetch_row($result))
{
echo "<tr>";
for($i=1;$i<=odbc_num_fields($result);$i++)
{
if(????)
echo "<td bgcolor='yellow'>";
else
echo "<td>";
if(odbc_result($result,$i))
echo odbc_result($result,$i);
else
echo "-";
echo "</td>";
}
echo "</tr>";
}
?>
$result om query uit te voeren, $i zit in de while loop
dat obdc_num_fields, heb ik eerder gezien...
dacht dat het opgelost was met mssql_num_fields....
edit: ik dacht fout, topic aangehaald in volgende reactie...
Gewijzigd op 01/01/1970 01:00:00 door koen
als ik dan verbinding wil maken met de database, krijg ik een error van IIS/php. Iets met fastcgi.
daarom gebruik ik odbc
http://www.phphulp.nl/forum/showtopic.php?id=68472&cat=12&replies=20
daar werd dit probleem ook gevonden...
misschien helpt het?
daar werd dit probleem ook gevonden...
misschien helpt het?
dat is een ander topic van mij:P, daar gaat het over het tellen van rijen... niet over dit?:o
want met de statische data van turmin ging het goed. met je result niet meer...
edit: sorry lette niet op naam (A)
Gewijzigd op 01/01/1970 01:00:00 door koen
ik heb geen idee wat het probleem is :(