sql insert en sql update in if else statement

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 volgende »

David

David

27/10/2006 18:28:00
Quote Anchor link
Quote:
Wanneer jij niet meer moeite doet om een oplossing te vinden


WTF, hoe bedoel je dat? je zegt hier dus eigenlijk dat ik totaal geen moeite heb gedaan om erachter te komen wat er nu precies gebeurt en hoe ik het op kan lossen? ik kan je vertellen dat ik continue bezig ben geweest met proberen. dingen veranderen , weer proberen, dingen zoeken, weer ff proberen, dus zeg niet dat ik er geen moeite voor gedaan heb, want dat is pure onzin!
 
PHP hulp

PHP hulp

18/11/2024 14:33:20
 
Frank -

Frank -

27/10/2006 18:34:00
Quote Anchor link
Ik probeer je te vertellen dat een opmerking als 'werkt niet' een kansloze opmerking is. Het zegt helemaal niets over wat er nu gebeurd. Heb je bv. wel een verbinding met de database? Heb je overal wel gecontroleerd of de query is uitgevoerd? etc. etc. Jij zet lukraak wat dingen achter elkaar zonder dat je ook maar enig idee hebt over wat je nu aan het doen bent.

En nogmaals, je hebt de update al keurig uitgevoerd, alleen controleer jij nergens of dat ook zo is. Vandaar dat jij dat nooit te zien zult krijgen.

Ga eens gestructureerd werken, en dan vooral je werk controleren, en je komt een heel stuk verder. Bij programeren draait alles om controles, dit omdat alles vroeg of laat zal mislukken.
 
David

David

27/10/2006 18:35:00
Quote Anchor link
Quote:
De juiste oplossing staat overigens in het rijtje.


is dit een quiz?, waarom zeg je niet welke het is??? ik dacht dat de functie van een forum, het oplossen van problemen was? maar jij maakt er maar een raad spelletje van...
 
Frank -

Frank -

27/10/2006 18:39:00
Quote Anchor link
David schreef op 27.10.2006 18:35:
Quote:
De juiste oplossing staat overigens in het rijtje.


is dit een quiz?, waarom zeg je niet welke het is??? ik dacht dat de functie van een forum, het oplossen van problemen was? maar jij maakt er maar een raad spelletje van...
Jij controleert niet of de query is uitgevoerd en wat daar het resultaat van is! Ik zie alleen een rijtje met functies en dat je daarmee de diverse queries aanroept. Ik kan dus alleen iets roepen over dit stukje syntax, en er staat een juiste tussen, maar helemaal niets over het resultaat. En dat komt omdat JIJ nergens controleert wát nu het resultaat is.

Ik ga je geen oplossing geven, ik geef je een zetje in de juiste richting, maar jij mag de oplossing gaan vinden. En je bent er bijna!
 
David

David

27/10/2006 18:51:00
Quote Anchor link
je wilt weten wat de errors zijn?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
$res
= mysql_query($sql,$sql_update) or die(mysql_error());
//werkt niet, Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 45
$res = mysql_query($sql and $sql_update) or die(mysql_error());
//werkt niet, Notice: Undefined variable: sql_update in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 45 Query was empty
$res = mysql_query($sql) or die(mysql_error());
$res = mysql_query($sql_update) or die(mysql_error()); //line 46
//werkt niet, Notice: Undefined variable: sql_update in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 46 Query was empty

$res = mysql_query($sql) and mysql_query($sql_update) or die(mysql_error());
//werkt niet, Notice: Undefined variable: sql_update in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 45 Query was empty
?>
 
David

David

27/10/2006 18:53:00
Quote Anchor link
Quote:
En dat komt omdat JIJ nergens controleert wát nu het resultaat is.


hoe kan ik dat controleren?
 
Frank -

Frank -

27/10/2006 18:57:00
Quote Anchor link
Wanneer jij hulp wilt hebben, dan zul je wel de foutmeldingen moeten geven, lijkt mij wel zo logisch.
Quote:
//werkt niet, Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 45
Hier gebruik je de functie mysql_query() op de verkeerde manier. Gewoon fout dus.
Quote:
//werkt niet, Notice: Undefined variable: sql_update in c:\phpdev\www\---teststuff---\resreveringssysteem_v7\tijdelijk_res_aanmaak.php on line 46 Query was empty
Dit geeft dus aan dat de variabele $sql_update niet bestaat. Waar maak je deze aan?
 
Frank -

Frank -

27/10/2006 18:58:00
Quote Anchor link
David schreef op 27.10.2006 18:53:
Quote:
En dat komt omdat JIJ nergens controleert wát nu het resultaat is.


hoe kan ik dat controleren?
Met de functie mysql_affected_rows() kun je opvragen hoeveel records er zijn aangemaakt en/of bijgewerkt.
 
David

David

27/10/2006 19:06:00
Quote Anchor link
Quote:
Dit geeft dus aan dat de variabele $sql_update niet bestaat. Waar maak je deze aan?


op dezelfde manier als $sql?
 
Frank -

Frank -

27/10/2006 19:08:00
Quote Anchor link
Uiteraard! Maar op het moment dat jij met de functie mysql_query() deze variabele aanroept, bestaat hij in elk geval niet. Daar doe je dus iets fout.
 
David

David

27/10/2006 19:17:00
Quote Anchor link
maar even voor de duidelijkheid, kan het wel zo met al die if els-jes? ik zou dan volgens jou iets moeten veranderen aan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $res = mysql_query($sql_update) or die(mysql_error()); ?>
en verder niets aan het script? of moet ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $res = mysql_query($sql) or die(mysql_error()); ?>
ergens anders heen verplaatsen?
 
Frank -

Frank -

27/10/2006 19:22:00
Quote Anchor link
Pas de logica van je script aan:
- maak een stuk SQL aan, bv. in de variabele $sql
- voer deze query uit
- controleer of de query is gelukt

volgende stuk:
- maak een stuk SQL aan, bv. in de variabele $sql_update
- voer deze query uit
- controleer of de query is gelukt

Op deze manier ga je de hele boel opbouwen en controleren. Het heeft geen enkele zin om op regel 1 een query aan te maken en deze pas op regel 100 uit te gaan voeren. Doe dat direct, dan kun je het ook niet meer vergeten of de variabele overschrijven.

In mijn scripts staat een query altijd in de variabele $query. Maar omdat deze altijd direct wordt uitgevoerd (en gecontroleerd!) is dat nooit een probleem. Het heeft zelfs een voordeel, er is minder geheugen nodig omdat er slechts 1 variabele bestaat: $query.
 
David

David

27/10/2006 20:24:00
Quote Anchor link
Quote:
- maak een stuk SQL aan, bv. in de variabele $sql
- voer deze query uit
- controleer of de query is gelukt


hoe moet ik die query uitvoeren?
 
Frank -

Frank -

27/10/2006 20:45:00
Quote Anchor link
Dat staat in de handleiding, maar dat heb je al meerdere keren gedaan. Beetje rare vraag dus.
 
David

David

27/10/2006 20:58:00
Quote Anchor link
ik bedoel:

Quote:
In mijn scripts staat een query altijd in de variabele $query. Maar omdat deze altijd direct wordt uitgevoerd (en gecontroleerd!) is dat nooit een probleem. Het heeft zelfs een voordeel, er is minder geheugen nodig omdat er slechts 1 variabele bestaat: $query.


hoe is daar de opbouw van? in welke volgorde?
 
Frank -

Frank -

27/10/2006 21:14:00
Quote Anchor link
Wat snap je niet aan de volgorde van
- maak een stuk SQL aan, bv. in de variabele $sql
- voer deze query uit
- controleer of de query is gelukt
?
Wanneer je 1 query hebt, staat dit stukje 1x in je code. Heb je 2 queries, dan staat dit 2 x in je code. Etc.

Het is mij volkomen onduidelijk wat je daar niet aan zou kunnen begrijpen. Gewoon 1-voor-1 de queries aanmaken, uitvoeren en controleren. En klaar is kees!

Uiteraard zijn er technieken om hier fraaie lussen van te maken, maar dat lijkt mij in dit geval nog even iets te hoog gegrepen.
 
David

David

27/10/2006 21:23:00
Quote Anchor link
ik ben Kees niet, ben ook maar pas 6 weken bezig met PHP, ben al blij dat ik er iets werkend uitgekregen heb...
 
David

David

27/10/2006 21:52:00
Quote Anchor link
is dit wel goed?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
         if (($_GET["tafel"]) == "tafel1tijd2") {
         mysql_query("UPDATE tijd SET TD_tweede = 'bbbbbbb' WHERE TD_id = 1");
         }

         else
         {
         echo "tafel1tijd2 fout";
         }

?>
 
Frank -

Frank -

27/10/2006 22:09:00
Quote Anchor link
Dit zal volgens mij wel werken, je controleert alleen niet of de query is gelukt en hoeveel records er zijn bijgewerkt. Dit laatste kun je met de functie mysql_affected_rows() opvragen.

Verder hier een voorbeeld van netjes scripten (op- en aanmerkingen zijn altijd welkom!). Doe er je voordeel mee:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
62
63
64
65
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL); // Toon alle fouten en waarschuwingen

$aError = array();  // => de a in $aError staat voor Array, een s staat voor String.

// Database gegevens, aanpassen aan jouw situatie:

$aDB = array('host' => 'localhost', 'user' => '***', 'password' => '***', 'db' => '***');

// Maak verbinding met de database
// @ kun je gebruiken omdat je hier een eigen foutafhandeling gebruikt

if (!@mysql_connect($aDB['host'], $aDB['user'], $aDB['password'])) {
    $aError[] = 'Connectie met de host mislukt: '.mysql_error();
}

// @ kun je gebruiken omdat je hier een eigen foutafhandeling gebruikt
if (!@mysql_select_db($aDB['db'])) {
    $aError[] = 'Connectie met de database mislukt: '.mysql_error();
}


// ophalen navigatie-elementen:
$query = "SELECT url, tekst FROM navigatie WHERE active = 1";

if (!$result = mysql_query($query)) {
    // mislukt:
    $aError[] = 'Query "'.$query.'" is mislukt vanwege de volgende fout: '.mysql_error();
}

else {
    $sNav = '<ul id="navigation">'.PHP_EOL;; // string waar de navigatie in komt te staan
    while ($row = mysql_fetch_assoc($result)) {
        $sNav .= '<li><a href="'.$row['url'].'">'.$row['tekst'].'</li>'.PHP_EOL;
    }

    $sNav .= '</ul>'.PHP_EOL; // netjes afsluiten van de list
}

// Ophalen tekst voor de pagina
$query = "SELECT tekst FROM verhalen WHERE active = 1 ORDER BY datum DESC LIMIT 5"; // oude $query is nu overschreven!

if (!$result = mysql_query($query)) { // oude $result is nu overschreven!
    // mislukt:

    $aError[] = 'Query "'.$query.'" is mislukt vanwege de volgende fout: '.mysql_error();
}

else {
    $sText = '<table id="text">'.PHP_EOL;; // string waar de teksten in komen te staan
    while ($row = mysql_fetch_assoc($result)) { // oude $row is nu overschreven
        $sText .= '<tr><td>'.$row['tekst'].'</td></tr>'.PHP_EOL;
    }

    $sText .= '</table>'.PHP_EOL; // netjes afsluiten van de list
}

// En niet te vergeten: De output op het scherm gaan zetten (doe je als laatste!)
if (isset($aError)) { // Zijn er fouten?
    echo 'De volgende fouten zijn opgetreden:'.PHP_EOL;
    echo '<ul id="error">'.PHP_EOL;
    foreach ($aError as $error) { // doorloop de array $aError
        echo '<li>'.$error.'</li>'.PHP_EOL;
    }

    echo '</ul>'.PHP_EOL;
}

if (isset($sNav)) { // Is $sNav wel aangemaakt?
    echo $sNav;
}

if (isset($sText)) { // Is $sText wel aangemaakt?
    echo $sText;
}

?>

De stylesheet mag je er even bijdenken... ;)
 
David

David

27/10/2006 22:28:00
Quote Anchor link
okay leuk voorbeeld over netjes scripten...is mij veels te ingewikkeld...ik wilde alleen maar een klein werkend script, vanmorgen gepost op forum...maar blijkbaar weet niemand het antwoord op mijn vraag
 

Pagina: « vorige 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.