[PHP - MYSQL] while & if mysql_fetch_object

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Ik ben een klein cms aan het maken. Waaronder andere linkjes kunnen worden toegevoegd. Deze links zijn onderverdeelt in categorieën. Mijn probleem bevind zich in het verwijderen van de linkjes. Het verwijderen van de link moet er volgens mij zo uit zien:

Eerst word een categorie gekozen waar de te verwijderen link zich bevind. Daarna word de betreffende link gekozen welke verwijderd moet worden. Dan kan hij dus verwijderd worden. Eigenlijk zijn er twee problemen: Het herkennen dat er geen categorie is gekozen. En het herkennen dat er geen links in de gekozen categorie zitten.

Probleem 1: Het herkennen dat er geen categorie gekozen is doet hij bij het starten van de pagina wel. Als je dan een categorie kiest maakt hij ook netjes de dorpdown aan met de daarbij horende linkjes uit de juiste categorie. Kies je nou een link dan geeft hij deze wel netjes weer en kan deze verwijderd worden maar dan geeft hij werderom de boodschap dat er geen categorie gekozen is. Wat dus niet van toepassing is.

Probleem 2: Als het zo is dat de gekozen categorie geen links bevat moet hij dat in een boodschap weer geven. Ik heb eigenlijk dezelfde code gebruikt als bij de categorie welke wel werkte. Alleen krijg ik dat niet aan de praat. Dus ipv dat hij een dropdownbox aanmaakt moet hij de boodschap geven dat er geen links in betreffende categorie aanwezig zijn.

Source:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<form name="categorieselecteren" method="post"> 
<?php
//Maak dropdownbox met categorie aan.
echo "<select name=\"categorie\" onchange=\"categorieselecteren.submit();\">";
echo "<option value=\"null\">kies een categorie</option>";
        while($obj = mysql_fetch_object($resultaat))
        {
        echo "<option value=\"$obj->categorie\">$obj->categorie</option>";
        }
echo "</select>";
?>
</form>

<?php
//haal waarde $obj->categorie op en maak variabele $categorie
$categorie = $_POST["categorie"];
If ($categorie == NULL)
    {
    echo "U heeft nog geen categorie gekozen";
    }
else
    {
// Maak query om id, titel, categorie, url uit tabel links op te halen 
$query = "SELECT id, categorie, titel FROM links WHERE categorie='$categorie'"; 
// Voer query voor het vullen van dropdown uit 
$resultaat = mysql_query($query) or die ("query mislukt");  
if ($resultaat == NULL)
    {
    echo "in deze categorie zijn geen links gevonden";
    }
else
    {
    echo "<form name=\"linksverwijderen\" METHOD=\"POST\">";

    // Maak dropdown menu met landid en landnaam
    echo "<select name=\"dropdown\" onchange=\"linksverwijderen.submit();\">";
    echo "<option value=\"null\">kies een link</option>";
        while($obj = mysql_fetch_object($resultaat))
        {
            
        echo "<option value=\"$obj->id\">$obj->titel</option>";
         
        }
    echo "</select></form>";
    }
}
if  (@!is_null($_POST["dropdown"]))
    {
    $dropdown = $_POST["dropdown"];
    echo "<INPUT TYPE=HIDDEN NAME=dropdown VALUE=\"$dropdown\">";
    // Query voor het uitlezen van de dropdown
    $query1 = "SELECT id, titel, categorie FROM links WHERE id=$dropdown"; 
    // Voor query uit
    $resultaat1 = mysql_query($query1) or die ("query mislukt");  
    // Maak 00
    while($obj = mysql_fetch_object($resultaat1))
        // Echo titel 
        echo "Link&nbsp;<H4>$obj->titel</H4>&nbsp;verwijderen?";
    }
?>
</form>

PS: zaken als connectie maken en zo heb ik weggelaten dit is de relevante code. Het verwijderen van de links werkt overigens wel goed. Dus alleen het plaatsen van de boodschappen geeft problemen.

[ Voor 11% gewijzigd door Verwijderd op 28-08-2003 15:44 ]


Verwijderd

Topicstarter
huh ik had de code zo netjes en duidelijk neer gezet. nu zet hij weer alles uitgelijnd naar links naar. dat was niet de bedoeling als iets niet duidelijk is geef een gil.

  • Johnny
  • Registratie: December 2001
  • Laatst online: 17-09 16:59

Johnny

ondergewaardeerde internetguru

Zo moeilijk kan het toch niet zijn?

if(empty($object))
{echo("Geen links in deze categorie");}
else
{}

en dan bij het andere probleem zoiets:

if ($categorie == NULL && $action != "delete")

De waarschuwing niet weergeven als er verwijderd wordt?

[ Voor 7% gewijzigd door Johnny op 28-08-2003 19:22 ]

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
mysql_numrows gebruiken :? En om te checken of een var leeg is kun je beter
PHP:
1
if( !isset( $var ) ) { }

Gebruiken :)

[ Voor 67% gewijzigd door supakeen op 28-08-2003 19:18 ]


Verwijderd

@zmn: Met isset() kijk je niet of een var leeg is, je kijkt of die variabele bestaat, of deze ge-'set' is... Met empty() check je wel degelijk of een var leeg is, vandaar ook de naam...
Als je wilt controleren of een var leeg is moet je dus wel empty() gebruiken en niet isset() want dat doet wat heeeel anders...

[ Voor 6% gewijzigd door Verwijderd op 28-08-2003 19:27 ]


  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
Verwijderd schreef op 28 August 2003 @ 19:25:
@zmn: Met isset() kijk je niet of een var leeg is, je kijkt of die variabele bestaat, of deze ge-'set' is... Met empty() check je wel degelijk of een var leeg is, vandaar ook de naam...
Als je wilt controleren of een var leeg is moet je dus wel empty() gebruiken en niet isset() want dat doet wat heeeel anders...
Ja stom, dat is de naam ook ;) maar als een var niet geset is is hij meestal leeg ;)

  • mjax
  • Registratie: September 2000
  • Laatst online: 13:28
Verwijderd schreef op 28 August 2003 @ 19:25:
@zmn: Met isset() kijk je niet of een var leeg is, je kijkt of die variabele bestaat, of deze ge-'set' is... Met empty() check je wel degelijk of een var leeg is, vandaar ook de naam...
Als je wilt controleren of een var leeg is moet je dus wel empty() gebruiken en niet isset() want dat doet wat heeeel anders...
Dat empty() zou kijken of een variable leeg is klopt niet. Want ...

PHP:
1
2
$een_var = 0;
empty($een_var);

... evalueert naar true, terwijl $een_var hier dus NIET leeg is. Kijk dus uit met het gebruik van empty().

Zie ook PHP manual over empty()

Verwijderd

@zmn: Als een var niet geset is is hij noch leeg noch 'gevuld', want hij bestaat gewoonweg niet :P

@mjax: Het is maar net wat je persoonlijk als leeg beschouwt, ik beschouw een variabele met de waarde 0 idd als leeg, en dus is er niks mis met de functie empty() (vanuit mijn standpunt tenminste).

  • slm
  • Registratie: Januari 2003
  • Laatst online: 12-11-2023

slm

(duh...)

je moet de variabele categorie wel hidden meegeven in het linksverwijderen formulier

(dit zover voor probleem 1)

Prob2 = gebruik mysql_num_rows() om te kijken of er idd records zijn die aan je query voldoen, niet $result == NULL of zoiets. Result (van mysql_query()) wordt volgens mij alleen gevuld met FALSE als de query om wat voor reden dan ook niet uitgevoerd kan worden.

[ Voor 61% gewijzigd door slm op 28-08-2003 23:07 . Reden: prob2 ook even 'behandeld' ]

To study and not think is a waste. To think and not study is dangerous.

Pagina: 1