[PHP&SQL] probleem met query

Pagina: 1
Acties:

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ik heb een tabel met mobiele nummers (uitkeringen).
deze zitten gekoppeld aan een abonnement of nog niet.
het gaat er dus om dat ik bezig ben met een soort van "synchronistaie" die dus alle mobiele nummer zoekt die nog NIET gekoppeld zijn en dus draai ik een query om eerst alle nummers te zoeken die dus nog NIET gekoppeld zijn. daarbij tel ik ook met een count functie het aantal voorkomende nummers op.
Het is de bedoeling dat ik uiteindelijk alleen de nummers krijg die maar 1 keer voorkomen in de lisjt van de uitkeringen en deze numers wil ik zolang in een string plaatsen waar ik dan later mee verder kan.
maar dit eerste gedeelte gaat dus al mis..
met mis bedoel ik dat als ik de while functie gebruik dat ik dus een leeg scherm krijg wat dus duid op een fout in de php-code..

PHP:
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
include_once("../includes/db.inc.php"); 
  
    //query alle uitkeringen die niet gekoppeld zijn..
    $query =  "SELECT Count(gsm_nr),gsm_nr
                        FROM Providers_uitkering 
                        WHERE abonid = ''
                        GROUP BY gsm_nr";
    //results ophalen
    $resultaten = mysql_query($query, $conn) or die(mysql_error());
    //$result_gsm_uitk = mysql_result($resultaten,0,1);
    
    while ($row = mysql_fetch_assoc ($resultaten)) {  
        foreach (array_keys($row) as $item) {
        if($item == 1){
            $single_nummers .= $row[1] . ",";
        }  
    }
    echo "$single_nummers";

ik ben al 2 dagen bezig hiermee en heb al veel manieren geprobeerd. zelfs meerdere queries achter elkaar etc.
het is de bedoeling dat ik een lijst heb met nummers die:
- maar 1x keer voorkomen in de gehele tabel van uitkeringen
- nog niet gekoppeld zijn aan een abonnement (abonid = ' ' )

heb ook al geprobeerd om dit in één query te doen maar dat is me ook niet gelukt.
ik dan toen zoiets als dit maar dit werkt niet egt bepaald lijkt me:
SQL:
1
2
3
4
5
6
7
SELECT gsm_nr
FROM Providers_uitkering 
WHERE abonid = ''
AND gsm_nr IN (SELECT gsm_nr
        FROM Providers_uitkering 
        WHERE Count(gsm_nr)=1
        GROUP BY gsm_nr)

ik heb nu als test gegevens:
2x een uitkering met nummer: 0655-555588
1x een uitkering met nummer: 0657-666699

het is dus de bedoeling dat ik alleen 0657-666699 in mijn lijst krijg.

(ps wist geen andere benaming voor dit topic :x)
edit:
$row[1] dit omdat hij de gsm nummer moet selecteren als de count 1 is...

[ Voor 22% gewijzigd door Tijgertje84 op 24-11-2005 13:44 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Regel 18 heeft een + in plaats van een . ;) Sowieso mag je wel eens naar implode kijken. :)

[ Voor 48% gewijzigd door NMe op 24-11-2005 13:38 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

SQL:
1
2
3
4
5
6
7
SELECT gsm_nr 
FROM Providers_uitkering  
WHERE abonid = '' 
AND gsm_nr IN ('SELECT gsm_nr 
    FROM Providers_uitkering  
    WHERE Count(gsm_nr) 
    GROUP BY gsm_nr')


Is niet correct, dit zou beter zijn (of het werkt weet ik niet)
SQL:
1
2
3
4
5
6
7
SELECT gsm_nr 
FROM Providers_uitkering  
WHERE abonid = '' 
AND gsm_nr IN (SELECT gsm_nr 
    FROM Providers_uitkering  
    GROUP BY gsm_nr)
    HAVING Count(gsm_nr) > 1


Edit:
Het gaat niet om die ' maar eerder om die WHERE, een WHERE op een COUNT actie = HAVING

Edit2: Having komt na Group by. Thx -NMe-

[ Voor 26% gewijzigd door Verwijderd op 24-11-2005 13:46 ]


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
-NMe- schreef op donderdag 24 november 2005 @ 13:37:
Regel 18 heeft een + in plaats van een . ;) Sowieso mag je wel eens naar implode kijken. :)
dat met implode weet ik maar daar gaat het nu even niet om aangezien ik die nummers niet kan achterhalen :(
als ik die eenmaal kan krijgen kan ik de rest wel zelf met idd implode ;) die ik al vaker heb gebruikt..

edit ik had een fout gemaakt met het invoeren van de sql hier in 1ste post maar die heb ik al verbeterd ;)
dit kwam omdat ik de sql uit de php code had gekopieerd maar sql kent normaal niet die " en ' etc :)
dus dat is niet de oplossing..

[ Voor 22% gewijzigd door Tijgertje84 op 24-11-2005 13:42 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

En die +? Als je die nou eens in een . verandert? :?

@nantasquad: HAVING mag pas gebruikt worden nà een GROUP BY, niet ervoor. :)

[ Voor 44% gewijzigd door NMe op 24-11-2005 13:44 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
-NMe- schreef op donderdag 24 november 2005 @ 13:43:
En die +? Als je die nou eens in een . verandert? :?

@nantasquad: HAVING mag pas gebruikt worden nà een GROUP BY, niet ervoor. :)
nou die . heb ik al veranderdt
maar zoals ik al zei kan ik niet kijken of jullie oplossingen kloppen
want als ik de pagina run krijg ik helemaal niets te zien helemaal leeg dus er is iets mis met de php code...
als ik nu de while functie helemaal weg haal werkt alles wel... nou jah werkt ik kan iig kijken of de query dan werkt en dan de result terug laten geven maar met die HAVING erbij krijg ik geen resultaten..
en btw HAVING Count(gsm_nr) > 1??? ze moeten namelijk precies 1 hebben dus lijkt me HAVING Count(gsm_nr) = 1?? ofniet??
en moet die having niet tussen de haakje van IN?? :) hij staat er nu buiten..

dit is de foutmelding die de error log files geven al ik while erin laat staan
PHP Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 5 in /......./sync.php on line 22
deze regel = foreach (array_keys($row) as $item) {

misschien dat dit iemadn iets meer zegt... :?

[ Voor 10% gewijzigd door Tijgertje84 op 24-11-2005 13:58 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • kenniani
  • Registratie: Juni 2004
  • Laatst online: 12-03 22:47
Zo doen.

Velden tussenn ?? aanpassen

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<? 
    include_once("../includes/db.inc.php");  

    MYSQL_CONNECT("localhost","?USERNAME?","?PASSWORD?");

    MYSQL_SELECT_DB("?DATABASENAAM?") OR DIE("Kan geen verbing maken met database ?DATABASENAAM?");

    $QUERY = "SELECT DISTINCT(gsm_nr) FROM providers_uitkering WHERE abonid=''";

    $RESULT = MYSQL_QUERY($QUERY) OR DIE("FOUT IN QUERY");

    WHILE ($ROW = MYSQL_FETCH_ARRAY($RESULT))
    {
        $GSMNR = $ROW['gsm_nr'];

        ECHO"
            $GSMNR<BR>
        ":
        }
?>

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
kenniani schreef op donderdag 24 november 2005 @ 14:03:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
    $QUERY = "SELECT DISTINCT(gsm_nr) FROM providers_uitkering WHERE abonid=''";

    $RESULT = MYSQL_QUERY($QUERY) OR DIE("FOUT IN QUERY");

    WHILE ($ROW = MYSQL_FETCH_ARRAY($RESULT))
    {
        $GSMNR = $ROW['gsm_nr'];

        ECHO"
            $GSMNR<BR>
        ":
        }
?>
hmm bedankt want het probleem met die while functie is nu opgelost en idd ik krijg met deze query wel de 2 nummers door die in het systeem staan maar misschien heb je niet goed gelezen wat de bedoeling was :)
wat je nu doet met die distict is ook de nummers weergeven die vaker voorkomen alleen met distinct wordt nu het nummer wat vaker voorkomt maar 1 keer weergeven..
de bedoeling is dat hij alleen nummers weergeeft die maar 1x voorkomen en alle andere die vaker voorkomen moet ik NIET hebben ;)

en met de query van nantasquad werkt het ook niet helemaal..
dus probleem is nog niet helemaal opgelost!!!!

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • kenniani
  • Registratie: Juni 2004
  • Laatst online: 12-03 22:47
Sorry, inderdaad niet goed gelezen.

Misschien moet je bij jouw statement je echo in while loop zetten.

Als ik tijd heb zal ik straks even proberen een query te verzinnen.

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ik denk dat ik het heb gevonden:

dit heb ik nu gedaan:
PHP:
4
5
6
7
8
9
10
11
12
13
14
15
16
$query =    "SELECT Count(gsm_nr), gsm_nr 
                FROM Providers_uitkering 
                WHERE abonid='' 
                GROUP BY gsm_nr";
$resultaten = mysql_query($query, $conn) or die(mysql_error());

while ($row = mysql_fetch_array($resultaten)) 
    { 
        if($row[0] == 1){
            $gsmnr = $row['gsm_nr']; 
            echo" $gsmnr<BR> ";
    }
    }

met dit krijg ik alleen het nummer wat ik wilde hebben :D
iig allen bedankt voor de moeite _/-\o_
wel zit er een klein addertje onder het gras.....
het werkt wel maar in dit geval kijkt hij alleen maar naar de nummers die niet gekoppeld zijn maar er kunnen dus ook uitkeringen met dezelfde nummers bestaan die wel gekoppeld zijn
maarjah dit zal dus wel moeten met een subquery lijkt me
misschien dat iemadn daar een oplossing voor heeft
ik laat het iig nu zoals het is en ik ga gewoon verder met dit

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • kenniani
  • Registratie: Juni 2004
  • Laatst online: 12-03 22:47
Dit is hem heb net getest.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<? 
    include_once("../includes/db.inc.php");  

    MYSQL_CONNECT("localhost","?USERNAME?","?PASSWORD?");

    MYSQL_SELECT_DB("?DATABASENAAM?") OR DIE("Kan geen verbing maken met database ?DATABASENAAM?");

    $QUERY = "SELECT COUNT(gsm_nr), gsm_nr FROM providers_uitkering WHERE abonid='' group by gsm_nr having COUNT(gsm_nr) < 2";

    $RESULT = MYSQL_QUERY($QUERY) OR DIE("FOUT IN QUERY");

    WHILE ($ROW = MYSQL_FETCH_ARRAY($RESULT))
    {
        $GSMNR = $ROW['gsm_nr']

        ECHO"
            $GSMNR<BR>
        ";
    }
?>

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
jup thnx dat vervangt dan mijn if functie wat ik dus zolang als oplossing had gebruikt komt op hetzelfde neer uiteindelijk.
iig bedankt

[ Voor 141% gewijzigd door Tijgertje84 op 24-11-2005 15:21 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Verwijderd

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
<? 
include_once("../includes/db.inc.php");  
   
    //query alle uitkeringen die niet gekoppeld zijn.. 
    $query =  "SELECT Count(gsm_nr),gsm_nr 
                        FROM Providers_uitkering  
                        WHERE abonid = '' 
                        GROUP BY gsm_nr"; 
    //results ophalen 
    $resultaten = mysql_query($query, $conn) or die(mysql_error()); 
    //$result_gsm_uitk = mysql_result($resultaten,0,1); 
     
    while ($row = mysql_fetch_assoc ($resultaten)) {   
        foreach (array_keys($row) as $item) { 
        if($item == 1){ 
            $single_nummers .= $row[1] . ","; 
        }   
    } 

// ***
}
//***
    echo "$single_nummers"; 

?>


misschien is dit beter
:*)

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
ja lolz 8)7 kut haakjes grrrr!!!
maar iig bedankt voor de tip waardoor het niet werkte :X
ik werk in dreamweaver en als er iets is wat ik enorm mis is een compiler/debugger die ervoor messages geeft net als JBuilder met Java bij het runnen. dan worden deze onzinne foutjes meteen weergeven ><.....

ik probeer hem nu in een array te krijgen ipv te echoen (echo was alleen om te testen)
nu doe ik dit met:
PHP:
4
5
6
7
8
9
10
while ($row = mysql_fetch_array($resultaten)) 
    { 
        $gsmnr .= $row['gsm_nr'] . ","; 
    }
    $test = array(explode(",",$gsmnr));
    $nwnr = implode(",",$test);
    echo "$nwnr";

maar als ik nu $nwnr doe dan komt er het woord Array te staan |:(

[ Voor 37% gewijzigd door Tijgertje84 op 24-11-2005 15:35 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Verwijderd

zo kan het:
PHP:
1
2
3
4
5
6
7
8
9
<? 
while ($row = mysql_fetch_array($resultaten))  
    {  
        $gsmnr .= $row['gsm_nr'] . ",";  
    } 
    $test = explode(",",$gsmnr); 
    $nwnr = implode(",",$test); 
    echo "$nwnr"; 
?>

of zo kan het
PHP:
1
2
3
4
5
6
7
8
9
<? 
while ($row = mysql_fetch_array($resultaten))  
    {  
        $gsmnr .= $row['gsm_nr'] . ",";  
    } 
    $test = array(explode(",",$gsmnr)); 
    $nwnr = implode(",",$test); 
    echo "$nwnr[0]"; 
?>

:*)

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
Verwijderd schreef op donderdag 24 november 2005 @ 16:15:
of zo kan het
PHP:
1
2
3
4
5
6
7
8
9
<? 
while ($row = mysql_fetch_array($resultaten))  
    {  
        $gsmnr .= $row['gsm_nr'] . ",";  
    } 
    $test = array(explode(",",$gsmnr)); 
    $nwnr = implode(",",$test); 
    echo "$nwnr[0]"; 
?>

:*)
uhm lees eens goed de post boven jouw post...
dan zie je dat ik al precies hetzelfde had als wat jij nu post :X
en ja dat kan wel maar het werkt niet :/
result van dit is gewoon: "A" ipv een mobielnummer

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
<?  
while ($row = mysql_fetch_array($resultaten))   
    {   
        $gsmnr .= $row['gsm_nr'] . ",";   
    }  
    $test = array(explode(",",$gsmnr));  
    $nwnr = implode(",",$test);  
    echo "$nwnr[0]";  
?>


Kijk goed
jij stopt een array in een array , je stopt het resultaat van explode, een array in dit geval weer in een array, vandaar dat oplosing twee toch 'Array" echod.
Oplossing 1 lijkt me beter. of www.php.net

  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
jah maar dan klopt het niet want dan is het resultaat "0" wat dus het begin van een mobielnummer is...
het is dus de bedoeling dat hij het hele nummer laat zien :/ ipv 1 cijfer...
dat was dus het hele probleem dat ik had vandaar dat ik van alles heb geprobeerd ;)

[ Voor 28% gewijzigd door Tijgertje84 op 24-11-2005 16:43 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Verwijderd

Tijgertje84 schreef op donderdag 24 november 2005 @ 16:39:
jah maar dan klopt het niet want dan is het resultaat "0" wat dus het begin van een mobielnummer is...
het is dus de bedoeling dat hij het hele nummer laat zien :/ ipv 1 cijfer...
dat was dus het hele probleem dat ik had vandaar dat ik van alles heb geprobeerd ;)
Druk m.b.v. print_r de waarde van test eens af?

En $nwnr is een string, dus logisch dat $nwnr[0] een 0 geeft :X

$test[0] geeft het eerste volledige nummer...

edit: print_r de waade van test natuurlijk 8)7

[ Voor 22% gewijzigd door Verwijderd op 24-11-2005 16:55 ]


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
Verwijderd schreef op donderdag 24 november 2005 @ 16:48:
Druk m.b.v. print_r de waarde van gsm_nr eens af?
:X nvm

[ Voor 23% gewijzigd door Tijgertje84 op 24-11-2005 16:53 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Verwijderd

Tijgertje84 schreef op donderdag 24 november 2005 @ 16:51:
[...]

waarde $gsmnr: 0657-666699, (incl ,)
de explode moet dan op die , splitten... lijkt mij ..
Ja dat doet ie ook! Druk de waarde van test[0] eens af. Eerst exploden en vervolgens weer imploden slaat helemaal nergens op. Sorry dat ik het zeg, maar weet je wel wat implode en explode precies doen?

Ow ja, als je die laatste , weg wilt halen, doe je dat na je while-loop gewoon met substr :)
Daar stond toch een nummer in?

[ Voor 26% gewijzigd door Verwijderd op 24-11-2005 16:54 ]


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
je hebt helemaal gelijk!!!!
ik had dit omdat ik ergens anders dit ook heb gebruikt met een datum die moest toen worden omgekeerd kwa volgorde vandaar dat ik implode ook had meegenomen..
en dus dom dat ik er niet bij nadacht dat het er helemaal nu niet bij moet... |:(
tjah daarom is het ook vaak zo dat als ik er een hele dag mee bezig ben geweest dan somd door de bomen het bos niet meer zie :)
en jah daar stond een nummer in :P (gvd! heb alles geprobeerd behalve dat! :X )

[ Voor 10% gewijzigd door Tijgertje84 op 24-11-2005 16:56 ]

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


Verwijderd

Tijgertje84 schreef op donderdag 24 november 2005 @ 16:55:
je hebt helemaal gelijk!!!!
ik had dit omdat ik ergens anders dit ook heb gebruikt met een datum die moest toen worden omgekeerd kwa volgorde vandaar dat ik implode ook had meegenomen..
en dus dom dat ik er niet bij nadacht dat het er helemaal nu niet bij moet... |:(
tjah daarom is het ook vaak zo dat als ik er een hele dag mee bezig ben geweest dan somd door de bomen het bos niet meer zie :)
No offense, maar als je hier een hele dag mee bezig bent, ben je wel een tijdje bezig voordat je iets moois hebt gemaakt... Keer basiscursus php doen of zo :)? Gezien je oude topics misschien wel een goed plan :o.

Als je had gegoogled op wat explode en implode doen, had je kunnen zien dat test een array is en dan had je daarvan de waarden mbv print_r kunnen afdrukken.

[ Voor 10% gewijzigd door Verwijderd op 24-11-2005 16:57 ]


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Verwijderd schreef op donderdag 24 november 2005 @ 15:10:
PHP:
1
2
3
4
5
6
7
8
9
<? 
    while ($row = mysql_fetch_assoc ($resultaten)) {   
        foreach (array_keys($row) as $item) { 
          if($item == 1){ 
            $single_nummers .= $row[1] . ","; 
          }   
        }   
    } 
?>


misschien is dit beter
:*)
Haha, mijn god, sorry hoor, maar dit is wel heel erg omslachtig. Begrijp je wel helemaal wat dit stukje doet? Je fetched dus eerst een row uit de resultset, daarna ga je door alle keys van de row loopen en pas als je langs key met de waarde 1 komt voer je de gewenste actie uit, zonder ook maar gebruik te maken van $item. Oftewel, het doet exact hetzelfde als dit:

PHP:
1
2
3
4
5
<? 
    while ($row = mysql_fetch_assoc ($resultaten)) {   
        $single_nummers .= $row[1] . ","; 
    } 
?>


En als je echt zeker wilt weten dat $row[1] wel bestaat, dan kun je van die regel nog dit maken:
PHP:
1
if ( isset($row[1]) ) $single_nummers .= $row[1] . ",";



En verder, code in hoofdletters... :X

[ Voor 3% gewijzigd door Michali op 24-11-2005 17:04 ]

Noushka's Magnificent Dream | Unity


  • Tijgertje84
  • Registratie: Augustus 2005
  • Laatst online: 04-06-2025
daar heb ik geen tijd voor :)
mijn tijd die ik nu doorbreng is meteen mijn basis kennis etc
loop nu stage en heb de eerste 3 weken uit een boek geleerd maar dat duurde te lang en ben ik dus gewoon begonnen aan het project en waar ik vast loop ga ik zelf op onderzoek uit hoe het moet.
en ben niet letterlijk heel de dag hiermee bezig geweest ben namelijk met meerdere dingen tegelijk bezig duzz, morgen weer en dag :) om verder te puzzelen

moet wel zeggen btw in die 2 maanden dat ik nu bezig ben met stage heb ik erg veel bijgeleerd en van fouten leert men eenmaal ;) (had 0% ervaring in het begin)

Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Het is beter om eerst alle gsm nummers in een array te gooien en daarme te imploden. Dat werkt wat gemakkelijker. Ik zie dat je poging hebt gedaan om dat voor elkaar te krijgen, maar dat het niet echt ergens op uitkomt. Eigenlijk is het vrij simpel:
PHP:
1
2
3
4
5
$gsmNummers = array();
while ( $row = mysql_fetch_assoc($result ) ) {
  $gsmNummers[] = $row['gsm_nummer'];
}
print implode(",", $gsmNummers);

Dat valt wel mee toch?

Noushka's Magnificent Dream | Unity

Pagina: 1