Haj,
ik ben bezig met een website waarbij er artikelen kunnen worden geschreven in een tekstformulier, en automatisch op het artikel_index verschijnen.
Het formulier bestaat uit 3 textinputs die worden verwerkt als:
$id
$titel
$inhoud
op mijn artikel_index wordt dus $id en $titel opgevraagd,
het artikel met het laagste id komt dan bovenaan te staan. De naam van mijn link is dan $titel. Erop klikken resulteert in een bekijk_artikel pagina met $titel en $inhoud.
Maar goed, dat is vooral bijzaak, het gaat mij om de variabele $id
Ik probeer de mogelijkheid te creëren om op het formulier ook geen ID in te vullen.
Op die manier wordt dan het laagst mogelijke onbezet ID nummer gebruikt waardoor je dus automatisch een artikel_index krijgt met $id1,$id2[...]
Volgens mij werkte het, maar op de 1 of andere manier wil het nu niet helemaal correct werken. (misschien had ik het eerst gewoon niet door
)D.m.v onderstaande code wordt bepaald of er een geldig ID nummer is ingevoerd, of niet:
eregi_checker() is een functie die de waarde TRUE geeft aan $error als er geen geldig ID nummer is.
Dit is het stukje code wat het ID nummer moet bepalen:
Als ik nu deze code test met lege database als volgt:
Ik voer eerst een artikel in met ID nummer 1 (dus code mag niet ID bepalen)
Vervolgens een artikel zonder ID nummer (dus code moet ID bepalen)
Nu zou het bovenste artikel dus uiteraard ID nummer 1 krijgen, dat klopt. Maar het tweede artikel krijgt op de 1 of andere manier ook ID 1. Terwijl dat volgens mijn code (tenminste, voor zover ik het zie) uitgesloten zijn. En automatisch 2 moeten worden.
Nu moet ik hier wel even bijvertellen dat alle records in de database een vierde waarde hebben naast $id, $titel en $inhoud. Namelijk $custom_id.
Als iemand dus een handmatig ID nummer invoer dan wordt $custom_id TRUE. Zo niet, dan staat custom_id op FALSE (default waarde)
Alle volgende artikelen waarbij ik het ID nummer door de code laat bepalen gaan overigens wel goed. Maar stel ik voer een artikel in met ID nummer 7 (handmatig dus) en er zijn al 5 artikelen met $id1,$id2[...],$id5. En ik voer vervolgens 2 artikelen in waarbij de code het ID nummer zelf moet bepaald worden, dan gaat $id6 goed, maar $id7 niet.
Ik hoop dat ik het een beetje duidelijk heb omschreven, misschien zullen de betere PHPers hier de bovenstaande code omslachtig vinden oid (bijvoorbeeld de if statement in de while loop). Maar ik ben nog maar een paar dagen echt met PHP nodig en ik wil gewoon snappen waarom bovenstaande code niet werkt. En sommige dingen heb ik expres omslachtig gedaan zodat ik zeker weet dat het uitgevoerd wordt.
Overigens is de code, voor de geïnteresseerden bij de else statement (dus waar het ID nummer handmatig is ingevoerd) als volgt:
En uiteraard komt onder de if-else-statement de uitvoer:
maar zoals ik al zei, het geheel werkt niet.
en code technisch komt het voor mij over als, heej. Het MOET gewoon werken
Ik zie de eventuele fout gewoon niet
Ikzelf denk dat het misschien wel aan de query's kan liggen die niet meerdere keren uitgevoerd worden oid
Waardoor ie zijn variabelen/resultaten baseert op een oude query terwijl ie de query ff opnieuw moet doen en een nieuw resultaat moet binnen halen 
Ik weet het niet
ik hoop iemand hier wel
ik ben bezig met een website waarbij er artikelen kunnen worden geschreven in een tekstformulier, en automatisch op het artikel_index verschijnen.
Het formulier bestaat uit 3 textinputs die worden verwerkt als:
$id
$titel
$inhoud
op mijn artikel_index wordt dus $id en $titel opgevraagd,
het artikel met het laagste id komt dan bovenaan te staan. De naam van mijn link is dan $titel. Erop klikken resulteert in een bekijk_artikel pagina met $titel en $inhoud.
Maar goed, dat is vooral bijzaak, het gaat mij om de variabele $id
Ik probeer de mogelijkheid te creëren om op het formulier ook geen ID in te vullen.
Op die manier wordt dan het laagst mogelijke onbezet ID nummer gebruikt waardoor je dus automatisch een artikel_index krijgt met $id1,$id2[...]
Volgens mij werkte het, maar op de 1 of andere manier wil het nu niet helemaal correct werken. (misschien had ik het eerst gewoon niet door
code:
1
2
3
4
5
6
| eregi_checker("^[0-9]{1,3}$",$id,ZERO); if ($error) { //code bepaald ID nummer } else { //neem record op met ingevoerd ID nummer } |
eregi_checker() is een functie die de waarde TRUE geeft aan $error als er geen geldig ID nummer is.
Dit is het stukje code wat het ID nummer moet bepalen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| $check_existing_id = "SELECT titel FROM tabel WHERE id='$id'"; $check_existing_id = mysql_query($check_existing_id); eregi_checker("^[0-9]{1,3}$",$id,ZERO); if ($error) { while ($i==0) { if (mysql_num_rows($check_existing_id)!=0) { $id=$id+1; $check_existing_id = "SELECT titel FROM tabel WHERE id='$id'"; $check_existing_id = mysql_query($check_existing_id); /*deze bovenstaande 2 check_existing_id's had ik overigens eerst niet dit heb ik alleen voor de zekerheid geschreven omdat het niet werkte en gewoon van alles probeerde*/ } else { $i=1; } } } else { //maak record met ingevoerd ID } |
Als ik nu deze code test met lege database als volgt:
Ik voer eerst een artikel in met ID nummer 1 (dus code mag niet ID bepalen)
Vervolgens een artikel zonder ID nummer (dus code moet ID bepalen)
Nu zou het bovenste artikel dus uiteraard ID nummer 1 krijgen, dat klopt. Maar het tweede artikel krijgt op de 1 of andere manier ook ID 1. Terwijl dat volgens mijn code (tenminste, voor zover ik het zie) uitgesloten zijn. En automatisch 2 moeten worden.
Nu moet ik hier wel even bijvertellen dat alle records in de database een vierde waarde hebben naast $id, $titel en $inhoud. Namelijk $custom_id.
Als iemand dus een handmatig ID nummer invoer dan wordt $custom_id TRUE. Zo niet, dan staat custom_id op FALSE (default waarde)
Alle volgende artikelen waarbij ik het ID nummer door de code laat bepalen gaan overigens wel goed. Maar stel ik voer een artikel in met ID nummer 7 (handmatig dus) en er zijn al 5 artikelen met $id1,$id2[...],$id5. En ik voer vervolgens 2 artikelen in waarbij de code het ID nummer zelf moet bepaald worden, dan gaat $id6 goed, maar $id7 niet.
Ik hoop dat ik het een beetje duidelijk heb omschreven, misschien zullen de betere PHPers hier de bovenstaande code omslachtig vinden oid (bijvoorbeeld de if statement in de while loop). Maar ik ben nog maar een paar dagen echt met PHP nodig en ik wil gewoon snappen waarom bovenstaande code niet werkt. En sommige dingen heb ik expres omslachtig gedaan zodat ik zeker weet dat het uitgevoerd wordt.
Overigens is de code, voor de geïnteresseerden bij de else statement (dus waar het ID nummer handmatig is ingevoerd) als volgt:
code:
1
2
3
4
5
6
7
8
| if ($error) { // blaat } else { if (mysql_num_rows($check_existing_id)!=0) { die ("ID nummer is bezet!"); } $insert_artikel = "INSERT INTO tabel VALUES ('$id','$titel','$inhoud', 'TRUE')"; } |
En uiteraard komt onder de if-else-statement de uitvoer:
code:
1
2
3
4
5
6
| if ($error) { //code } else { //nog meer code } mysql_query($insert_artikel) or die ("Query mislukt"); |
maar zoals ik al zei, het geheel werkt niet.
en code technisch komt het voor mij over als, heej. Het MOET gewoon werken
Ik zie de eventuele fout gewoon niet
Ikzelf denk dat het misschien wel aan de query's kan liggen die niet meerdere keren uitgevoerd worden oid
Ik weet het niet
ik hoop iemand hier wel